Instale todos os pacotes recentes instalados em outro computador.

1

Eu tenho algum pacote instalado em um computador. Eu quero instalar pacotes semelhantes para outro computador.

Eu posso listar todos os pacotes recentes com este comando

cat /var/log/dpkg.log | grep "\ install\ "

Ele produzirá algo como

2015-02-18 19:33:46 install login:amd64 <none> 1:4.1.5.1-1ubuntu9
2015-02-18 19:33:46 install lsb-base:all <none> 4.1+Debian11ubuntu6
2015-02-18 19:33:46 install makedev:all <none> 2.3.1-93ubuntu1
2015-02-18 19:33:46 install module-init-tools:all <none> 15-0ubuntu6
2015-02-18 19:33:46 install mount:amd64 <none> 2.20.1-5.1ubuntu20
2015-02-18 19:33:46 install mountall:amd64 <none> 2.53

Esta lista é bem grande.

Eu quero fazer algo parecido com

sudo apt-get install login lsb-base module-init-tools mount mountall
    
por saurabh agarwal 23.06.2015 / 10:38

3 respostas

1

Salve todos os pacotes instalados mostrados por /var/log/dpkg.log em uma matriz:

mapfile -t packages < <(grep -Po '.* install \K[^ ]+' /var/log/dpkg.log)

Aqui, a matriz packages conterá todos os nomes dos pacotes.

Agora você pode fazer o seguinte:

echo "${packages[@]}"

para ver os nomes dos pacotes em um formulário separado por espaço.

Isso funcionará bem com o comando apt-get :

sudo apt-get install --dry-run "${packages[@]}"

O comando acima será expandido para:

sudo apt-get install --dry-run libntlm0:amd64 libgsasl7:amd64 ....

Se você tiver ssh de acesso do novo computador àquele em que o pacote está instalado, em NEW computer você pode usar:

$ mapfile -t packages < <(ssh OLD 'grep -Po ".* install \K[^ ]+" /var/log/dpkg.log'))"

Isso salvará os nomes dos pacotes de OLD computer na matriz packages . altere os parâmetros ssh de acordo.

Agora você pode simplesmente fazer:

$ sudo apt-get install "${packages[@]}"
    
por heemayl 23.06.2015 / 12:19
2

Você não precisa fazer como quiser, há uma maneira melhor de fazer backup de uma lista de programas:

No primeiro cálculo, execute esses comandos:

dpkg --get-selections > /some-path/packages.list

sudo cp -R /etc/apt/sources.list* /some-path/

sudo apt-key exportall > /some-path/Repo.keys

Copie esses arquivos para o outro computador e execute esses comandos para instalar exatamente os mesmos aplicativos do primeiro computador:

sudo apt-key add /some-path/Repo.keys

sudo cp -R /some-path/sources.list* /etc/apt/

sudo apt-get update

sudo apt-get install dselect

sudo dpkg --set-selections < /some-path/packages.list

sudo apt-get dselect-upgrade -y
    
por Maythux 23.06.2015 / 12:18
1

o comando para fazer isso é

cat /var/log/apt/history.log | grep "\ install\ " | awk '/ install / {printf "%s ", }'
    
por saurabh agarwal 23.06.2015 / 12:14