Я установил один пакет на моем компьютере Linux, и я хочу установить тот же пакет на другой Linux-машине. Можно ли напрямую скопировать установленный каталог с одного компьютера на другой? Я имею в виду клонирование каталога установки.
В большинстве 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. Если вы хотите сохранить загрузку в каждой системе, см. Раздел «Как установить программное обеспечение или пакеты без Интернета (в автономном режиме)».
Некоторые считают, что этот распределенный стиль установки является ... ошибкой. И многие из них что-то делают с этим, например, создают дистрибутивы, которые устанавливают пакеты дискретно или изобретают кросс-платформенные решения для упаковки, такие как привязки, которые позволяют дискретную установку, включая все зависимости.
В большинстве 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. Если вы хотите сохранить загрузку в каждой системе, см. Раздел «Как установить программное обеспечение или пакеты без Интернета (в автономном режиме)».
Некоторые считают, что этот распределенный стиль установки является ... ошибкой. И многие из них что-то делают с этим, например, создают дистрибутивы, которые устанавливают пакеты дискретно или изобретают кросс-платформенные решения для упаковки, такие как привязки, которые позволяют дискретную установку, включая все зависимости.