Comparando minha versão com a instalação limpa

2

Eu tenho usado e atualizado o Ubuntu desde a versão 9. Claro, eu tenho 13.04 agora e depois de instalar um 13.04 limpo em outro computador, eu notei algumas diferenças (plymouth, lightdm, alguns softwares se comportam de maneira diferente , etc.). Eu fiz algumas customizações durante o período, então é provavelmente por causa disso.

Então, pergunto-me se existe uma maneira de ver o que é diferente entre a minha versão e a limpa. Não é o diff de lista de arquivos completo, mas talvez as diferenças de pacote de software (synaptic?) Ou algo que será mais fácil de ler e comparar. Existe um caminho?

    
por Shomz 26.06.2013 / 01:59

3 respostas

2

Você pode comparar a lista de pacotes instalados com o arquivo ". manifest" da sua distribuição,

Por exemplo, o manifesto de 13.04 / i386 pode ser encontrado aqui:

link

Para obter seus pacotes instalados:

#aptitude search ~i \!~M

Com relação à personalização que você poderia ter feito, existe uma ferramenta que pode ajudá-lo a comparar os arquivos de configuração modificados com as informações de checksum do pacote: debsums

#debsums -ce 

(- e para verificar apenas os arquivos de configuração, -c apenas os arquivos alterados)

Editar:

os pacotes instalados durante o ano são registrados em /var/log/apt . Logs de histórico mais antigos são excluídos pelo logrotate. Eu fiz esse script para obter o pacote instalado (tome cuidado para não modificar os padrões do awk ao copiar).

# cd /var/opt/log
#(zcat $(ls -rt history*gz); cat history.log ) | awk '
 /^Commandline: (apt-get install|synaptic|aptitude)/{ 
         cmdl=$0 
         getline
         if(/^Install|^Remove/) {
            print cmdl
            print
         }
  }' | less
    
por Emmanuel 26.06.2013 / 20:03
2

O script a seguir pode ser usado para comparar a lista de pacotes instalados com o arquivo ".manifest" de uma distribuição. Eu desenvolvi com "ubuntu-16.04.1-desktop-amd64.manifest" contra uma instância LTS do Ubuntu 16.04.1 tendo um número de pacotes adicionados e removidos.

#!/bin/bash

# The first parameter to this script is the manifest file name.

# Take the first column of the manifest. This is the name of the
# package without version information.
cut --fields=1 $1 | \
    sort > \
         manifestpkglist.tmp

# Get the list of packages installed on this sysem. Packages with
# deinstalled status are ignored. Only the first column of the output
# having the package names is considered.
dpkg --get-selections | \
    grep --invert-match deinstall | \
    cut --fields=1 | \
    sort > \
         installedpkglist.tmp

# Report the differences.
diff --side-by-side \
     --suppress-common-lines \
     manifestpkglist.tmp \
     installedpkglist.tmp

# Remove the intermediate files.
rm --force \
   manifestpkglist.tmp \
   installedpkglist.tmp

O script usa o arquivo de manifesto como entrada. Para executá-lo, torne o script executável $ chmod u+x manifest-diff.sh e execute passando o nome do arquivo de manifesto como o primeiro parâmetro: $ ./manifest-diff.sh ubuntu-16.04.1-desktop-amd64.manifest

Uma limitação deste script é que ele não faz distinção entre pacotes que foram explicitamente instalados e aqueles que foram adicionados para preencher dependências. Presumivelmente, essas informações estão disponíveis no sistema, pois devem ser necessárias para o recurso autoremove do gerenciador de pacotes. Um script melhor incorporaria essa informação.

    
por Don Pellegrino 14.08.2016 / 17:20
1

Por alguma razão, o padrão "! ~ M" revogou o padrão "~ i", então eu obtive todos os pacotes (incluindo os que nunca foram instalados).

se você fizer um

# pesquisa de aptitude ~ i

tudo funciona.

    
por Hatredman 26.06.2013 / 20:24