yum list installed
e yum.log
mostrarão o que foi instalado, mas acho que nada no sistema diferencia entre os pacotes que você escolheu instalar e aqueles que foram instalados como dependências
(Esta questão é muito semelhante a 6338 Foi sugerido que fosse separado do mesmo, pois o Fedora e o Ubuntu / Debian são diferentes o suficiente para garantir respostas diferentes.
Como eu uso qualquer configuração do Fedora, eu gradualmente instalo vários pacotes além da instalação da linha de base. Se eu reinstalar, ou se precisar instalar uma nova máquina, geralmente quero reinstalar esses pacotes específicos , e quero fazer isso rapidamente para voltar ao trabalho com um mínimo de problemas. Tanto quanto eu vi todos os gerenciadores de pacotes ( yum
e pirut
) podem me dizer quais pacotes estão instalados, e todos eles têm logs (embora diferentes para cada ferramenta, o que é um incômodo). Mas nenhum deles pode me dizer quais pacotes eu tenho instalados, ao contrário de suas dependências ou atualizações do sistema. Mesmo os logs são complicados, pois não tenho certeza do que devo extrair deles, ou como integrá-los (no caso das várias ferramentas da família apt). Isso significa que toda vez que eu reinstalo ou apenas faço backup, não sei como recriar essa lista.
Não estou necessariamente esperando que nenhuma das ferramentas faça isso para mim, mas, se isso não acontecer, estou procurando soluções alternativas. Até mesmo padrões a serem usados, boas regras práticas ou uma ideia clara do que exatamente está sendo registrado, seriam úteis. Pode não haver uma "melhor resposta" aqui, mas os bons seriam muito úteis.
yum list installed
e yum.log
mostrarão o que foi instalado, mas acho que nada no sistema diferencia entre os pacotes que você escolheu instalar e aqueles que foram instalados como dependências
Supondo que você ainda tenha o arquivo /root/install.log
da instalação original, você pode criar os arquivos rpm.orig e rpm.curr assim:
cd /root
rpm -qa --qf '%{NAME}\n' | sort -u > rpm.curr
awk '($1=="Installing"){print $2}' install.log | sort -u > rpm.orig
Depois, para ver os pacotes adicionados:
comm -13 rpm.orig rpm.curr
E os removidos:
comm -23 rpm.orig rpm.curr
Observe que, se você tiver uma instalação x86_64 , ela não informará a diferença entre os pacotes de 32 e 64 bits.
Tente usar
sudo yum history packages-list \*
Ele mostrará o que foi instalado explicitamente e o que foi instalado como uma dependência:
ID | Action(s) | Package
-------------------------------------------------------------------------------
47 | Dep-Install | cairomm-1.8.0-2.1.el6.x86_64
47 | Dep-Install | glibmm24-2.22.1-1.el6.x86_64
47 | Install | gnome-system-monitor-2.28.0-11.el6.x86_64
Essa é fácil.
Basta executar o comando abaixo em seu shell favorito. A manpage para RPM será dolorosamente ilustrativa se você precisar se aprofundar mais nisso.
rpm -qa
O arquivo /root/install.log informa quais pacotes foram incluídos na instalação inicial. Aqui está um script rápido que irá comparar o conteúdo deste arquivo com a saída de rpm -qa
:
rpm -qa | sort > /root/postinstall.list
for P in 'sed -n 's/Installing \(.*\)//p' </root/install.log'
do
sed -ie "/$P/d" /root/postinstall.list
done
O arquivo /root/postinstall.list contém o que você deseja. Observe que os pacotes que são uma versão atualizada de um pacote originalmente instalado aparecerão no arquivo. Se isso não é o que você quer, você precisará de um padrão mais sofisticado na declaração sed.
rpm -qa --last
das páginas man:
--last Orders the package listing by install time such that the latest packages are at the top.
Exemplo de saída:
mdadm-3.2.2-9.el6 Mon 12 Dec 2011 10:06:17 AM EST
libdrm-2.4.25-2.el6 Mon 12 Dec 2011 09:54:51 AM EST
tcp_wrappers-libs-7.6-57.el6 Mon 12 Dec 2011 09:54:50 AM EST
Supondo que você sempre usou "yum" para instalar tudo o que você pode fazer:
sudo yum history info \* | grep "^Command Line : install"
Ele deve mostrar todos os comandos "yum install" executados no sistema após a instalação.
Tags package-management fedora yum linux