Como obter um resumo dos pacotes instalados por repositório e ver as diferenças da instalação limpa?

Como obter um resumo dos pacotes instalados por repositório e ver as diferenças da instalação limpa?

Acabei de atualizar vários PCs para o Ubuntu Trusty 14.04. Para isso, instalei tudo do zero para obter um sistema limpo, mantendo apenas /home (e /etc para referência).

Desta vez, porém, atualizei usando a ferramenta de atualização e quero saber quais diferenças meus PCs têm em comparação com um sistema nominal. Porque instalei muitos pacotes diferentes de fontes diferentes e posso ter editado alguns arquivos aqui e ali. É claro que sei que o apt deve lidar com tudo de forma automática e mágica, mas sou do tipo paranóico e realmente quero ter certeza.

Basicamente, aqui está o que eu gostaria de ter:

  1. Obtenha uma lista de todos os pacotes instalados e, para cada um deles, o repositório de onde vem (se disponível). Isso seria basicamente um apt-cache policypara cada pacote, mas resumido em uma lista organizada.

  2. Para pacotes provenientes de "fontes não oficiais", uma indicação se existe uma versão disponível nas fontes oficiais(Quero dizer o repositório listado em /etc/apt/sources.list).

    Às vezes, instalei pacotes corrigidos de terceiros e este pacote não foi atualizado devido a um número de versão conflitante. Quero ter uma lista que me diga se faz sentido voltar para a versão oficial.

  3. A lista de todos os arquivos no sistema de arquivos provenientes de um pacote instalado (incl. arquivos de configuração), mas que foram modificados posteriormente.

  4. A lista de todos os arquivos no sistema de arquivos (excluindo /home e possivelmente /etc) que não vêm de um pacote instalado.

Basicamente, quero saber as diferenças que meu sistema terá se eu fizer a atualização versus uma instalação limpa e decidir caso a caso se essas diferenças podem causar alguma instabilidade.

Responder1

Minha pergunta já foi parcialmente respondida emComo obtenho uma lista de pacotes obsoletos?.

As respostas sugerem usar

apt-show-versions | grep 'No available version'   # Show all package not coming from repo
aptitude search '~o'                              # Similar

Acho que também podemos fazer:

apt-show-versions | grep -v uptodate              # All packages that are not up-to-date

Isto daria pacotes que não estão atualizados, ou seja, pacotes que podem ser atualizados a partir de repositórios habilitados, ou pacotes que não vêm de tais repositórios.

Para obter uma lista de todas as versões disponíveis para tais pacotes, poderíamos fazer:

apt-show-versions -a $(apt-show-versions | grep -v uptodate | sed -r 's/:.*//')

Também encontrei uma pergunta referenciando deborphan -a(Como listar pacotes instalados no apt que não são apoiados por um repositório?)

deborphan -a             # List all packages that have no reverse dependencies

Então, para resumir, tenho algumas respostas para os itens 1 e 2, mas ainda estou procurando os itens 3 e 4:

  1. apt-show-versionsé uma boa resposta
  2. Idem, um dos combos de comando acima. O passo principal aqui, claro, é primeiro certificar-se de que apenas os repositórios oficiais estejam habilitados em /etc/apt.
  3. ?
  4. ?

informação relacionada