Можно ли перенести установочный каталог определенного пакета на другой компьютер, чтобы избежать этапа установки?

Можно ли перенести установочный каталог определенного пакета на другой компьютер, чтобы избежать этапа установки?

Я установил один пакет на своей машине Linux и хочу установить тот же пакет на другой машине Linux. Могу ли я напрямую скопировать установленный каталог с одного компьютера на другой? Я имею в виду клонирование каталога установки.

решение1

Рассмотрение программного обеспечения, установленного с помощью APT/DPKG

В большинстве систем Linux, включая Ubuntu, нет единого каталога установки для пакета, хотя иногда стороннее программное обеспечение может иметь все свои файлы в одном каталоге.

Вместо этого пакет содержит набор файлов, которые размещены в нескольких местах файловой системы. Запуск whereisпакета показывает каталоги, содержащие его основные части:

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

Мы видим, что у gimp есть файлы по крайней мере в /usr/bin, /usr/lib, /etcи /usr/share, каждый из которых содержит множество файлов, принадлежащих другим пакетам.

Вы можете использовать dpkg-query -Lили --listfilesопцию для чтения списка файлов пакета, известного 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

Обратите внимание, что в список включены все родительские каталоги, хотя пакет g++, очевидно, их не предоставил (чтобы получить только файлы, можно сделать что-то вроде for i in $(dpkg --listfiles g++); do [[ -f "$i" ]] && echo "$i"; done, но некоторые установки пакетов создают каталоги).

Один из них g++— это очень маленький список файлов...

$ 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

Также учтите, что если вы просто скопируете все соответствующие файлы во все соответствующие места в другой системе, менеджер пакетов ничего об этом не узнает, поэтому пакет не будет обновлен, а его зависимости не будут установлены, так что он, вероятно, вообще не будет работать по причинам, затрудняющим отладку.

Это сводится к тому, что для программного обеспечения, которое можно установить с помощью APT, самым простым способом является установка с помощью APT. Если вы хотите сэкономить на загрузке на каждой системе, см.Как установить программное обеспечение или пакеты без Интернета (офлайн)?.

Некоторые считают этот распределенный стиль установки... ошибкой. И многие из них что-то делают по этому поводу, например, создают дистрибутивы, которые устанавливают пакеты по отдельности, или изобретают кроссплатформенные решения для упаковки, такие как snaps, которые позволяют выполнять по отдельности установку, включая все зависимости.

Связанный контент