Como você controla quais pacotes foram instalados no Fedora (Linux)?

11

(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.

    
por quark 22.07.2009 / 02:14

7 respostas

3

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

    
por 22.07.2009 / 02:29
2

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.

    
por 21.10.2009 / 03:01
2

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
    
por 23.11.2012 / 16:21
0

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

    
por 22.07.2009 / 02:29
0

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.

    
por 08.08.2009 / 01:14
0

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
    
por 12.12.2011 / 17:46
0

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.

    
por 23.09.2013 / 16:10