.. -*- coding: utf-8; -*-====== Apt.======.. contents:: :local:Debian releases===============Workflow:: experimental → unstable (sid) → testing → stableWhich package from witch release:: $ aptitude search ~S~i~Astable $ aptitude search ~S~i~Atesting $ aptitude search ~S~i~Aunstable $ aptitude search ~S~i~Aexperimental * https://wiki.debian.org/DebianReleases * https://wiki.debian.org/DebianOldStable * https://wiki.debian.org/DebianStable * https://wiki.debian.org/DebianTesting * https://wiki.debian.org/DebianUnstable * https://wiki.debian.org/DebianExperimentalConf files==========See man sources.list(5), apt.conf(5), apt_preferences(5).``http://httpredir.debian.org/debian/`` used for automatic balancing to nearestperository. Corresponding ``/etc/apt/sources.list`` may have:: deb http://httpredir.debian.org/debian/ stable main contrib non-free deb http://httpredir.debian.org/debian/ stable-backports main contrib non-free deb http://httpredir.debian.org/debian/ unstable main contrib non-free deb http://httpredir.debian.org/debian/ experimental main contrib non-free deb http://httpredir.debian.org/debian/ testing main contrib non-free deb http://httpredir.debian.org/debian/ testing main contrib non-freeSecurity updates destributed via different URL (for ``oldstable``, ``stable``and ``testing`` only, of cause there are no reason for ``sid`` or``experimental``):: deb http://security.debian.org/ oldstable main contrib non-free deb http://security.debian.org/ stable main contrib non-free deb http://security.debian.org/ testing main contrib non-freeOther useful repositories:: deb http://www.deb-multimedia.org testing main non-freehttps://wiki.debian.org/SourcesList About ``/etc/apt/sources.list``.http://httpredir.debian.org/ The redirector aims to solve the problem of choosing a Debian mirror.https://www.debian.org/security/ Keeping your Debian system secure.https://wiki.debian.org/UnofficialRepositories List of useful unofficial repositories.https://www.google.com/linuxrepositories/ Links to Google repositories and verification key.Find nearest mirror===================Newer approach for selecting mirror is via DNS balancing from``httpredir.debian.org``. Just use:: deb http://httpredir.debian.org/debian/ stable main contrib non-freeOlder approach to select nearest mirrors is:: $ sudo apt-get install netselect-apt $ netselect-apt stable $ netselect-apt testing $ netselect-apt unstable $ netselect-apt experimental $ netselect-apt sidCheck package versions and priority===================================``/etc/apt/preferences``:: Package: * Pin: release a=stable Pin-Priority: 800 Package: * Pin: release a=testing Pin-Priority: 900 Package: * Pin: release a=unstable Pin-Priority: 700 Package: * Pin: release a=experimental Pin-Priority: 600Example that prevent installing ``*systemd*`` packages (priority strictly below``0`` forbid package to be installed):: Package: systemd Pin: origin "" Pin-Priority: -1 Package: *systemd* Pin: origin "" Pin-Priority: -1Example that avoid installing packages from different distribution (prioritystrictly below ``100`` cause a version to be installed only if there is noinstalled version of the package), you should keep main distribution priorityabove foreign distro priority:: Package: * Pin: release a=testing Pin-Priority: 990 Package: * Pin: release o=Kali Pin-Priority: 50To discover package priority:: bash# apt-cache madison emacs24 emacs24 | 24.5+1-3 | http://ftp.us.debian.org/debian/ testing/main amd64 Packages emacs24 | 24.4+1-5 | http://http.kali.org/kali/ kali-current/main amd64 Packages emacs24 | 24.5+1-3 | http://ftp.us.debian.org/debian/ testing/main Sources bash# apt-cache policy emacs24 emacs24: Installed: 24.5+1-3 Candidate: 24.5+1-3 Version table: *** 24.5+1-3 0 990 http://ftp.us.debian.org/debian/ testing/main amd64 Packages 100 /var/lib/dpkg/status 24.4+1-5 0 50 http://http.kali.org/kali/ kali-current/main amd64 Packages bash# aptitude versions emacs24 Package emacs24: p 24.4+1-5 kali-current 50 i 24.5+1-3 testing 990Setup backport.===============Main backports archive located at http://www.backports.org.To get packeges gpg sign key:: $ su ... $ wget -O - http://backports.org/debian/archive.key | apt-key add - $ ^DWrite where packeges places:: $ cat /etc/apt/sources.list deb http://www.backports.org/debian/ etch-backports main contrib non-freeImporting package signing key.==============================Usualy you can safely update keyring via ``debian-keyring`` package because itis signed by prevoius keyring:: $ sudo apt-get install debian-keyringDefferent 3rd party provide keys for download. If you trust key (or get it in atrusted way) it is easy to import it:: $ sudo apt-key add $FILE.pgpAnother way to resolve warning:: $ sudo apt-get update ... W: There is no public key available for the following key IDs: 9AA38DCD55BE302B W: GPG error: http://http.us.debian.org etch Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE302B ...is to use key servers directly:: $ gpg --keyserver pgp.mit.edu --recv-key 9AA38DCD55BE302B \ --keyserver-options http-proxy=http://user:pass@192.168.1.1:3128 gpg: requesting key 55BE302B from hkp server pgp.mit.edu gpg: key 55BE302B: public key "Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) $ gpg --export 9AA38DCD55BE302B | sudo apt-key add - OKInstall build dependency for package.=====================================:: $ apt-get install build-essential # install dev LIBC and GCC C/C++ $ sudo apt-get build-dep $packageIf all you want is checking what packages are needed to build a given package:: $ apt-cache showsrc $packageor check 'Build-Depends' attribute in:: $ apt-cache show $packageDelete config file for removed packages.========================================To get list of such packages use one of:: $ aptitude search ~c $ grep-status -n -sPackage -FStatus config-filesTo remove them:: $ aptitude purge ~cDelete obsolete packages.=========================To get list of such packages use:: $ aptitude search ~oTo remove them:: $ aptitude purge ~oTo remove packages that were automatically installed to satisfy dependencies andare now no longer needed:: $ sudo apt-get autoremoveClean up packages cache.========================Remove everything from ``/var/cache/apt/archives/`` and``/var/cache/apt/archives/partial/``:: $ sudo apt-get cleanRemoves package files that can no longer be downloaded, and are largelyuseless:: $ sudo apt-get autocleanCheck package files for modification.=====================================:: $ sudo debsums --changedSearch for packages.====================:: $ aptitude search '?tag(works-with::logfile)'Show dependency graph.======================:: $ apt-cache dotty $PKG | dot -Tsvg >$PKG.svg && see $PKG.svg $ sudo apt-get install debtree $ debtree $PKG | dot -Tsvg >$PKG.svg && see $PKG.svg $ sudo apt-get install apt-rdepends $ apt-rdepends $PKG $ apt-rdepends -r $PKG $ apt-rdepends -d $PKG | dot -Tsvg >$PKG.svg && see $PKG.svg $ apt-rdepends -d -r $PKG | dot -Tsvg >$PKG.svg && see $PKG.svgSimulation mode===============Simulation for ``apt-get`` and ``aptitude`` shows what happen without actuallymodifying or installing any packages.Simulate install or upgrade with ``-s`` key:: $ sudo apt-get install -s xterm $ sudo aptitude install -s xterm $ sudo apt-get upgrade -s $ sudo aptitude upgrade -s