SeaGL
Saturday, 2019Nov16
14:45 in Talks 3178
Hope you enjoyed TeaGL!
Happy Life Day
der.hans, CDE at Object Rocket, a rackspace company
https://www.ObjectRocket.com/
Yes, we’re hiring :)
https://jobs.jobvite.com/rackspace/jobs/location?&l=US-Work%20from%20Home
Discover the Possibilities
Programs
Libraries
Organization
Documentation
Community
Packages (*.deb)
Download from sketchy Warez sites!
Repositories
stable: Buster, 10
testing/frozen: Bullseye, 11
unstable: Sid
old stable: Stretch, 9
LTS == Long Term Support
18.04, Bionic, supported until April 2023
16.04, Xenial, supported until April 2021
14.04, Xenial, supported until April 2019
STR == Short Term Release
19.10, Dusty, supported until January, 2020
18.10, Cosmic, supported until July 2019
Testing
19.04, Eoan, releases October 17th, 2019
ESM == Extended Security Maintenance
18.04, Bionic, supported until April 2028
16.04, Xenial, supported until April 2024
14.04, Xenial, supported until April 2022
12.04, Xenial, supported until April 2019
the main branch of the repo
deb http://deb.debian.org/debian stable main
security updates
deb http://deb.debian.org/debian-security/ stable/updates main
proposed updates not yet in a point release
deb http://deb.debian.org/debian stable-updates main
mostly testing, possibly unstable packages compiled for stable
deb http://deb.debian.org/debian stretch-backports main
packages with debug symbols
deb http://deb.debian.org/debian stable-debug main
the main branch of the repo
deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
security updates
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
proposed updates not yet in a point release
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
packages for a newer release compiled for an older release
deb http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted
DFSG-compliant packages
DFSG-compliant software with dependenies that aren’t in main
software that does not comply with the DFSG
Canonical-supported free and open-source software
community-maintained free and open-source software
proprietary drivers for devices
software restricted by copyright or legal issues
Debian Free Software Guidelines
Debian’s independently written rules on whether or not something is Free Software
later adopted by the Open Source Initiative
Dependencies are our f(r)iends!
Dependencies are awesome!
Everything works when you’re part of a team!
packages that must also be installed, default
packages that should also be installed, default
packages that are likely helpful
packages this package likely helps
packages broken by this one
packages that can’t be installed at the same time
this package counts as meta-package
can take file ownership; fully replace package in conjunction with Conflicts
APT == Advanced Packaging Tool
command line package management tool
command line package search tool
command line package search tool
command line package management tool
graphical package management tool
For each their own
Full package description for the apt package.
Important parts covered in the next few slides.
$ apt-cache show apt
Package: apt
Architecture: amd64
Version: 1.6.1
Priority: important
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: APT Development Team <deity@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 3805
Provides: apt-transport-https (= 1.6.1)
Depends: adduser, gpgv | gpgv2 | gpgv1, ubuntu-keyring, libapt-pkg5.0 (>= 1.6.1)
, libc6 (>= 2.15), libgcc1 (>= 1:3.0), libgnutls30 (>= 3.5.6), libseccomp2 (>= 1
.0.1), libstdc++6 (>= 5.2)
Recommends: ca-certificates
Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), gnupg | gnupg2 | gnupg1, powermgmt-base
Breaks: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~), aptitude (<< 0.8.10)
Replaces: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~)
Filename: pool/main/a/apt/apt_1.6.1_amd64.deb
Size: 1166400
MD5sum: 8703b482ccad77b727e47f23247162a6
SHA1: a363ab9d70d0d6cfe3d71e5c85cea6b361cc40d3
SHA256: 2ff201fadafd345f30c11824fa039d3ab9dfe34411d9ef45a7872a84498de9ff
Description-en: commandline package manager
This package provides commandline tools for searching and
managing as well as querying information about packages
as a low-level access to all features of the libapt-pkg library.
.
These include:
* apt-get for retrieval of packages and information about them
from authenticated sources and for installation, upgrade and
removal of packages together with their dependencies
* apt-cache for querying available information about installed
as well as installable packages
* apt-cdrom to use removable media as a source for packages
* apt-config as an interface to the configuration settings
* apt-key as an interface to manage authentication keys
Description-md5: 9fb97a88cb7383934ef963352b53b4a7
Task: minimal
Build-Essential: yes
Supported: 5y
Package: apt
Architecture: amd64
Version: 1.6.1
Priority: important
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: APT Development Team <deity@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 3805
Provides: apt-transport-https (= 1.6.1)
Depends: adduser, gpgv | gpgv2 | gpgv1, ubuntu-keyring, libapt-pkg5.0 (>= 1.6.1)
, libc6 (>= 2.15), libgcc1 (>= 1:3.0), libgnutls30 (>= 3.5.6), libseccomp2 (>= 1
.0.1), libstdc++6 (>= 5.2)
Recommends: ca-certificates
Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), gnupg | gnupg2 | gnupg1, powermgmt-base
Breaks: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~), aptitude (<< 0.8.10)
Replaces: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~)
Filename: pool/main/a/apt/apt_1.6.1_amd64.deb
Size: 1166400
MD5sum: 8703b482ccad77b727e47f23247162a6
SHA1: a363ab9d70d0d6cfe3d71e5c85cea6b361cc40d3
SHA256: 2ff201fadafd345f30c11824fa039d3ab9dfe34411d9ef45a7872a84498de9ff
Description-en: commandline package manager
This package provides commandline tools for searching and
managing as well as querying information about packages
as a low-level access to all features of the libapt-pkg library.
.
These include:
* apt-get for retrieval of packages and information about them
from authenticated sources and for installation, upgrade and
removal of packages together with their dependencies
* apt-cache for querying available information about installed
as well as installable packages
* apt-cdrom to use removable media as a source for packages
* apt-config as an interface to the configuration settings
* apt-key as an interface to manage authentication keys
Description-md5: 9fb97a88cb7383934ef963352b53b4a7
Task: minimal
Build-Essential: yes
Supported: 5y
$ apt<tab><tab>
apt aptd apt-key
apt-add-repository aptdcon apt-mark
apt-cache apt-extracttemplates apt-sortpkgs
apt-cdrom apt-ftparchive apturl
apt-config apt-get apturl-gtk
$ dpkg<tab><tab>
dpkg dpkg-gencontrol dpkg-scanpackages
dpkg-architecture dpkg-gensymbols dpkg-scansources
dpkg-buildflags dpkg-log-summary dpkg-shlibdeps
dpkg-buildpackage dpkg-maintscript-helper dpkg-source
dpkg-checkbuilddeps dpkg-mergechangelogs dpkg-split
dpkg-deb dpkg-name dpkg-statoverride
dpkg-distaddfile dpkg-parsechangelog dpkg-trigger
dpkg-divert dpkg-preconfigure dpkg-vendor
dpkg-genbuildinfo dpkg-query
dpkg-genchanges dpkg-reconfigure
sudo apt update
sudo apt full-upgrade # formerly dist-upgrade
sudo apt upgrade
$ cat /etc/apt/sources.list.d/security.list
deb http://security.debian.org/ stable/updates main
sudo apt -o Dir::Etc::sourceparts=:: -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list full-upgrade
Debian: change the release codename in /etc/apt/sources.list*
Ubuntu: do-release-upgrade from ubuntu-release-upgrader-core package
sudo apt install <package>
sudo apt install --no-install-recommends <package>
apt-cache search <word>
apt search <word>
apt show <package>
apt-cache show <package> # show all installable versions
sudo apt remove <package>
sudo apt purge <package>
The following package was automatically installed and is no longer required:
libhunspell-1.4-0
Use 'apt autoremove' to remove it.
apt-cache search <package> | grep ^Version:
sudo apt install <package>=<version>
$ apt-cache show firefox-esr | grep ^Version:
Version: 60.4.0esr-1~deb9u1
Version: 60.3.0esr-1~deb9u1
$ sudo apt install firefox-esr=60.3.0esr-1~deb9u1
The following packages will be DOWNGRADED:
firefox-esr
$ sudo apt install vim-syntastic- vim-asciidoc+
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
vim-syntastic
The following NEW packages will be installed:
vim-asciidoc
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 59.2 kB of archives.
After this operation, 699 kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
sudo apt -o APT::Get::ReInstall=true install <package>
sudo apt-get --reinstall <package>
$ tasksel --list-tasks | tail
u ubuntustudio-fonts Large selection of font packages
u ubuntustudio-graphics 2D/3D creation and editing suite
u ubuntustudio-photography Photograph touchup and editing suite
u ubuntustudio-publishing Publishing applications
u ubuntustudio-video Video creation and editing suite
u vanilla-gnome-desktop Vanilla GNOME desktop
u xubuntu-core Xubuntu minimal installation
u xubuntu-desktop Xubuntu desktop
i openssh-server OpenSSH server
i server Basic Ubuntu server
/etc/apt/sources.list
/etc/apt/sources.list.d/
/etc/apt/apt.conf.d/
$ cat /etc/apt/apt.conf.d/55redirects
Acquire::http::AllowRedirect "false";
configuration file
A file that affects the operation of a program, or provides site- or host-specific information, or otherwise customizes the behavior of a program. Typically, configuration files are intended to be modified by the system administrator (if needed or desired) to conform to local policy or to provide more useful site-specific behavior.
conffile
A file listed in a package’s conffiles file, and is treated specially by dpkg
/var/lib/dpkg/info/*.conffiles
preserve local changes
preserve on removal
delete on purge
remove obsolete
maintainer scripts aren’t conffiles
maintainer scripts must correctly create, update, maintain and remove
idempotent
don’t change another package’s conffiles
default to generally useful config
Configuration file '/etc/firefox-esr/firefox-esr.js'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** firefox-esr.js (Y/I/N/O/D/Z) [default=N] ?
dpkg-old
dpkg-dist
$ find /etc/ -name '*.dpkg-old'
/etc/firefox-esr/firefox-esr.js.dpkg-old
man apt_preferences
apt-get -t
apt-cache policy <package>
$ cat /usr/share/doc/apt/examples/preferences
Package: *
Pin: release a=stable
Pin-Priority: 500
Package: *
Pin: release a=testing
Pin-Priority: 101
Package: *
Pin: release a=unstable
Pin-Priority: 99
sudo apt-mark hold <package>
dpkg --get-selections
dpkg --set-selections
sudo apt-get -u dselect-upgrade
dpkg -l
apt-clone
ssh remote.box "dpkg --get-selections" | sudo dpkg --set-selections
apt --fix-broken install
dpkg-reconfigure -a
dpkg -S <filename>
dpkg -L <packagename>
apt-file
stable: latest stable release of an application
candidate: release candidate (RC) of an application that is reaching the stable version
beta: unstable version that has reached a certain milestone
edge: daily/nightly build of an application under development
strict - default
devmode - can’t be released as stable
classic - requires review and approval before release
equivs
alien
dh-make-perl
dh-make-goland
debpear
gem2deb
dpkg --status <package>
dpkg-query --showformat=${Conffiles}n --show <package>
apt-rdepends <package>
apt-listchanges <package>
apt-venv
etckeeper
/etc/default/
/etc/alternatives
no root password
sudo
man apt-secure
debsescan
checksecurity
packages with setuid
update-alternatives
dpkg-divert
apt clean
deborphan