Posso transferir o diretório de instalação de um pacote específico para outro computador para evitar a etapa de instalação?

1

Eu instalei um pacote em minha máquina Linux e quero instalar o mesmo pacote em outra máquina Linux. Posso copiar diretamente o diretório instalado de um computador para outro? Quero dizer, clonar o diretório de instalação.

    
por Anand Thati 28.06.2017 / 09:23

1 resposta

1

Considerando o software instalado com o APT / DPKG

Na maioria dos sistemas Linux, incluindo o Ubuntu, não há um único diretório de instalação para um pacote, embora algumas vezes o software de terceiros possa ter todos os seus arquivos em um único diretório.

Em vez disso, um pacote contém um conjunto de arquivos que são colocados em vários locais do sistema de arquivos. A execução de whereis em um pacote mostra os diretórios que contêm suas partes principais:

$ whereis gimp
gimp: /usr/bin/gimp /usr/lib/gimp /etc/gimp /usr/share/gimp /usr/share/man/man1/gimp.1.gz

Podemos ver que o gimp tem arquivos em pelo menos /usr/bin , /usr/lib , /etc e /usr/share , todos contendo muitos arquivos pertencentes a outros pacotes.

Você pode usar a opção dpkg-query -L ou --listfiles para ler a lista de arquivos de um pacote conhecido pelo dpkg:

$ dpkg --listfiles g++
/.
/usr
/usr/bin
/usr/share
/usr/share/doc
/usr/share/man
/usr/share/man/man1
/usr/bin/g++
/usr/bin/x86_64-linux-gnu-g++
/usr/share/doc/g++
/usr/share/man/man1/g++.1.gz
/usr/share/man/man1/x86_64-linux-gnu-g++.1.gz

Note que a listagem inclui todos os diretórios pai, mesmo que o pacote g ++ obviamente não os tenha fornecido (para obter apenas arquivos você pode fazer algo como for i in $(dpkg --listfiles g++); do [[ -f "$i" ]] && echo "$i"; done , mas algumas instalações de pacotes criam diretórios).

O de g++ é uma listagem de arquivos muito pequena ...

$ dpkg --listfiles gimp | wc -l
254
$ dpkg --listfiles xkb-data | wc -l
331
$ dpkg --listfiles linux-image-4.10.0-24-generic | wc -l
1312

Considere também que se você simplesmente copiou todos os arquivos relevantes para todos os locais relevantes em outro sistema, o gerenciador de pacotes não saberia nada sobre isso, então o pacote não seria atualizado e suas dependências não seriam instaladas, então provavelmente não funcionaria de forma alguma por motivos difíceis de depurar.

O que isto significa é que, para o software que é instalável com o APT, a maneira mais fácil de instalá-lo é com o APT. Se você quiser economizar em download em cada sistema, veja Como posso instalar software ou pacotes sem Internet (offline)? .

Algumas pessoas consideram este estilo de instalação distribuído como sendo ... um bug. E muitos deles estão fazendo algo a respeito, por exemplo, criando distros que instalam pacotes discretamente ou inventando soluções de pacotes multiplataforma como snaps que permitem instalação discreta, incluindo todas as dependências.

    
por Zanna 29.06.2017 / 11:01