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