sumej
@sumej
DevOps

Как найти все зависимости deb-пакета?

Привет всем,

Внутри частного облако (часть публичного облака) есть виртуальные машины с некой изменнёной провайдером облака Ubuntu 14 LTS.
По требованиям безопасности виртуалки не имеют доступа в Интернет. Все установки/настройки/обновления делаются из некого доверенного узла.

Задача:
Нужно устанавливать компоненты системы из сохраннёных пакетов: dpkg -i ./*.deb

Проблема заключается в том, что я не могу найти нормальный способ построить зависимости пакета в удобоваримом виде исключая те что я 100% знаю установленны, что бы их можно было скачать.

Например мы имеем некий нестандартный пакет rabbitmq-server _3.5.7-1 для которого:
# dpkg -I rabbitmq-server_3.5.7-1_all.deb
new debian package, version 2.0.
size 4222022 bytes: control archive=7435 bytes.
90 bytes, 3 lines conffiles
364 bytes, 11 lines control
20645 bytes, 198 lines md5sums
1895 bytes, 68 lines * postinst #!/bin/sh
1731 bytes, 70 lines * postrm #!/bin/sh
185 bytes, 7 lines * prerm #!/bin/sh
Package: rabbitmq-server
Version: 3.5.7-1
Architecture: all
Maintainer: RabbitMQ Team
Installed-Size: 4936
Depends: erlang-nox (>= 1:13.b.3) | esl-erlang, adduser, logrotate
Section: net
Priority: extra
Homepage: www.rabbitmq.com
Description: Multi-protocol messaging broker
RabbitMQ is an open source multi-protocol messaging broker.



Возьмём первую зависимость erlang-nox и внутри тестовой машины от провайтера облака я сделаю:
# apt-cache depends erlang-nox

erlang-nox
|Depends: erlang-base
Depends: erlang-base-hipe
Depends: erlang-asn1
Depends: erlang-corba
Depends: erlang-crypto
Depends: erlang-diameter
Depends: erlang-edoc
Depends: erlang-eldap
Depends: erlang-erl-docgen
Depends: erlang-eunit
Depends: erlang-ic
Depends: erlang-inets
Depends: erlang-mnesia
Depends: erlang-odbc
Depends: erlang-os-mon
Depends: erlang-parsetools
Depends: erlang-percept
Depends: erlang-public-key
Depends: erlang-runtime-tools
Depends: erlang-snmp
Depends: erlang-ssh
Depends: erlang-ssl
Depends: erlang-syntax-tools
Depends: erlang-tools
Depends: erlang-webtool
Depends: erlang-xmerl
Suggests: erlang
Suggests: erlang-manpages
Suggests: erlang-doc


Вот что показывает apt-rdepends erlang-nox:
Reading package lists... Done
Building dependency tree
Reading state information... Done
erlang-nox
Depends: erlang-asn1
Depends: erlang-base
Depends: erlang-base-hipe
Depends: erlang-corba
Depends: erlang-crypto
Depends: erlang-diameter
Depends: erlang-edoc
Depends: erlang-eldap
Depends: erlang-erl-docgen
Depends: erlang-eunit
Depends: erlang-ic
Depends: erlang-inets
Depends: erlang-mnesia
Depends: erlang-odbc
Depends: erlang-os-mon
Depends: erlang-parsetools
Depends: erlang-percept
Depends: erlang-public-key
Depends: erlang-runtime-tools
Depends: erlang-snmp
Depends: erlang-ssh
Depends: erlang-ssl
Depends: erlang-syntax-tools
Depends: erlang-tools
Depends: erlang-webtool
Depends: erlang-xmerl
erlang-asn1
Depends: erlang-base (= 1:16.b.3-dfsg-1ubuntu2)
Depends: erlang-base-hipe (= 1:16.b.3-dfsg-1ubuntu2)
Depends: libc6 (>= 2.14)
erlang-base
Depends: libc6 (>= 2.14)
Depends: libtinfo5
Depends: procps
Depends: zlib1g (>= 1:1.2.2)
libc6
Depends: libgcc1
libgcc1
Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1)
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
gcc-4.9-base
multiarch-support
Depends: libc6 (>= 2.3.6-2)
libtinfo5
Depends: libc6 (>= 2.15)
PreDepends: multiarch-support
procps
Depends: initscripts
Depends: libc6 (>= 2.15)
Depends: libncurses5 (>= 5.5-5~)
Depends: libncursesw5 (>= 5.6+20070908)
Depends: libprocps3
Depends: libtinfo5
Depends: lsb-base (>= 3.0-10)
initscripts
Depends: coreutils (>= 5.93)
Depends: debianutils (>= 4)
Depends: file-rc
Depends: libc6 (>= 2.4)
Depends: lsb-base (>= 3.2-14)
Depends: mount (>= 2.11x-1)
Depends: mountall (>= 2.28)
Depends: passwd
Depends: sysv-rc
Depends: sysvinit-utils (>= 2.86.ds1-64)
Depends: upstart

  • Вопрос задан
  • 2955 просмотров
Пригласить эксперта
Ответы на вопрос 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Не пойму, зачем вы этим дерьмом заниметесь.

https://help.ubuntu.com/community/AptGet/Offline/R... положите все пакеты в каталог, скачайте файлы с метаинфой репозитория и ставьте apt-get'ом, он сам разрулит зависимости и скажет, чего не хватает в локальном каталоге.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы