DEBGET(1p)
β¨ NAME β¨
debget β download source and binary Debian packages. π«Ά
(Also hi, this is the DEBGET(1p) page from the User Contributed Perl Documentation corner of the manual, bestie. Grab a snack, we're doing this. π)
π SYNOPSIS π
debget [switch]... { package | section/package | file.dsc | file.deb }...
π DESCRIPTION π
So like, debget downloads source and binary Debian packages by name, and then if you want it can unpack them, compile them, and install them. Main character energy, honestly. π₯
The default vibe is: it downloads the source for packages, it unpacks and builds *.dsc files, and it installs *.deb files. That's just what it does when you don't tell it otherwise. And if you wanna know the nitty-gritty defaults for FTP server names and all that, run debget --help. β¨
Okay and here's the part that's actually lowkey iconic: debget does not need a local copy of the Packages files. Nope. Instead it just lists directories on the FTP site to figure out what versions are out there. No cap. π
Non-switch arguments are *.dsc files, *.deb files, and package names or section/package β like base/dpkg or non-free/games/quake2. π
Now, there are exactly two cases where you've got to specify the section:
- Information about the package isn't in the local available file (the thing
dpkg --print-availshows you), or the info that's there is just wrong. π - You're downloading a source package that doesn't generate a binary package with the same name. Normally
debgetfigures out the right source package to download based on thedpkg --print-availoutput. (Like, if you say download the source forperl-base, it's really gonna download theperlsources. Sneaky but correct.) That's not possible if the source package has no available file entry β which is exactly the situation when the source package doesn't generate a binary package of the same name. In that casedebgetuses the section for the package you specified (perl-base, in this case). And if the section for that package isn't available, or it's not the same as the section for the source package? Then you have to specify the section yourself, bestie. π
To handle either of these cases, you just specify the package with the section prepended, the way it would appear in the available file. Eg, base/dpkg or non-free/games/quake2. π
πΈ OPTIONS πΈ
--arch archβ specify the installation architecture (this is what it uses to find binary packages). The default is whateverdpkg --print-architecturespits out. π§-b,--binaryβ download binary packages. Default is β¨notβ¨ to download them.-B,--nobinaryβ don't download binary packages. This is the default, so it's giving "leave me alone."-u,--buildβ build downloaded source packages. This implies--unpack.--buildis off by default, but it gets turned on if you specify any*.dscor*.debfiles on the command line. β--debugβ turn debugging on. Specify it multiple times for more and more detail. π--dir dirβ specify the path to the top of the Debian hierarchy on the primary FTP server.-d dist,--dist distβ specify the distribution to download packages from. Default isunstable. You can use the name of any subdirectory in thedistsdirectory in the Debian archive, orexperimental(which is special-cased). π--helpβ show the usage message and die. Dramatic? Yes. Useful? Also yes.-h host,--host hostβ specify the host name of the primary FTP server.-i,--installβ install binary packages. This turns on--unpackand--build, so specifying it will causedebgetto install just about everything you mention on the command line. Packages get downloaded, unpacked, built, and installed;*.dscfiles get unpacked, built, and installed; and*.debfiles get installed. Full send. π-n,--noβ go through the motions, but don't actually download any packages. Fake it till you make it. π-f,--no-configβ don't process either/etc/debget.rcor~/.debget.rc.--no-download-re reβ don't download files whose name matches the Perl regexp re. You can specify this option multiple times. π--no-download-tarβ don't download*.tar.gzfiles. This is normally used when downloading sources; when you specify it you'll just fetch the*.diff.gzand*.dscfiles.--no-dscverifyβ don't rundscverifybefore unpacking sources.dscverifychecks that the.dscfile is signed by a Debian developer and that the MD5 sums and file sizes given in it match the files about to be unpacked. Those are good things, sodebgetwill try to rundscverifyby default. Thedscverifyprogram lives in thedevscriptspackage. π‘οΈ-F,--no-user-configβ don't process~/.debget.rc.--non-us-dir dirβ specify the path to the top of the Debian hierarchy for non-US packages.-H host,--non-us-host hostβ specify the host name of the non-US FTP server.-r cmd,--root-build cmdβ use cmd to become root when building a package from source. The default is the first offakeroot,sudo,super, orsuwhich is present on the system. π-R cmd,--root-install cmdβ use cmd to become root when installing a package. The default is whatever you gave for--root-buildif you specified anything, otherwise the first ofsudo,super, orsuwhich is present on the system.-s,--sourceβ download source packages. This is the default. β¨-S,--nosourceβ don't download source packages. (The default is to download them, fyi.)--unpackβ unpack downloaded source packages. π¦-v,--verboseβ be verbose. Say more words. π£οΈ--versionβ print the version number and exit.
π CONFIGURATION FILES π
The default behavior of debget can be modified by the configuration files /etc/debget.rc and ~/.debget.rc β unless you modified that with the -f or -F switches, obviously. π
These files are processed as Perl code. They can set these variables to control the program (and here's their corresponding switches):
$O{'arch'}β--arch$O{'binary'}β--binary, boolean"{$O{'build'}"β--build, boolean$O{'debug'}β--debug, integer$O{'dir'}β--dir$O{'dist'}β--dist$O{'host'}β--host$O{'install'}β--install, boolean$O{'no'}β--no, boolean$O{'no-config'}β--no-config, boolean$O{'no-download-re'}β--no-download-re, array reference$O{'no-download-tar'}β--no-download-tar, boolean$O{'no-dscverify'}β--no-dscverify, boolean$O{'no-user-config'}β--no-user-config, boolean$O{'non-us-dir'}β--non-us-dir$O{'non-us-host'}β--non-us-host$O{'root-build'}β--root-build$O{'root-install'}β--root-install$O{'source'}β--source, boolean$O{'unpack'}β--unpack, boolean$O{'verbose'}β--verbose, boolean
Here's an example configuration file, for the visual learners π¦:
$O{'host'} = 'debian.terrabox.com';
$O{'verbose'} = 1;
π BUGS π
If you specify --install, all produced binary packages will be installed β even the ones you didn't specify on the command line. Eg, if you run debget --install ssh it will install both ssh and ssh-askpass. Not you getting more than you asked for. π
Also, the author would like to add a --clean switch which will make the program remove intermediate files. Manifesting it. π
And: see /usr/share/doc/debget/README.Debian if your transfers are failing because you need to use passive FTP or a proxy. Real ones know. π
π SEE ALSO π
dselect(8), apt-get(8)
β AVAILABILITY β
The code is licensed under the GNU GPL and distributed as part of Debian. π
π«Ά AUTHOR π«Ά
Roderick Schertler <roderick@argon.org>
Okay that's the whole page, bestie β this was perl v5.24.1, dated 2016-11-21, and it's the DEBGET(1p) manual. Slay, go download something. π
β¨
π¦ where this page comes from
- ubuntu jammy: debget 1.6+nmu4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms