Chargement...
 
Skip to main content

Historique: Installer un logiciel

Aperçu de cette version: 22



Intro

Le but de cette article est de présenter les différents aspects liés à la gestion des paquets logiciels à l'usage des débutants peu familiarisés avec le monde Unix.

Comme l'ont montré certains messages des forums, des problèmes des dépendances sont souvent rencontrés. Pourtant ils peuvent être évités dès lors que l'on comprend bien le fonctionnement du système de gestion de paquets utilisé sur sa distribution.

Principes généraux

La gestion des logiciels sous Linux peut s'effectuer par l'assemblage de paquets pouvant contenir le programme en lui-même, les librairies nécessaires à son fonctionnement + éventuellement d'autres greffons (PlugIns), documentations...
➡️qu'est-ce que c'est que ce charabia ?

Fichiers sources et fichiers binaires


Tout d'abord il convient de revenir sur ce qu'est un logiciel. Sous les OS propriétaires, on est habitué à utiliser des binaires déjà compilés et vendus sous cette forme par des sociétés commerciales. On a jamais accès aux fichiers sources qui, voilà, dévoilent les secrets de programmation. Les fichiers sources sont des fichiers textes écrits par les programmeurs, que l'on compile pour générer les binaires exécutables. Sous Linux et avec les Logiciels Libres (cad sous license GPL et assimilées) toute la dynamique repose sur l'idée de laisser les sources non seulement accessibles, mais modifiables et pouvant être copiées à volonté. Ce sont ensuite des organisations commerciales ou bénévoles qui se chargent de produire des distributions Linux regroupant tous ces logiciels en un tout cohérent et utilisable par les utilisateurs.

Une des conséquences immédiates fut qu'il fallait pouvoir gérer l'installation et la désinstallation des logiciels contenus sur ces distributions, il fallait aussi prévoir les mises-à-jour et d'autres fonctions comme le contrôle des dépendances ou la recompilation automatisée.

Les systèmes de gestion de paquets, les dépendances


Malheureusement chaque distribution a privilégié un système de gestion de paquets particulier plutôt que de préférer un système standard. Toutefois, on retrouve à présent quelques grandes familles de gestions de paquets : les distributions basées sur les .rpm et celles basées sur les .deb. Ces deux derniers gèrent les dépendances, cad 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 dépend du serveur X, et par ailleurs aussi d'un grand nombre de bibliothèques graphiques. Sous Gentoo, distribution privilégiant la compilation des paquets sources par l'utilisateur, les ebuild fonctionnent de la même manière, on ne peut compiler un logciel sans avoir auparavant compiler les dépendances.

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 dépendent. Ainsi tout les logiciels audio dépendent 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 générer automatiquement un paquet binaire.

Les dépôts logiciel


Quelques soit la distribution utilisée, les logiciels sont stockés sur des dépôts. Le plus souvent il s'agit des cédéroms que l'on trouve dans les magazines ou que l'on télécharge sur le net. Mais il est aussi possible une fois la connection internet installée d'ajouter des dépôts FTP supplémentaires qui permettrons les mises à jour. Il existe aussi des dépôts offrant des logiciels non fournis par la distribution, permettant ainsi d'installer encore plus de logiciels. Comme nous le verrons, quel que soit le système de gestion utilisé, il existe un fichier de configuration pour spécifier les dépôts logiciels dans lesquels on veut pouvoir puiser. Il est impératif de ne mettre que des dépôts compatibles avec sa distribution. Les problèmes de dépendances viennent souvent du mélange de dépôts de contributeurs non affiliés. Il est préférable de se limiter à ceux qui sont officiels dans un premier temps et d'en ajouter d'autres que si l'on est sûr qu'ils sont compatibles avec ceux du dépôt officiel et qu'ils n'entreront pas en conflit entre eux.

Installer un logiciel "étranger" à une distribution

Dans certains cas on souhaite installer un logiciel qui ne figure pas dans les dépots. Par exemple un logiciel commercial. Ceux-ci sont générallement disponibles sous formes de binaires compactés en archives zip ou tgz. Il n'est pas rare qu'un installeur maison les accompagnent. Il y aura alors pas moyen de voir ce logiciel dans la liste des paquets utilisés car celui-ci le contourne son système 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 même en paquet slackware). Cela marche dans les autres sens.

Les .deb sur Debian et distributions affiliées


On les nomme ainsi car ils utilisent le système Debian APT. Le système Debian APT permet donc de tout gérer et d'éviter les conflits. Il y a plusieurs choses de base à connaître 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 définit les dépôts, dans lesquelles les différents logiciels que nous allons voir après vont puiser. Cela peut-être un CD-rom, un site web.

Dpkg



Avant de voir les GUI, parlons de cette commande. Car elle est la seule qui permet d'installer un .deb depuis le répertoire courant par exemple. Cela arrive dans de petites occasions.
# dpkg -i fichier.deb

Cette commande est une commande bas niveau, c'est à dire qu'elle peut fonctionner en marge du système de dépendance. Cela est très utile pour forcer la désinstallation puis la réinstallation dans le 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 dépots.
#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 dépend d'autres paquets, la commande vous proposera des les installer automatiquement. Génial !

Aptitude


Aptitude est une interface interactive mais en mode texte.
Cette interface permet de voir la liste des logiciels installés et ceux à installer, etc.. Malheureusement Aptitude est peu ergonomique, à moins de lire le manuel bien sur 😉
Aptitude servait surtout auparavant et peut faire office de roue de secours quand le serveur X est en panne =)

Adept ou Synaptic


Enfin le nec-plus-ultra est bien sur Adept ou Synaptic, une vraie GUI ! Gérer les logiciels de son système devient un jeu d'enfant. On peut faire des recherches et lire les descriptions. C'est généralement à ce moment qu'on prend une claque !

Recompiler un .deb



Les rpms sur Redhat/Fedora et Mandriva

rpm

rpm est la commande bas niveau du système Redhat (et compatibles). Elle s'apparente à dpkg vu plus haut. Même chose cette commande peut éventuellement utilisée pour forcer l'installation et la désinstallation de certains paquets.

urpmi

urpm est la commande gérant le système de dépendances comme apt-get, mais pour Redhat.
Elle fait partie du système complet et permet d'installer les programmes et leurs dépendances via le Net ou les cédéroms.

Il faut d'abord enregistrer les sources (voir site http://easyurpmi.zarb.org/?language=fr) puis se connecter en tant que super utilisateur (su) pour pouvoir télécharger et installer des programmes.

Ce qui donne en mode console :
urpmi nomduprogramme


Si le programme est répertorié dans la base de donnée, il apparaît avec éventuellement les dépendances associées.

la commande :
urpmi --noclean nomduprogramme

permet de garder un copie disponible dans le répertoire /var/cache/urpmi/rpms

Quelques urpmi disponibles importants pour la Mao :
urpmi kernel-multimedia-2.6.12-12mm.1mdk
(indispensable ❗
urpmi ardour
(installe Qjack avec ❗
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 géniale puisqu'elle permet d'installer très facilement de nombreux logiciels Mao (ou autres bien sur 😊

Cette commande est également utilisée par des logiciels avec interface graphique (plus connus des utilisateurs) que nous allons voir à présent.

kpackage

rpmdrake

yum


Recompiler à partir d'un SRPM

Les paquets SRPM correspondent aux paquets ne contenant que les fichers sources des programmes. Ils sont destinés à être recompilés par l'utilisateur pour produire un fichier RPM qui peut ensuite être installé normallement. Les fichiers SRPM utilisent le répertoire /usr/src/RPMS pour entreposer les sources et c'est là aussi que l'on y trouve les RPMS une fois compilés.

Emerge et Gentoo


Sous Gentoo l'approche est un peu différente en cela que la disrtibution sous forme de sources est priviégiée. Les paquets binaires n'existent que pour le système de base. Une fois celui-ci opérationnel, on utilise la command emerge pour automatiquement télécharger les sources et compiler les logiciels que l'on souhaite installer. Si d'autres logiciels (des dépendances) sont nécessaires, ils seront aussi automatiquement "emergés".
Cf pour le moment les indications de l'article sur la Gentoo

Problèmes courants

  • la mise-à-jour d'un paquet fondamental (libc, xorg) entraîne des installations/désinstallations massives.
  • Dépendances circulaires: il faut utiliser urpmi ou apt-get pour installer et enlever en une même ligne de commande les paquets conflictuels
apt-get remove paquetA +paquetB

Cette commande va enlever le paquetA et installer le paquetB (noter bien le +). Cette commande vous sauvera la vie !
Une alternative consiste à utiliser les commandes bas-niveau dpkg ou rpm
➡️section à compléter


Compilation

Il existe une alternative à l'installation des logiciels dans le cadre des système de gestion de paquets. Il arrive en effet qu'un logiciel soit trop récent pour être intégré dans une distribution.Cela est l'objet de l'article Compiler des logiciels.

Statut

Cet article a été écrit assez rapidement pour combler un manque évidant et malgré la présentation de faite il reste encore à montrer comment résoudre les problèmes concrets de dépendances lors des grosses mises-à-jours. Le plan est pas très net, en particulier au niveau des paragraphes.
Commentaires bienvenus !

Historique

Avancé
Information Version
Sun 10 Sep 2006 16:05 Norrin_Radd +section sur les problèmes +corrections diverses 22
Afficher
Mon 28 Aug 2006 01:06 bluedid29 21
Afficher
Sat 12 Aug 2006 23:53 bluedid29 20
Afficher
Fri 28 Apr 2006 05:11 bluedid29 19
Afficher
Fri 28 Apr 2006 05:04 bluedid29 18
Afficher
Wed 01 Mar 2006 00:24 Norrin_Radd 17
Afficher
Wed 01 Mar 2006 00:22 Norrin_Radd 16
Afficher
Sun 26 Feb 2006 16:19 Norrin_Radd 15
Afficher
Sun 26 Feb 2006 16:18 Norrin_Radd 14
Afficher
Sun 26 Feb 2006 02:20 gilles 13
Afficher
Sat 25 Feb 2006 17:00 Norrin_Radd 12
Afficher
Wed 08 Feb 2006 01:37 Norrin_Radd 11
Afficher
Sat 31 Dec 2005 12:52 gilles 10
Afficher
Fri 30 Dec 2005 22:56 Norrin_Radd 9
Afficher
Fri 30 Dec 2005 22:53 Norrin_Radd 8
Afficher
Fri 30 Dec 2005 21:09 Norrin_Radd 7
Afficher
Fri 30 Dec 2005 21:07 Norrin_Radd 6
Afficher
Fri 30 Dec 2005 21:06 Norrin_Radd 5
Afficher
Fri 30 Dec 2005 21:05 Norrin_Radd 4
Afficher
Fri 30 Dec 2005 21:01 Norrin_Radd 3
Afficher
Fri 30 Dec 2005 21:00 Norrin_Radd 2
Afficher
Fri 30 Dec 2005 01:37 Norrin_Radd 1
Afficher
  • 1
  • 2 (en cours)
  • »