I want to download all (recursive) build dependencies to be able to build apt (debian) package from source. However, when I apt-get install path/*.debs
with debs that I got by apt build-dep --download-only --assume-yes <package>
apt finds additional packages to be installed and fails, even with --no-install-recommends --ignore-missing
. My specific issue got no answer on SO. Then I've investigated further and I have not seen those additional packages in output of successfully run apt build-dep <package>
, therefore I've realized (obviously) build dependencies should be tracked differently. How?
I mean there are Depends/Suggests/Recommends
fields in a deb file, but I have not seen additional fields related to sourcing. build-dep
resulted in ~150 deb files found, but during installation of them as packages, apt
found additional dependencies.
I've tried to read Packaging/SourcePackage - Debian Wiki
Source packages provide you with all of the necessary files to compile
or otherwise, build the desired piece of software. It consists, in its
simplest form, of three files:
The upstream tarball with .tar.gz ending
A description file with .dsc ending.
apt source cinnamon-settings-daemon
Got cinnamon-settings-daemon_5.0.4+uma.tar.xz.
, search have not found .dsc
file inside, maybe Linux Mint (OS I use) implemented modified Debian implementation?
BuildingTutorial - Debian Wiki
apt provides a way of easily installing all the needed dependencies:
Example 1: node-pretty-ms
sudo apt build-dep node-pretty-ms However I have not found description how system keep track of those.
Inside one of downloaded deb files I got with apt build-dep
I do not see additional section with dependencies for building/source:
$ apt show /media/ramdrive/debs/cinnamon-settings-daemon/autoconf_2.69-11.1_all.deb
Package: autoconf
Version: 2.69-11.1
Priority: optional
Section: devel
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Ben Pfaff <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1905 kB
Depends: perl (>> 5.005), m4 (>= 1.4.13), debianutils (>= 1.8)
Recommends: automake | automaken
Suggests: autoconf-archive, gnu-standards, autoconf-doc, libtool, gettext
Breaks: gettext (<< 0.10.39), pkg-config (<< 0.25-1.1)
Homepage: http://www.gnu.org/software/autoconf/
Task: ubuntustudio-video
Download-Size: 321 kB
APT-Sources: http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
Description: automatic configure script builder
The standard for FSF source packages. This is only useful if you
write your own programs or if you extensively modify other people's
programs.
.
For an extensive library of additional Autoconf macros, install the
`autoconf-archive' package.
.
This version of autoconf is not compatible with scripts meant for
Autoconf 2.13 or earlier.
Added 1:
One of two packages still listed as "additional" during apt-get install --no-install-recommends
is libpulse0:i386
. Doing
~$ apt-cache rdepends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances libpulse0:i386 # got ~ 1000 lines
find /path_to_debs/cinnamon-settings-daemon -name *.deb | xargs apt-cache show | grep Package | awk '{print $2}' # ~ 160 debs
and using vlookup
in LibreOffice Calc found out it reverse depends on to be installed pulseaudio
and pulseaudio-module-bluetooth
via e.g. on about ~300th line of rdepends:
libcanberra-pulse:i386
ReverseDepends:
pulseaudio
Added 2022/01/06:
I understood the cause of initial issue, if interested, see https://stackoverflow.com/a/70601238/14557599 and https://unix.stackexchange.com/a/684975/446998. I was not able to reproduce my claim in this question (I have not seen those additional packages in output of successfully run apt build-dep <package>
), maybe I run the command on another system blinded by my incorrect assumption from realizing differences between them mattered.