
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:
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 policy
para cada pacote, mas resumido em uma lista organizada.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.
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.
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:
apt-show-versions
é uma boa resposta- 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.
- ?
- ?