V
V
Valeriy Solovyov2015-12-26 12:02:33
Debian
Valeriy Solovyov, 2015-12-26 12:02:33

How to find all deb package dependencies?

Hello everyone,
Inside the private cloud (part of the public cloud) there are virtual machines with some cloud provider modified Ubuntu 14 LTS.
Due to security requirements, virtual machines do not have access to the Internet. All installations/configurations/updates are done from some trusted node.
Task:
Need to install system components from saved packages: dpkg -i ./*.deb
The problem is that I can't find a normal way to build the package's dependencies in a digestible way, excluding those that I 100% know are installed, so that they can be download.
For example, we have some non-standard package rabbitmq-server _3.5.7-1 for which:
# 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.

Let's take the first erlang-nox dependency and inside the test machine from the cloud provider I will do:
# 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

Here is what apt-rdepends erlang-nox shows:
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

Answer the question

In order to leave comments, you need to log in

1 answer(s)
V
Vlad Zhivotnev, 2015-12-28
@inkvizitor68sl

I don't understand why you do this shit.
https://help.ubuntu.com/community/AptGet/Offline/R... put all the packages in a directory, download the files with the repository meta-info and install with apt-get, it will resolve the dependencies and tell you what is missing in local directory.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question