Monday, April 29, 2024
 Popular · Latest · Hot · Upcoming
2
rated 0 times [  2] [ 0]  / answers: 1 / hits: 5367  / 3 Years ago, mon, november 15, 2021, 2:37:14

I'm trying to download APT and all it's dependencies so I can use dpkg to install APT offline. Since you can't simply use apt-get download apt the approach I've taken is trying to generate a list of dependencies which I can then manually use apt-get download package-name to retrieve.



I've tried these:



apt-cache showpkg package-name





apt-cache depends packagename





dpkg -I pkg-name1_version.deb





They don't work properly. I need a way to list not only the dependencies of APT, but also the dependency dependencies; the entire tree. According to "sudo apt-get install apt --reinstall" APT has 302 depenencies+sub-depenencies. The lists generated using the answers I've found appear only to list the first level of dependencies, because they are too short.


More From » apt

 Answers
0

Either I am gravely mistaken, or there's something fundamentally wrong with apt having 302 dependencies + sub-dependencies. How can any distribution claim to lightweight if it depends on apt, then? At least, in my laptop, reinstalling apt doesn't mention any dependencies at all, so I am not sure where you got that figure from. I cooked up a script to check. On Ubuntu 14.04, I get 24 dependencies:



dpkg gcc-4.8-base gcc-4.9-base gnupg gpgv install-info libacl1 libapt-pkg4.12 libattr1 libbz2-1.0 libc6 libgcc1 liblzma5 libpcre3 libreadline6 libselinux1 libstdc++6 libtinfo5 libusb-0.1-4 multiarch-support readline-common tar ubuntu-keyring zlib1g


I then learned about apt-rdepends: http://xmodulo.com/2013/07/how-to-check-package-dependencies-on-ubuntu-or-debian.html



I installed and ran it, filtered the dependencies, sorted and compared to find the same list I got with the script. So I can safely conclude that these are all the packages you need to install apt. I think one of those gcc-4.[89] can be ignored depending on which one you want to install. Note that this list has trimmed down from Ubuntu 12.04, on which running this script (on a server) gave me 28 dependencies:



coreutils debconf dpkg gcc-4.6-base gnupg gpgv install-info libacl1 libapt-pkg4.12 libattr1 libbz2-1.0 libc6 libc-bin libgcc1 liblzma5 libreadline6 libselinux1 libstdc++6 libtinfo5 libusb-0.1-4 multiarch-support perl-base readline-common tar tzdata ubuntu-keyring xz-utils zlib1g


Presumably the packages have been trimmed down. The lack of dependency on coreutils and debconf is startling, I must say.



On a side note, I agree with this bug given in apt-rdepends man page:



  apt-rdepends exists.  This functionality should really reside in apt-
cache itself.


The apt-cache tool provides four relevant commands that Braiam, unorthodox-grammar and I have discussed:




  • depends: List the (forward) dependencies. This also includes all the packages that are recommended, and also includes packages in the Breaks, Conflicts and Replaces sections. We just need to look at the Depends and Pre-Depends packages.

  • rdepends: There's an unfortunate naming clash with apt-rdepends. Both apt-rdepends and my aforementioned script check for dependencies recursively, whereas the apt-cache command is looking for reverse dependencies - packages which depend on the package in consideration. Use this command to check for potentially breakages caused by a package depending on a specific version of the one you are going got change.

  • showsrc: This command gives information about the source package that was use to build a package. A single source package can be used to build multiple binary packages - each of which may or may not depend on the others. apt, for example, depends on libapt-pkg, but not on libapt-inst, both of which are provided by the apt source package. Use this command to gain some insight into other packages you should install, which may not be dependencies, but which may be needed for greater utility,

  • showpkg: This command, among other things, lists both reverse and forward dependencies. The reverse dependencies are listed in a straightforward list, but the forward ones are a bit of a jumble - I still am not sure what the numbers mean. In any case, the individual commands depends and rdepends are clearer.



Thus, if we need to look at all the packages that a package might depend on directly or indirectly, apt-rdepends is what we need.


[#24256] Monday, November 15, 2021, 3 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
sipwing

Total Points: 245
Total Questions: 100
Total Answers: 118

Location: Aland Islands
Member since Thu, Oct 22, 2020
4 Years ago
sipwing questions
Sun, May 29, 22, 22:00, 2 Years ago
Fri, Jun 24, 22, 08:46, 2 Years ago
Fri, Dec 23, 22, 00:04, 1 Year ago
;