[inetdoc.LINUX]
http://www.linux-france.org/prj/inetdoc
Exploration GNU/Linux - Séance 3
Caractéristiques des Environnements graphiques
Gestion des paquets avec APT
Philippe Latu
philippe.latu(at)linux-france.org
IUT 'A' Paul Sabatier - STRI
$Id: explore.seance.3.mgp 1239 2008-01-17 11:56:14Z latu $
(page 1)
(2/33)
Configuration d'un système GNU/Linux
- Objectifs.
- Caractériser l'interface graphique X.Org
- Utiliser l'environnement graphique KDE
- Utiliser les outils de gestion de paquets APT
- Gérer la collection des paquets d'applications
(page 2)
(3/33)
Environnements graphiques
- Interface graphique X.Org
- Consortium X-Window
- Origine des interfaces graphiques Unix
- 1986 : première version diffusée par le MIT
- 1992 : début du projet XFree86
- http://www.xfree86.org
- Initialement dédié aux processeurs Intel i386
- Étendu au catalogue des processeurs du projet GNU
- 2004 : lancement de la fondation X.Org
(page 3)
(4/33)
Environnements graphiques
- Premiers environnements propriétaires
- Bibliothèques Motif & Environnement CDE
- Projets XFree86 puis X.org
- Nouveaux développements
- Méthodes propres au Logiciel Libre
- Adaptabilité, travail collaboratif, etc.
- Adaptabilité
- Rapports performances/matériels et fonctions/besoins
- Systèmes embarqués = environnements légers et faible
consommation
- Stations graphiques = environnements 3D et hautes performances
(page 4)
(5/33)
Environnements graphiques
- Outils de travail collaboratif
- Développements très dynamiques
- Avantage : nouveaux traitements graphiques introduits rapidement
- Inconvénient : coordination difficile entre projets
concurrents
- Environnement graphique = chaîne de développement
- Quelques exemples
- Enlightenment & Enlightenment Foundation Libraries
- Window Maker & GNUstep
(page 5)
(6/33)
Environnements graphiques
- Quelques exemples (suite)
- Gnome & GTK
- KDE & QT
- Chaîne de développement
- Informations KDE
(page 6)
(7/33)
Environnement graphique KDE
- KDE 4 attendu début 2008
- Bibliothèques QT4
- Modularité étendue, SVG & anti-aliasing, Styles
améliorés
- DBus
- Bus de messages systèmes
- Démon système de communications inter-processus (IPC).
- Solid
- Couche d'abstraction matérielle (HAL)
- Collecte des évènements matériels et
notification
- Phonon
- Akonadi
- Interface standard de gestion des informations personnelles (PIM)
- Nepomuk
- Poste de travail sémantique et social
(page 7)
(8/33)
Environnement graphique KDE
- Applications
- Ouvrir le système d'aide
- Rechercher les pages de manuels sur la commande 'find'
- Ouvrir le navigateur Konqueror
- Ouvrir le centre d'information système
- Consulter la liste des protocoles
- Effectuer plusieurs tests de protocoles avec Konqueror
- Rechercher la liste des périphériques connectés sur
le bus PCI
- Rechercher et exécuter l'utilitaire «Surveillance
Système»
- Visualiser la table des processus
- Repérer les propriétaires de ces processus
- Utiliser le centre de configuration de KDE
(page 8)
(9/33)
Gestion des paquets
- Distribution
- noyau Linux + collection de paquets
- Gestionnaire de paquet
- Ajouter ou supprimer des bibliothèques et applications
- Télécharger à partir de miroirs ou
dépôts
- Interroger l'index ou les propriétés de la base des
paquets
- Bibliothèques partagées
- Briques logicielles partagées entre plusieurs applications
- Dépendances
- Relations entre applications et bibliothèques
- Définitions & étude comparative
(page 9)
(10/33)
Gestion des paquets
- Paquets binaires (.rpm|.deb)
- Exécution immédiate
- Temps d'installation plus court
- Cible d'exécution générique
- Paquets sources (ports|emerge|deb-src)
- Exécution après compilation
- Temps d'installation beaucoup plus long
- Cible d'exécution précise
(page 10)
(11/33)
Gestion des paquets
- Gestionnaires de paquets
- OpenBSD & paquets binaires : 'pkg_add'
- Aucune prise en charge des dépendances
- Protection faible contre les conflits
- OpenBSD & paquets sources : ports
- Dépendances gérées lors de la compilation des
sources
- RedHat/Mandriva & paquets binaires : 'rpm'
- Prise en charge des dépendances uniquement à
l'installation
- Bonne protection contre les conflits
- SGBD de contrôle des dépendances avec d'autres outils
('urpmi'|'yum')
- Gentoo & paquets sources : 'emerge'
- Dépendances gérées lors de la compilation des
sources
- solution de type ports appliquée à GNU/Linux
(page 11)
(12/33)
Gestion des paquets
- Gestionnaire APT
- Debian Advanced Package Tool
- Contrat Social
- Mises à jour continues & incrémentales
- Installation unique pour toute la durée de vie du
système
- Stratégie établie suivant les branches de la
distribution
(page 12)
(13/33)
Gestion des paquets avec APT
- Branches & Catégories
- 3 branches principales permanentes indépendantes
- stable : paquets de la dernière version officielle
- testing : paquets en attente d'intégration dans la version
stable
- unstable : paquets les plus récents en cours de tests
- 3 catégories
- main : paquets conformes aux règles Debian
- contrib : paquets de logiciels libres dépendant d'outils non
libres
- non-free : paquets avec des conditions de redistribution
particulières
(page 13)
(14/33)
Gestion des paquets avec APT
- Rythmes des mises à jour
- Mises à jour branche stable
- Mises à jour branche testing
- sécurité : deb http://security.debian.org/ testing/updates
main contrib
- risque moyen : convient bien pour les infrastructures de tests
- rythme d'évolution satisfaisant pour couvrir tous les besoins
- Mises à jour branche unstable
- pas de sécurité
- risque élevé : «il faut assumer ses choix»
- rythme d'évolution beaucoup trop rapide pour les
néophytes
(page 14)
(15/33)
Gestion des paquets avec APT
- Niveaux de gestion des paquets
- Interface utilisateur graphique
- synaptic & kpackage
- Applicable uniquement dans le contexte client
- Interface utilisateur console
- aptitude & dselect
- Applicable dans les contextes client et serveur
- Ligne de commande
- apt-get, apt-cache, aptitude
- Gestion globale des paquets à partir du catalogue
- Ligne de commande
- dpkg, dpkg-reconfigure, dpkg-buildpackage
- Manipulations sur les paquets installés ou à construire
(page 15)
(16/33)
Gestion des paquets avec APT
- Construction du catalogue
- Liste des sources de dépôts de paquets
- Fichier /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ stable
main contrib
# | `--> adresse miroir | `--> catégories
# `---> paquets binaires `---> branche
deb-src http://ftp.fr.debian.org/debian/ stable
main contrib
# `---> paquets sources
deb http://security.debian.org/
stable/updates main
# `--> adresse miroir correctifs de sécurité
deb http://www.debian-multimedia.org stable
main
# `--> adresse miroir non officiel
(page 16)
(17/33)
Gestion des paquets avec APT
- Construction du catalogue
- Liste des sources de dépôts de paquets
- Fichier /etc/apt/sources.list
- Cas particulier des médias de stockage
deb cdrom:[Debian GNU/Linux testing _Etch_ \%fore
"#000084"
# | | - Official Snapshot i386 Binary-1 (20061111)]/ etch main # | `--->
CDROM `--> branche
# `---> paquets binaires
- Commande de gestion des médias amovibles
- Construction du catalogue des paquets
- Passage en revue de chaque source
- Téléchargement des
différences
- Construction de l'arbre des dépendances
(page 17)
(18/33)
Gestion des paquets avec APT
- Construction du catalogue
# apt-get update
Réception de : 1 http://ftp.fr.debian.org testing Release.gpg
[378B]
Réception de : 2 http://security.debian.org testing/updates
Release.gpg [189B]
Réception de : 3 http://ftp.fr.debian.org testing Release
[74,4kB]
Atteint http://security.debian.org
testing/updates Release
Ign http://security.debian.org
testing/updates/main Packages/DiffIndex
Réception de : 4 http://ftp.fr.debian.org testing/main
Packages/DiffIndex [2038B]
Atteint http://security.debian.org
testing/updates/main Packages
Réception de : 5 http://ftp.fr.debian.org testing/main
2006-12-14-2009.48.pdiff [2094B]
Réception de : 6 http://ftp.fr.debian.org testing/main
2006-12-14-2009.48.pdiff [2094B]
Réception de : 7 http://ftp.fr.debian.org testing/main
2006-12-14-2009.48.pdiff [2094B]
78,9ko réceptionnés en 3s (22,8ko/s)
Lecture des listes de paquets... Fait
- Mise à jour
- Base de données locale des paquets depuis les
sources
- Arbre des dépendances entres bibliothèques
et applications
(page 18)
(19/33)
Gestion des paquets avec APT
- Mise à jour globale
- Par différence entre
- La liste des paquets installés
- La liste des paquets disponibles sur le miroir
- Mise à jour de l'ensemble des paquets installés
- apt-get upgrade
- Sans nouvelle dépendance
- Sans conflit de version
- apt-get dist-upgrade
- Avec gestion des nouvelles dépendances
- Avec gestion des conflits de version
- apt-get dselect-upgrade
- Suit les traitements proposés par 'dselect'
- Avec gestion des nouvelles dépendances
- Avec gestion des conflits de version
(page 19)
(20/33)
Gestion des paquets avec APT
# apt-get --fix-missing dselect-upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Les NOUVEAUX paquets suivants seront installés :
libdns22
Les paquets suivants seront mis à jour :
wpagui wpasupplicant
2 mis à jour, 1 nouvellement installés, 0 à enlever et 0
non mis à jour.
Il est nécessaire de prendre 359ko/359ko dans les archives.
Après dépaquetage, 66ko d'espace disque supplémentaires
seront utilisés.
Souhaitez-vous continuer [O/n] ?
Réception de : 1 http://ftp.fr.debian.org testing/main
wpasupplicant 0.5.5-4 [258kB]
Réception de : 2 http://ftp.fr.debian.org testing/main wpagui
0.5.5-4 [100kB]
359ko réceptionnés en 1s (230ko/s)
Préconfiguration des paquets...
<snipped/>
(page 20)
(21/33)
Gestion des paquets avec APT
- Recherches à partir du serveur Web Debian
- http://packages.debian.org
- Search package directories
- Search the contents of packages
- Recherches sur le contenu des paquets
- Existe-t-il un paquet avec un fichier nommé wireshark ?
- Recherches indépendantes de l'installation système
(page 21)
(22/33)
Gestion des paquets avec APT
- Recherches à partir du cache de paquets APT
- Commande apt-cache
- Recherches sur les noms de paquets
- Existe-t-il un paquet avec le nom wireshark ?
$ apt-cache --names-only search wireshark
wireshark - network traffic analyzer
wireshark-common - network traffic analyser (common files)
wireshark-dev - network traffic analyser (development tools)
- Recherches sur les informations du cache
$ apt-cache search wireshark
- Affichage des métadonnées d'un
paquet
$ apt-cache show wireshark
- Affichage des dépendances d'un paquet
$ apt-cache depends wireshark
(page 22)
(23/33)
Gestion des paquets avec APT
- Recherches à partir du catalogue des paquets
- Commande dpkg
- Recherches sur les noms de paquets
- Existe-t-il un paquet avec le nom wireshark ?
$ dpkg -l *wireshark*
Souhait=inconnU/Installé/suppRimé/Purgé/H=à
garder
|
État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux
(État,Err: maj=mauvais)
||/ Nom Version Description
+++-=====================-=============-============================================
ii wireshark 0.99.4-3 network traffic analyzer
ii wireshark-common 0.99.4-3 network traffic analyser (common files)
pn wireshark-dev <néant> (aucune description n'est
disponible)
(page 23)
(24/33)
Gestion des paquets avec APT
- Recherches à partir du catalogue des paquets
- Recherches sur les paquets installés
- Quels sont les paquets installés avec le nom apache2 ?
$ dpkg -l *apache2* |grep ^ii
ii apache2-mpm-worker 2.2.3-3.2 High speed threaded model for Apache
HTTPD
ii apache2-utils 2.2.3-3.2 utility programs for webservers
ii apache2.2-common 2.2.3-3.2 Next generation, scalable, extendable web
ii libapache2-mod-perl2 2.0.2-2.2 Integration of perl with the Apache2
web
- Quel est le paquet qui contient le programme wireshark
?
$ which wireshark
/usr/bin/wireshark
$ dpkg -S /usr/bin/wireshark
wireshark: /usr/bin/wireshark
(page 24)
(25/33)
Gestion des paquets avec APT
- Suppression d'un paquet installé
- Suppression des bibliothèques et de binaires
\# apt-get remove wireshark
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Les paquets suivants seront ENLEVÉS :
wireshark
0 mis à jour, 0 nouvellement installés, 1 à enlever et 0
non mis à jour.
Il est nécessaire de prendre 0o dans les archives.
Après dépaquetage, 1368ko d'espace disque seront
libérés.
Souhaitez-vous continuer [O/n] ?
(Lecture de la base de données... 219188 fichiers et répertoires
déjà installés.)
Suppression de wireshark ...
- Suppression incluant les fichiers de
configuration
# apt-get remove --purge wireshark
(page 25)
(26/33)
Gestion des paquets avec APT
- État après suppression du paquet
# dpkg -l wireshark
Souhait=inconnU/Installé/suppRimé/Purgé/H=à
garder
|
État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
|/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux
(État,Err: maj=mauvais)
||/ Nom Version Description
+++-===============-===================-===========================================
rc wireshark 0.99.4-3 network traffic analyzer
- Indicateurs d'état
- r : paquet supprimé
- c : fichiers de configuration
conservés
- Suppression individuelle de la configuration du
paquet
# dpkg --purge wireshark
(Lecture de la base de données... 219172 fichiers et répertoires
déjà installés.)
Suppression de wireshark ...
Purge des fichiers de configuration de wireshark ...
(page 26)
(27/33)
Gestion des paquets avec APT
- Duplication du jeu de paquets installés
- Processus de choix des paquets utiles laborieux
- Un choix optimal peut être dupliqué
- D'un système à l'autre
- D'une architecture à l'autre : i386|amd64
- Sur le système «source»
$ dpkg --get-selections |gzip >
deb-selections.gz
# zcat deb-selections.gz |dpkg --set-selections
# apt-get dselect-upgrade
(page 27)
(28/33)
Gestion des paquets avec APT
- Applications LAMP
- Rechercher les paquets
- serveur Web Apache2
- langage PHP5
- serveur MySQL
- Afficher les méta-données des paquets choisis
- Installer les paquets
- Afficher la liste des fichiers des paquets
- Localiser la documentation des paquets
- Localiser la configuration des paquets
- Reconfigurer les serveurs apache & mysql
(page 28)
(29/33)
Gestion des paquets avec APT
# apt-get install apache2
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront
installés :
apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1
libpq5
Paquets suggérés :
apache2-doc
Les NOUVEAUX paquets suivants seront installés :
apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1
libpq5
0 mis à jour, 7 nouvellement installés, 0 à enlever et
199 non mis à jour.
Il est nécessaire de prendre 1624ko dans les archives.
Après dépaquetage, 5019ko d'espace disque supplémentaires
seront utilisés.
Souhaitez-vous continuer [O/n] ?
- Illustration
- Méta-paquet adapté aux pages Web
statiques
- apache2 -> apache2-mpm-worker
- Dépendances
- apache2-utils apache2.2-common libapr1
libaprutil1
(page 29)
(30/33)
Gestion des paquets avec APT
# apt-get install php5
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront
installés :
apache2-mpm-prefork libapache2-mod-php5 php5-common
Paquets suggérés :
php-pear
Les paquets suivants seront ENLEVÉS :
apache2-mpm-worker
Les NOUVEAUX paquets suivants seront installés :
apache2-mpm-prefork libapache2-mod-php5 php5 php5-common
<snipped/>
- Illustration
- Méta-paquet adapté au pages Web
dynamiques
- apache2 -> apache2-mpm-prefork
- Dépendances
- libapache2-mod-php5 php5-common
(page 30)
(31/33)
Gestion des paquets avec APT
- Installation serveur MySQL & phpmyadmin
- Illustration menus debconf
- Configurations reprises à volonté
- Commande : dpkg-reconfigure <nom-de-paquet>
(page 31)
(32/33)
Gestion des paquets avec APT
- Tests applications LAMP
- Ouvrir un navigateur Web
- Créer une page PHP
- Ouvrir la console phpMyadmin
- Activité bonus !
- Basculer le serveur web en mode sécurisé
- Utiliser le protocole HTTPS
(page 32)
(33/33)
Synthèse
- Environnements graphiques
- Innovations sur les outils et les méthodes
- Enjeux métiers importants : sémantique & Web 3.0
- Environnement KDE parfaitement représentatif
- Gestion de paquets : Advanced Package Tool
- Fonctions de mises à jour uniques
- Gestion automatisée des dépendances
- Gestion autonome des configurations
- Partage de jeux de paquets entre plateformes
hétérogènes
- Diffusion automatisée des correctifs de sécurité
(page 33)