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

11

(Esta pergunta é muito semelhante à 6338. Foi sugerido que ela fosse separada, pois o Fedora e o Ubuntu / Debian são diferentes o suficiente para garantir respostas diferentes.)

Como uso qualquer configuração do Fedora, instalo gradualmente 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 fazê-lo rapidamente para voltar ao trabalho com um mínimo de problemas. Até onde eu já vi todos os gerenciadores de pacotes ( yume pirut) podem me dizer quais pacotes estão instalados e todos eles têm logs (embora sejam diferentes para cada ferramenta, o que é um aborrecimento). Mas nenhum deles pode me dizer quais pacotes eu tenhoinstalados, ao contrário de suas dependências ou atualizações do sistema. Até os logs são complicados, pois não tenho muita certeza do que devo extrair deles ou de como integrá-los (no caso das várias ferramentas familiares do apt). Isso significa que, toda vez que eu reinstalar ou apenas fazer backup, não tenho certeza de como recriar essa lista.

Não estou necessariamente esperando que nenhuma das ferramentas faça isso por mim, mas se não o fizerem, estou procurando soluções alternativas. Mesmo padrões para os quais grep, boas regras de ouro ou uma idéia clara do que exatamente está sendo registrado, seriam úteis. Pode não haver uma "melhor resposta" aqui, mas as boas seriam muito úteis.

quark
fonte

Respostas:

3

yum list installede yum.logmostrará o que foi instalado, mas acho que nada no sistema diferencia os pacotes que você escolheu instalar e os que foram instalados como dependências

theotherreceive
fonte
2

Presumindo que você ainda tenha o /root/install.logarquivo da instalação original, é possível 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

Então, 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 indicará a diferença entre os pacotes de 32 e 64 bits.


fonte
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
Francisco
fonte
0

Este é fácil.

Basta executar o comando abaixo no seu shell favorito. A página de manual do RPM será dolorosamente ilustrativa se você precisar aprofundar-se nisso.

rpm -qa

Axxmasterr
fonte
3
Isso lista todos os pacotes sim, mas não faz distinção entre os que adicionei e os que já estavam no sistema. Quero acompanhar especificamente os pacotes que instalei explicitamente.
quark
Todos os pacotes foram explicitamente instalados por você. Você precisaria ser muito mais específico sobre o que deseja fazer para obter ajuda significativa.
vonbrand
0

O arquivo /root/install.log informará 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 \(.*\)/\1/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 instalado originalmente aparecerão no arquivo. Se não é isso que você deseja, precisará de um padrão mais sofisticado na declaração sed.

dkaylor
fonte
0

rpm -qa --last

nas páginas do manual:

--last Orders the package listing by install time such that the latest packages are at the top.

Saída de amostra:

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
Dejan
fonte
0

Supondo que você sempre usou o "yum" para instalar tudo o que 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.

Quintesse
fonte