Historique: Installer un logiciel
Aperçu de cette version: 59
Le but de cette article est de prsenter les diffrents aspects lis la gestion des paquets logiciels l'usage des dbutants peu familiariss avec le monde GNU/Linux.
Tout d'abord il convient de revenir sur ce qu'est un logiciel. Sous les OS propritaires, on est habitu utiliser des binaires dj compils et vendus sous cette forme par des socits commerciales. On a jamais accs aux fichiers sources qui, voil, dvoilent les secrets de programmation. Les fichiers sources sont des fichiers textes crits par les programmeurs, que l'on compile pour gnrer les binaires excutables. Sous Linux et avec les Logiciels Libres (cd sous licence GPL et assimiles) toute la dynamique repose sur l'ide de laisser les sources non seulement accessibles, mais modifiables et pouvant tre copies volont. Ce sont ensuite des organisations commerciales ou bnvoles qui se chargent de produire des distributions Linux regroupant tous ces logiciels en un tout cohrent et utilisable par les utilisateurs.
Une des consquences immdiates fut qu'il fallait pouvoir grer l'installation et la dsinstallation des logiciels contenus sur ces distributions, il fallait aussi prvoir les mises--jour et d'autres fonctions comme le contrle des dpendances ou la recompilation automatise.
Malheureusement chaque distribution a privilgi un systme de gestion de paquets particulier plutt que de prfrer un systme standard. Toutefois, on retrouve prsent quelques grandes familles de gestions de paquets : les distributions bases sur les .rpm et celles bases sur les .deb. Ces deux derniers grent les dpendances, cd un logiciel X ne peut fonctionner sans un autre logiciel Y. Par exemple un logiciel comme GIMP (le fameux logiciel graphique) ne pourra fonctionner sans le serveur graphique qui permet l'affichage. Dans ce cas GIMP dpend du serveur X, et par ailleurs aussi d'un grand nombre de bibliothques graphiques. Sous Gentoo, distribution privilgiant la compilation des paquets sources par l'utilisateur, les ebuild fonctionnent de la mme manire, on ne peut compiler un logiciel sans avoir auparavant compiler les dpendances.
On les nomme ainsi car ils utilisent le systme Debian APT. Le systme Debian APT permet donc de tout grer et d'viter les conflits. Il y a plusieurs choses de base connatre ensuite on est vite gris par la rapidit et la commodit d'APT.
Ce fichier est primordial car il dfinit les dpts, dans lesquelles les diffrents logiciels que nous allons voir aprs vont puiser. Cela peut-tre un cdrom, un site web. Si on le modifie il est impratif de taper "apt-get update" ou clicker "reload" dans Synaptic, afin de ractualiser la liste des paquets.
Cette commande est une commande bas niveau, avec de nombreuses options. Elle est parfois utile pour forcer la dsinstallation puis la rinstallation dans la bonne version de paquets conflictuels. La charge tant l'utilisateur de savoir ce qu'il fait avant tout chose.
Apt-get est aussi une commande, mais cette fois elle n'est capable d'installer des logiciels que depuis les fameux dpts.
Va installer le logiciel Sweep uniquement si celui-ci fait partie de ceux contenus par les sources. A noter que si Sweep dpend d'autres paquets, la commande vous proposera des les installer automatiquement. Gnial !
Enfin le nec-plus-ultra est bien sur Adept ou Synaptic, une vraie GUI ! Grer les logiciels de son systme devient un jeu d'enfant. On peut faire des recherches et lire les descriptions. C'est gnralement ce moment l qu'on ralise la force des logiciels libres avec un systme unique pour les installer depuis internet.
Ensuite certains commandes permettent de tlcharger les sources et de les construire automatiquement.
Elle fait partie du systme complet et permet d'installer les programmes et leurs dpendances via le Net ou les cdroms.
Le fichier de configuration contenant les dpts est /etc/urpmi/urpmi.cfg mais il est possible d'utiliser les commandes urpmi.addmedia et urpmi.removemedia comme nous allons le voir.
Il faut donc d'abord enregistrer les sources (voir site http://easyurpmi.zarb.org/?language=fr) puis se connecter en tant que super utilisateur (su) pour pouvoir tlcharger et installer des programmes.
Ce qui donne en mode console :
Si le programme est rpertori dans la base de donne, il apparat avec ventuellement les dpendances associes.
la commande :
permet de garder un copie disponible dans le rpertoire /var/cache/urpmi/rpms
Quelques urpmi disponibles importants pour la MAO :
(indispensable ❗
(installe Qjack avec ❗
.....
noter qu'il suffit parfois de taper une partie du nom pour qu'il propose une ou plusieurs variantes (exemple : kernel-multimedia)
Cette commande / fonction urpmi est donc absolument gniale puisqu'elle permet d'installer trs facilement de nombreux logiciels MAO (ou autres bien sur 😊
Cette commande est galement utilise par des logiciels avec interface graphique (plus connus des utilisateurs) que nous allons voir prsent.
C'est un utilitaire avec interface graphique d'installation de paquets du mme type qu'Adept ou Synaptic, seule l'interface change.
Sous Gentoo l'approche est un peu diffrente en cela que la distribution sous forme de sources est privilgie. Les paquets binaires n'existent que pour le systme de base. Une fois celui-ci oprationnel, on utilise la commande emerge pour automatiquement tlcharger les sources et compiler les logiciels que l'on souhaite installer. Si d'autres logiciels (des dpendances) sont ncessaires, ils seront aussi automatiquement "emergs".
Cf pour le moment les indications de l'article sur la Gentoo
Cette commande va enlever le paquetA et installer le paquetB (noter bien le +) en une seule opration et vous vitera les messages "Untel requiert logiciel version X mais Y va tre install". Cette commande vous sauvera la vie !
Une alternative consiste utiliser les commandes bas-niveau dpkg ou rpm pour forcer la dsinstallation de certains paquets (attention toutefois).
➡️section complter
[+]
Intro
Comme le montre frquemment certains messages des forums, des problmes de dpendances sont souvent rencontrs. Pourtant ils peuvent tre vits ds lors que l'on comprend bien le fonctionnement du systme de gestion de paquets utilis sur sa distribution.Lorsque vous installez un logiciel sous Linux par votre gestionnaire de paquet, ce dernier va auto-magiquement installer toutes les briques dont votre logiciel dpend. Ceci peut tre :
- d'autres logiciels ncessits par le votre,
- des bibliothques qui seront partages avec d'autres programmes (bah oui, c'est pas la peine d'installer 15 fois la mme chose ...),
- de la documentation pour votre logiciel,
- des donnes (typiquement, cela peut tre des banques de son par exemple),
- des greffons (plugins inne englishe),
- ...
Fichiers sources et fichiers binaires
Tout d'abord il convient de revenir sur ce qu'est un logiciel. Sous les OS propritaires, on est habitu utiliser des binaires dj compils et vendus sous cette forme par des socits commerciales. On a jamais accs aux fichiers sources qui, voil, dvoilent les secrets de programmation. Les fichiers sources sont des fichiers textes crits par les programmeurs, que l'on compile pour gnrer les binaires excutables. Sous Linux et avec les Logiciels Libres (cd sous licence GPL et assimiles) toute la dynamique repose sur l'ide de laisser les sources non seulement accessibles, mais modifiables et pouvant tre copies volont. Ce sont ensuite des organisations commerciales ou bnvoles qui se chargent de produire des distributions Linux regroupant tous ces logiciels en un tout cohrent et utilisable par les utilisateurs.
Une des consquences immdiates fut qu'il fallait pouvoir grer l'installation et la dsinstallation des logiciels contenus sur ces distributions, il fallait aussi prvoir les mises--jour et d'autres fonctions comme le contrle des dpendances ou la recompilation automatise.
Malheureusement chaque distribution a privilgi un systme de gestion de paquets particulier plutt que de prfrer un systme standard. Toutefois, on retrouve prsent quelques grandes familles de gestions de paquets : les distributions bases sur les .rpm et celles bases sur les .deb. Ces deux derniers grent les dpendances, cd un logiciel X ne peut fonctionner sans un autre logiciel Y. Par exemple un logiciel comme GIMP (le fameux logiciel graphique) ne pourra fonctionner sans le serveur graphique qui permet l'affichage. Dans ce cas GIMP dpend du serveur X, et par ailleurs aussi d'un grand nombre de bibliothques graphiques. Sous Gentoo, distribution privilgiant la compilation des paquets sources par l'utilisateur, les ebuild fonctionnent de la mme manire, on ne peut compiler un logiciel sans avoir auparavant compiler les dpendances.
Qu'est ce qu'un paquet logiciel
Paquets binaires
Les paquets binaires sont en fait des archives contenant les binaires, les documentations et tout ce qui peut composer un logiciel. Ces archives contiennent aussi la liste des autres archives dont elles dpendent. Ainsi tout les logiciels audio dpendent au moins des paquets contenant ALSA ou JACK, respectivement les drivers et le serveur son.Paquets sources
On trouve galement des paquets sources, cad contenant uniquement des fichiers sources. A l'aide de certaines commandes il sera alors possible de gnrer automatiquement un paquet binaire.C'est quoi les paquets "dev" ?
Ce sont des paquets complmentaires de dveloppement. Il contiennent des fichiers textes (fichiers headers) et parfois des bibliothques utiliss pour compiler d'autres paquets. On a besoin d'installer les paquets "dev" uniquement si on souhaite compiler soi-mme des binaires comme nous le verrons plus bas.Quelque soit la distribution utilise, les logiciels sont stocks sur des dpts. Le plus souvent il s'agit des cdroms que l'on trouve dans les magazines ou que l'on tlcharge sur le net. Mais il est aussi possible une fois la connexion internet installe d'ajouter des dpts FTP supplmentaires qui permettront les mises jour. Il existe aussi des dpts offrant des logiciels non fournis par la distribution, permettant ainsi d'installer encore plus de logiciels. Comme nous le verrons, quel que soit le systme de gestion utilis, il existe un fichier de configuration pour spcifier les dpts logiciels dans lesquels on veut pouvoir puiser. Il est impratif de ne mettre que des dpts compatibles avec sa distribution. Les problmes de dpendances viennent souvent du mlange de dpts de contributeurs non affilis. Il est prfrable de se limiter ceux qui sont officiels dans un premier temps et d'en ajouter d'autres que si l'on est sr qu'ils sont compatibles avec ceux du dpt officiel et qu'ils n'entreront pas en conflit entre eux.
On les nomme ainsi car ils utilisent le systme Debian APT. Le systme Debian APT permet donc de tout grer et d'viter les conflits. Il y a plusieurs choses de base connatre ensuite on est vite gris par la rapidit et la commodit d'APT.
Le fichier /etc/apt/sources.list
Ce fichier est primordial car il dfinit les dpts, dans lesquelles les diffrents logiciels que nous allons voir aprs vont puiser. Cela peut-tre un cdrom, un site web. Si on le modifie il est impratif de taper "apt-get update" ou clicker "reload" dans Synaptic, afin de ractualiser la liste des paquets.
Dpkg
Avant de voir les GUI, parlons de cette commande. Car elle est la seule qui permet d'installer un .deb depuis le rpertoire courant par exemple. Cela arrive dans de petites occasions.# dpkg -i fichier.deb
Cette commande est une commande bas niveau, avec de nombreuses options. Elle est parfois utile pour forcer la dsinstallation puis la rinstallation dans la bonne version de paquets conflictuels. La charge tant l'utilisateur de savoir ce qu'il fait avant tout chose.
Apt-get
Apt-get est aussi une commande, mais cette fois elle n'est capable d'installer des logiciels que depuis les fameux dpts.
#apt-get install sweep
Va installer le logiciel Sweep uniquement si celui-ci fait partie de ceux contenus par les sources. A noter que si Sweep dpend d'autres paquets, la commande vous proposera des les installer automatiquement. Gnial !
Aptitude
Aptitude est une interface interactive en mode texte pour la gestion des paquets. Cette interface permet de voir la liste des logiciels installs et ceux installer, etc... Certains prtendent qu'Aptitude est peu ergonomique, moins de lire le manuel bien sr 😉 Ceci dit, Aptitude est la mthode de gestion des paquets recommandes officiellement par Debian. Il y a maintenant une interface graphique nomme aptitude-gtk (voir : ce site) : pour utiliser Aptitude en mode graphique, mais elle n'est pas encore prsente (crit le 17 janvier 2011) dans toutes les distributions bases sur Debian.Adept ou Synaptic
Enfin le nec-plus-ultra est bien sur Adept ou Synaptic, une vraie GUI ! Grer les logiciels de son systme devient un jeu d'enfant. On peut faire des recherches et lire les descriptions. C'est gnralement ce moment l qu'on ralise la force des logiciels libres avec un systme unique pour les installer depuis internet.
Recompiler un .deb
Pour cela, il faut ajouter dans le fichier /etc/apt/sources.list des dpts pour les paquets sources. ex:Copy to clipboard
deb-src http://ftp.fr.debian.org/debian/ testing main
Ensuite certains commandes permettent de tlcharger les sources et de les construire automatiquement.
- apt-build
- dpkg-buildpackage
Les rpms sur Redhat/Fedora, SUSE et Mandriva
rpm
rpm est la commande bas niveau du systme Redhat (et compatibles). Elle s'apparente dpkg vu plus haut. Mme chose cette commande peut ventuellement utilise pour forcer l'installation et la dsinstallation de certains paquets.urpmi
urpm est la commande grant le systme de dpendances comme apt-get, mais pour Redhat.Elle fait partie du systme complet et permet d'installer les programmes et leurs dpendances via le Net ou les cdroms.
Le fichier de configuration contenant les dpts est /etc/urpmi/urpmi.cfg mais il est possible d'utiliser les commandes urpmi.addmedia et urpmi.removemedia comme nous allons le voir.
Il faut donc d'abord enregistrer les sources (voir site http://easyurpmi.zarb.org/?language=fr) puis se connecter en tant que super utilisateur (su) pour pouvoir tlcharger et installer des programmes.
Ce qui donne en mode console :
urpmi nomduprogramme
Si le programme est rpertori dans la base de donne, il apparat avec ventuellement les dpendances associes.
la commande :
urpmi --noclean nomduprogramme
permet de garder un copie disponible dans le rpertoire /var/cache/urpmi/rpms
Quelques urpmi disponibles importants pour la MAO :
urpmi kernel-multimedia-2.6.12-12mm.1mdk
urpmi ardour
urpmi xmms
urpmi timidity-init
urpmi qsynth
urpmi zynaddsubfx
urpmi rezound
noter qu'il suffit parfois de taper une partie du nom pour qu'il propose une ou plusieurs variantes (exemple : kernel-multimedia)
Cette commande / fonction urpmi est donc absolument gniale puisqu'elle permet d'installer trs facilement de nombreux logiciels MAO (ou autres bien sur 😊
Cette commande est galement utilise par des logiciels avec interface graphique (plus connus des utilisateurs) que nous allons voir prsent.
kpackage
C'est un utilitaire avec interface graphique d'installation de paquets du mme type qu'Adept ou Synaptic, seule l'interface change.
rpmdrake
yum
Les paquets SRPM correspondent aux paquets ne contenant que les fichiers sources des programmes. Ils sont destins tre recompils par l'utilisateur pour produire un fichier RPM qui peut ensuite tre install normalement. Les fichiers SRPM utilisent le rpertoire /usr/src/RPMS pour entreposer les sources et c'est l aussi que l'on y trouve les RPMS une fois compils (rprtoire "build").
Emerge et Gentoo
Sous Gentoo l'approche est un peu diffrente en cela que la distribution sous forme de sources est privilgie. Les paquets binaires n'existent que pour le systme de base. Une fois celui-ci oprationnel, on utilise la commande emerge pour automatiquement tlcharger les sources et compiler les logiciels que l'on souhaite installer. Si d'autres logiciels (des dpendances) sont ncessaires, ils seront aussi automatiquement "emergs".
Cf pour le moment les indications de l'article sur la Gentoo
- la mise--jour d'un paquet fondamental (libc, xorg) entrane des installations/dsinstallations massives.
- Dpendances circulaires: il faut utiliser urpmi ou apt-get pour installer et enlever en une mme ligne de commande les paquets conflictuels
apt-get remove paquetA +paquetB
Cette commande va enlever le paquetA et installer le paquetB (noter bien le +) en une seule opration et vous vitera les messages "Untel requiert logiciel version X mais Y va tre install". Cette commande vous sauvera la vie !
Une alternative consiste utiliser les commandes bas-niveau dpkg ou rpm pour forcer la dsinstallation de certains paquets (attention toutefois).
➡️section complter
Dans certains cas on souhaite installer un logiciel qui ne figure pas dans les dpts. Par exemple un logiciel commercial. Ceux-ci sont gnralement disponibles sous forme de binaires compacts en archives zip ou tgz. Il n'est pas rare qu'un installateur maison les accompagnent. Il n'y aura alors pas moyen de voir ce logiciel dans la liste des paquets utiliss car celui-ci contourne son systme de gestion. Il existe cependant parfois un paquet RPM car Redhat est la distribution commerciale la plus connue. Sous Debian, il est possible alors d'utiliser la commande alien pour convertir le RPM en DEB (ou mme en paquet Slackware). Cela marche dans les autres sens.
Compilation
Il existe une alternative l'installation des logiciels dans le cadre des systme de gestion de paquets. Il arrive en effet qu'un logiciel soit trop rcent pour tre intgr dans une distribution. Cela est l'objet de l'article Tuto Compiler un logiciel.[+]