apt et yum
18/01/2018APT et YUM sont les deux principaux gestionnaires de paquets des deux grandes familles de distributions Linux que sont les Red Hat (RHEL, CentOS, Fedora,…) et les Debian (Ubuntu,…). Ils traitent respectivement les packages au format DPKG et RPM.
commandes
# update local database
$ apt update
$ yum makecache
# clear database
$ apt clean
$ yum clean all
# update package
$ apt upgrade
$ yum check-update
$ yum update
# upgrade distribution
$ apt full-upgrade # apt dist-upgrade
$ yum upgarde
# make searchs
$ apt search xxxxx # apt-cache search xxxxx
$ yum search xxxxx
# install package
$ apt install xxxxx
$ yum install xxxxx
# info on package
$ apt-cache showpkg php
$ yum info php # ou rpm -i php
# download package
$ apt download xxxxx
$ yumdownloader xxxxx # via yum-utils
# delete package
$ apt remove xxxxx
$ yum remove xxxxx
# list all available packages
$ apt list
$ yum list available [nginx-*]
$ yum list all
# list all installed packages
$ apt list --installed
$ yum list installed
# list all upgradable packages
$ apt list --upgradable
$ yum list updates
# obsoletes packages
$ yum obsoletes
# last packages added
$ yum recent
# repo list
$ yum repolist
apt
- gestionnaire de paquets
- Debian based (Ubuntu,…)
- format
.deb
- gestion des dépendances
# repository config
$ cat /etc/apt/sources.list
# example
$ cat /etc/apt/sources.list
...
deb http://ftp.fr.debian.org/debian/ stretch main
deb-src http://ftp.fr.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main
deb-src http://security.debian.org/debian-security stretch/updates main
...
format dpkg
DPKG (Debian Package) est un gestionnaire de package pour les distributions de type Debian. Il utilise une base de données locale qui se trouve dans /var/lib/dpkg
. Il ne s’occupe pas des dépendances entre paquets.
nomenclature
nom_version–édition_archi.deb
nom
du paquetversion
de celui-ciedition
du paquet spécifique à la distributionarchitecture
Ex: tmux_2.3-4_amd64.deb
- nom=tmux
- version=2.3
- edition=4
- archi=amd64
quelques commandes
# install package
$ dpkg -i tmux_2.3-4_amd64.deb
# update packages only if they are already installed
$ dpkg -l tmux | grep ^ii >/dev/null && dpkg -l tmux_2.3-4_amd64.deb
# install all folder packages
$ dpkg -R dossier/
# delete package, but keep config files
$ dpkg -r tmux
# delete package, with this config files
$ dpkg -P tmux
# list all knowed packages
$ dpkg -l # ii means installed
# make search
$ dpkg -l "apt*"
# list all installed packages
$ dpkg --get-selection
# what is the package of this file
$ dpkg -S /usr/sbin/vim
# list all packages files
$ dpkg -L tmux
# info on package
$ dpkg -I vim
# delete all non installed packages
$ dpkg -r -a # ou --pending
# reconfigure (post installation scrip)
$ dpkg-reconfigure nginx
yum
- gestionnaire de paquets
- Red Hat based (RHEL, CentOS, Fedora, …)
- format
.rpm
- gestion des dépendances
- sera remplacé par DNF (prochainement)
# global conf
$ cat /etc/yum.conf
# repositories config
$ cat /etc/yum.repo.d/*
# example
$ cat /etc/yum.repo.d/epel.repo
...
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
...
Directives de la configuration du dépôt:
[epel]
: nom court du dépôtname
: nom longbaseurl
: lien qui pointe sur la base de paquetsmirorlist
: lien qui pointe vers une liste de liensmetalink
: même chose que mirorlistgpgcheck
: faut-il demander une signature (0 ou 1)enabled
: le dépôt est-il activé (0 ou 1)gpgkey
: emplacement des clés GPG locales
format rpm
RPM (Red Hat Package Manager) est un gestionnaire de package pour les distributions de type Red Hat. RPM a été inventé par ces derniers. Il utilise une base de données locale qui se trouve dans /var/lib/rpm
. Il ne s’occupe pas des dépendances entre paquets.
nomenclature
nom–version–edition.archi.rpm
nom
du paquetversion
de celui-ciedition
du paquet spécifique à la distributionarchitecture
Ex: php-5.4.16-43.el7_4.x86_64.rpm
- nom=php
- version=5.4.16
- edition=43.el7_4
- archi=x86_64
quelques commandes
# install package
$ rpm -i php-5.4.16-43.el7_4.x86_64.rpm
# install or update
$ rpm -Uvh php-5.4.16-43.el7_4.x86_64.rpm # verbose mode + progress bar
# update only if package is already installed
$ rpm -Fvh php-5.4.16-43.el7_4.x86_64.rpm # verbose mode + progress bar
# after update, old config files are keeped as *.rpmave
# delete package
$ rpm -e php
# Options :
# --force
# --nodeps
# list all installed packages
$ rpm -qa
# info on package
$ rpm -qi nginx
# package files
$ rpm -ql php
# what is the package of this file
$ rpm -qf /usr/sbin/vim
# search inside the package
$ rpm -qp php-5.4.16-43.el7_4.x86_64.rpm
# package dependances
$ rpm -q --requires nginx
# what provides the package
$ rpm -q --provides nginx
# scripts executed on install and on deletation
$ rpm -q --scripts nginx
# changelog
$ rpm -q --changelog nginx
# info on package evolution
$ rpm -V php
# S : size changed
# 5 : md5 sum changed
# T : modif. date has changed
# U : owner has changed
# G : goup has changed
# L : symb. link has changed
# M : permissions or file type has changed
# D : device has been changed
# c : it is a config. file
# extract package content (cpio archive)
$ rpm2cpio php-5.4.16-43.el7_4.x86_64.rpm | cpio -diun
# install new kernel
# with -i option
# restart + test
# delete old kernels (-e)
# grub1: edit /boot/grub/grub.conf with Default on new noyau
# grub2: cmd grub2-mkconfig