Назад | Перейти на главную страницу

Устанавливать только зависимости данного пакета в Debian или Ubuntu (apt)

Есть ли лучший способ установить только необходимые зависимости пакета, вместо того, чтобы устанавливать его напрямую с помощью apt-get (или любого другого внешнего интерфейса dpkg), а затем немедленно удалять его, оставляя его зависимости?

apt-cache depends pkgname покажет зависимости пакета.

Если вы хотите, чтобы все это было одной командой, вы могли бы сделать хуже, чем:

apt-get install `apt-cache depends pkgname | awk '/Depends:/{print$2}'`

apt-get предоставляет команду именно для этого ...

apt-get build-dep <package name>

Из страниц руководства вы получите

build-dep заставляет apt-get устанавливать / удалять пакеты в попытке удовлетворить зависимости сборки для исходного пакета. По умолчанию зависимости удовлетворяются для сборки пакета изначально. При желании вместо этого можно указать хост-архитектуру с параметром --host-architecture.

aptitude позволит вам указать запрос вместо имени пакета при установке. Если вы хотите установить зависимости пакета с именем foo, вы можете установить пакеты, которые имеют обратную зависимость от foo:

aptitude install '?reverse-depends(foo)'

или

aptitude install '~Rfoo'

Проблема с установкой пакета и последующим его удалением заключается в том, что все пакеты, которые устанавливаются как зависимости, будут помечены как «автоматически установленные» и будут удалены любым действием установки / удаления / обновления с помощью aptitude или при запуске apt-get autoclean если вы не отметите их как установленные вручную с помощью aptitude mark или apt-mark команда.

Однако возникает вопрос, зачем вам это нужно. Я предполагаю, что вы пытаетесь установить зависимости для некоторого программного обеспечения, которое собираетесь компилировать вручную. В этом случае вы должны сначала установить зависимости сборки с помощью apt-get build-dep packagename, но тогда вы должны создать фиктивный пакет, который имеет зависимости времени выполнения (которые обычно отличаются от зависимостей сборки), используя equiv package для создания фиктивного пакета с правильными зависимостями для вашей скомпилированной вручную программы. См. Информацию о equivs в APT HOWTO

В случае сборки pkgname из исходников

apt-get build-dep pkgname