
Я установил один пакет на своей машине 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, которые позволяют выполнять по отдельности установку, включая все зависимости.