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

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

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.

Responder1

Considerando software instalado com APT/DPKG

Na maioria dos sistemas Linux, incluindo o Ubuntu, não existe um diretório de instalação único para um pacote, embora às vezes 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 whereisem 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 possui arquivos em pelo menos /usr/bin, /usr/lib, /etce /usr/share, todos contendo muitos arquivos pertencentes a outros pacotes.

Você pode usar dpkg-query -Lou a --listfilesopção de 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

Observe que a listagem inclui todos os diretórios pais, mesmo que o pacote g++ obviamente não os forneça (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).

Aquele para g++é uma lista 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 copiasse 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 por motivos difíceis de depurar.

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

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

informação relacionada