Distribution : Debian / Ubuntu
Niveau : Débutant
Commentaire :
Le premier jour, l'homme créa le noyau Linux.
Le deuxième jour, l'homme créa les .tar.gz qu'il fallait compiler à la main.
Le troisième jour, par flemme, l'homme créa le système dpkg pour installer des paquets simplement.
La quatrième jour, parce qu'il est vraiment flemmard, l'homme créa apt pour gérer les dépendances.
Le cinquième jour, l'homme greffa des interfaces graphiques autour de apt (synaptic, aptitude).
Le sixième et le septième jour, l'homme était en week end, alors il n'alla pas plus loin...
Le projet Debian dispose de quatres dépôts officiels, correspondant aux branches de la distribution : oldstable, stable, testing, unstable, plus un dépôt dit experimental qui contient des paquets... expérimentaux, comportant un risque pour votre système.
Chaque dépôt est décomposé en trois sections, ou composants : main, contrib et non-free. La section main contient les logiciels libres au sens Debian, la setion non-free les paquets non-libres mais mis à disposition des utilisateurs pour des raisons pratiques, la section contrib quant à elle contient les paquets libres dépendants de paquet non-libre.
Plus d'informations sur les Depots dans l'article sur les dépôts.
De base, les outils standart de apt sont installés. il reste juste à faire :
# apt-get install apt-file apt-show-versions curl
# apt-get update
Pour ajouter des nouveaux packages, il faut modifier le fichier /etc/apt/sources.list. Je ne m'étendrais pas dessus, les lignes à rajouter sont toujours indiqués sur les sites où vous chercherez des packages Debian non disponibles dans la distribution de base.
Une fois le fichier modifié, il reste juste à faire un petit
# apt-get update
$ apt-cache search [package|mot clé]
Afin de connaître la version d'un paquet installé, ou la version d'un paquet qu'on désire installer, on peut utiliser la commande suivante :
# apt-cache policy <nom-du-paquet>
Exemple d'un paquet installé qui ne nécessite pas de mise à jour :
# apt-cache policy firefox
firefox:
Installé : 1.5.dfsg+1.5.0.7-2
Candidat : 1.5.dfsg+1.5.0.7-2
Table de version :
*** 1.5.dfsg+1.5.0.7-2 0
500 http://ftp.fr.debian.org etch/main Packages
100 /var/lib/dpkg/status
Exemple d'un paquet non installé :
# apt-cache policy kde
kde:
Installé : (aucun)
Candidat : 5:47
Table de version :
5:47 0
500 http://ftp.fr.debian.org etch/main Packages
$ apt-cache show [package]
$ apt-cache showpkg [package]
$ apt-cache depends [package]
$ apt-show-versions [package]
$ dpkg -L [package]
$ apt-file list [package]
# apt-get install {--reinstall} [package]
L'option --reinstall réinstalle le package même si l est déjà installé
Pour reprendre une installation interrompue :
# apt-get -f install # apt-cache policy firefox
firefox:
Installé : 1.5.dfsg+1.5.0.7-2
Candidat : 1.5.dfsg+1.5.0.7-2
Table de version :
*** 1.5.dfsg+1.5.0.7-2 0
500 http://ftp.fr.debian.org etch/main Packages
100 /var/lib/dpkg/status
# apt-get source [package]
Celà va installer les sources du packages dans le répertoire courant.
Si vous voulez construire immédiatement le package :
# apt-get -b source [package]
Pour construire le package plus tard il suffit de faire :
# dpkg-buildpackage -rfakeroot -uc -b
Et pour l'installer comme d'habitude :
# dpkg -i [package].deb
# apt-get upgrade
# apt-get remove {--purge} [package]
L'option --purge supprime les fichiers de configuration
Vous voulez installer le package fournissant le script toto mais vous ne connaissez pas le nm du package et apt-cache ne vous donne aucun indice... Il faut alors utiliser apt-file qui recherche les noms de fichier dans les archives
Mise à jour de la base :
$ apt-file update
Recherche :
$ apt-file search [fichier]
Recherche d'un fichier parmi les packages installés sur le système :
# dpkg -S [fichier]
Au fur et à mesure des installations, le dossier /var/cache/apt/archives se remplit. Pour le vider :
# apt-get clean
Au fur et à mesure des installations/désinatllations, on peut se retrouver avec des packages orphelins qui prennent inutilement de la place...
Pour les lister, on peut utiliser deborphan
Installation :
# apt-get install deborphan
Utilisation :
# deborphan
Ce qui a donné chez moi :
Ptit-Barton:~# deborphan libident libtextwrap1 liboil0.2 libpt-plugins-oss libnspr4 classpath libopenh323-1.15.2 guile-1.6-libs libdb2 libnss3 libdvdplay0 libpt-plugins-v4l2 libebook8 libgnutls10
Un petit
# apt-get remove --purge $(deborphan)
m'a permis de gagner 15 précieux Mo...
Il n'est pas utile de créer son propre programme pour pinger tous les mirrors, et déterminer lequel est le plus rapide d'accès. L'outil netselect peut se charger d'effectuer ces tests.
Installer le comme suit :
# apt-get install netselect
Vous pourrez trouver la liste des mirrors debian à l'adresse suivante : http://www.debian.org/mirror/list
Lancer ensuite la commande netselect avec en paramètre les serveurs de votre choix
Dans l'exemple suivant, le serveur ftp.fr.debian.org resort comme étant le plus proche.
DEBLIN-SVR:/home/debuk26# netselect ftp.fr.debian.org ftp2.fr.debian.org ftp.iut-bm.univ-fcomte.fr 170 ftp.fr.debian.org
Maintenant, il ne vous reste plus qu'à mettre à jour votre fichier /etc/apt/sources.list en fonction du résultat obtenu sur votre ordinateur.
Il peut arriver qu'il vous manque une clef publique pour accéder à certains dépôts. Il y a maintenant quelques temps que le dépôt marillat c'est déplacé vers http://www.debian-multimedia.org. Après avoir remplacé le dit dépôt dans votre fichier /etc/apt/sources.list, et effectuer un apt-get update pour mettre à jour la liste des paquets, une erreur survenait :
W: GPG error: http://www.debian-multimedia.org etch Release: Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 07DC563D1F41B907
Par suite, il faut l'ajouter. Dans un premier temps, il est nécessaire de l'importer :
# gpg --keyserver pgpkeys.mit.edu --recv-key 1F41B907
où 1F41B907 sont les 8 derniers digits de la clef, et pgpkeys.mit.edu un serveur de clef sûre. On obtient le résultat suivant :
gpg: requête de la clé 1F41B907 du serveur hkp pgpkeys.mit.edu gpg: clé 1F41B907: nom d'utilisateur en double détecté - fusion accomplie gpg: clé 1F41B907: clé publique « Christian Marillat <marillat@debian.org> » importée gpg: aucune clé de confiance ultime n'a été trouvée gpg: Quantité totale traitée: 1 gpg: importée: 1
Ensuite, on vérifie que la clef récupérée est la bonne grâce au fingerprint :
# gpg --fingerprint 1F41B907
ce qui renvoie :
pub 1024D/1F41B907 1999-10-03 Empreinte de la clé = 1D7F C53F 80F8 52C1 88F4 ED0B 07DC 563D 1F41 B907 uid Christian Marillat <marillat@debian.org> uid Christian Marillat <marillat@free.fr> sub 1536g/C28DCC42 1999-10-03
Dans cette exemple, on peut trouver dans la FAQ de www.debian-multimedia.org le fingerprint de ce cher Christian : 1D7F C53F 80F8 52C1 88F4 ED0B 07DC 563D 1F41 B907. Les deux correpondent, donc tout va bien.
Finalement, on l'ajoute :
# gpg -a --export 1F41B907 | apt-key add -
Si tout c'est bien déroulé, alors le message OK doit apparaître dans votre console.
D'autres serveurs sont disponibles : hkp://wwwkeys.eu.pgp.net