Aller au contenu

[Tuto][Débutant] Installations de logiciels


Arofarn

Messages recommandés

J'ai créé ce sujet, il y a peu sur le forum d'un club de réseau dont certina membres étaient intéressé par GNU/Linux et en particuliers Ubuntu, distribution que j'utilise également.

Il s'adresse à des débutants Linux venant de Windows et visent à expliquer sommairement les systèmes de paquets et leurs intérêts. Les parallèles avec le système de Microsoft ne sont pas là dans le but de troller, mais d'expliquer les différences de philosophies dans la gestion des logiciels.

Introduction:

Un petit post (gros finalement) pour expliquer une des GROSSEs différences de la majorité des distributions linux par rapport à un système Windows: les systèmes de"packages" (ou paquet en français).

Il en existe un certain nombre mais il y en a 2 très courants:

- Aptitude: vient de Debian et est utilisé par toutes les distributions qui en découlent comme Ubuntu (Synaptique est une interface graphique du système aptitude). Les paquets sont des fichiers .deb (comme Debian ;-) )

- RPM: Redhat Package Manager (fichier .rpm) utilisé par les ditributions Red Hat, Fedora Core, Mandrake/Mandriva, SuSE... via différentes interfaces graphiques ou non (rpm, urpmi, yum ...)

D'autres distributions peuvent avoir d'autres systèmes de packages mais fonctionnent globalement sur le même principe (Gentoo, SuSE, ....)

Un système de "packages" c'est quoi?

C'est le système qui gère les logiciels et leurs dépendances. C'est-à-dire qui va gérer proprement les installations, mises à jour et désinstallations.

Par exemple, pour installer Firefox en passant par Synaptic sur Ubuntu, permet d'installer la dernière version compatible et les dépendances (par exemple les librairies de gestions des jpg ou du gif...) dans leurs bonnes versions. Alors que l'installation à la main à partir des fichiers .tar.gz ou .tar.bz2 risque de demander pas mal d'efforts avant d'arriver à un Firefox fonctionnel (et aboutir à un système bien bordelique)

Les avantages des systèmes de paquets:

- installations/désinstallations de n'importe quel logiciel de façon propre et standardisée pour une distribution (executables, raccourcis et fichiers de configuration aux bons endroits)

- gestions avancées des dépendances, ce qui évite les mauvaises surprises

- mises à jour facilités de l'ensemble du système: là où WindowsUpdate ne s'occupe QUE de Windows/IE/Outlook Express, un système de packages va mettre à jour tous les logiciels installés grâce à lui: du noyau GNU/Linux, au lecteur multimedia en passant par la suite bureautique et les outils systèmes. Un contrôle sur les mises à jour est cepedant possible pour éviter l'installation de n'importe quelle mise à jour.

Les inconvénients:

- connection internet haut débit quasi obligatoire

- parfois des décalages temporels entre la sortie d'une nouvelle version d'un logiciel et sa disponibilité pour un système de paquet donné (varie de quelques heures à quelques semaines suivant la popularité et/ou l'importance de la mise à jour)

Exemple: Firefox 1.0.7, il a fallu attendre 1~2 jours entre sa sortie et sa disponibilité sur les dépôt officiels d'Ubuntu 5.04 (moins d'une demi-journée sur 5.10) car il a été testé et compilé pour s'ajuster eu mieux avec le reste de la distribution.

:modoreussi: Le bon réflexe:

On y arrive donc:

Sous Windows, le réflexe pour installer un logiciel est soit de l'acheter ou de télécharger sur internet un installeur à executer. Cet installeur décompresse puis copie des fichiers dans un ou plusieurs répertoires cibles et modifie souvent la base de registre, sans se soucier de la présence ou non d'autres programmes.

Sous Linux, le bon réflexe pour installer un logiciel est de passer systématiquement par le gestionnaire de paquet et de faire une recherche dans la base de logiciel.

En effet, le principal mauvais réflexe qui perd les débutant sous Linux, est de chercher à télécharger le logiciel sur le site du projet. En général, on y trouve les sources (fichier .tar.gz ou .tar.bz2) qui nécessitent plusieurs manipulations en ligne de commande ( ./configure, make, make install) et souvent donnent des erreurs de dépendance qui entraînent dans un cercle vicieux de téléchargement/compilation/problème de dépendance fastidieux et qui abouti à un système bordelique au possible.

Sous GNU/Linux, les dépendances peuvent être nombreuses en raison de la grande modularité: dépendances à une bibliothèque graphique comme GTK sous Gnome ou Qt pour KDE, la gestion des types de fichiers (codec jpeg, tiff, png, video, compression, encodage ...) ou des emprunts à d'autre programmes pour certaines fonctions.

Exemple de dépendance de firefox (non-exhaustif):

- libgtk2.0-0 : pour l'interface graphique (boutons, menus ...)

- libjpeg62 : pour le rendu des image jpg

- libpng12-0 : pour le rendu des image png

...

Exemple de dépendance sous Windows: DirectX 9.0 pour Battelfied 2, codec DivX pour MediaPlayer Classic ...

NOTA: les drivers 3D nVidia et ATI bien que propriétaires sont souvent disponibles sur des dépôts alternatifs.

:chinois: Comment ça fonctionne:

Dans le cas d'une installation:

En fait, c'est assez simple à partir du moment où on sait se que l'on veut installer (fonctions de recherche du gestionnaire de paquets, forums, google...).

1- Téléchargement d'une liste de logiciels disponibles

2- Construction d'un arbre des dépendances

3- Recherche dans la liste du logiciel demandé

3bis- Proposition de logiciels conseillés qui peuevnt apporter un plus, au logiciel demandés (dépendances optionnelles, logiciel complémentaire mais non-dépendant...)

4- Recherche des dépendances installées sur le système, si elle sont suffisantes, le gestionnaire télécharge et installe le(s) logiciel(s) demandé(s) => fin

5- Propose l'installation des dépendances nécessaires au bon fonctionnement du logiciel demandé => si validation par l'utilisateur, téléchargement et installation puis fin.

Dans le cas d'une mise à jour, le procédé est presque le même:

1- Téléchargement d'une liste de logiciel disponible

2- Construction d'un arbre des dépendances

3- Recherche des différences de version

4- Propose la mise à jour de tous les paquets ayant une version supérieure disponible et de leurs éventuelles dépendances.

4bis- Proposition de logiciels conseillés qui peuevnt apporter un plus, au logiciel demandés (dépendances optionnelles, logiciel complémentaire mais non-dépendant...)

5- Si validation par l'utilisateur => téléchargement et application des modifications

6- Le gestionnaire demande souvent quoi faire dans le cas des fichiers de configuration lors qu'ils ont été modifiés depuis l'installation.

Les serveurs mettant à disposition ces listes et les logiciels sont appelés "dépôts" ou "repositories". Ils ont pour la plupart des utilités différents: dépôts de mise à jour officiel, dépôts officieux, dépôts de mise à jour de sécurité, dépôts de "backport" (port de logiciels récents sur d'anciennes distributions)....

Pour informations, les serveurs Ubuntu que j'utlise proposent 17689 paquets. Il y a de quoi faire.

:ouioui: Les exceptions:

Il y a quand même quelques exceptions.

1- Ce sont essentiellements des logiciels propriétaires comme les jeux 3D. Par exemple, UT2004 ou Neverwinter Night qui utilisent leurs propres installeurs. Cependant, ils ne mettent pas spécialement le foutoir: un répertoire avec les données et executables + un fichier ou un répertoire caché dans le répertoire utilisateur pour la configuration personnelle et les sauvegardes. Plus généralement, les logiciels dont la licence d'utilisation ne permet pas de les diffuser par le système de dépôts.

2- Les logiciels expériementaux/en cours de développement dont l'avancement ne permet pas une stabilité suffisante pour les proposer dans les listes de logiciels. Ces logiciels sont, de toutes façons, réservés aux utilisateurs confirmés et aux développeurs capables de jongler avec les bugs.

3- certains logiciels que les mainteneurs des dépôts n'ont pas jugés utiles de mettre à disposition. Ils sont très rares et soit disposent d'alternatives de meilleure qualité, soit sont très spécifiques à un usage ou encore ne sont plus maintenus à jour par leurs développeurs et le projet est considéré comme abandonné et/ou obsolète.

Petits ajouts:

:eeek2: Mise à jour de tout le système:

Avec le système Aptitude de Debian, il est possible de mettre à jour entièrement le système avec très peu de manipulations. Par exemple, passer de Ubuntu "Hoary Hedgedog" 5.04 à Ubuntu "Breezy Badger" 5.10 en moins de 5 minutes de configuration. ensuite le plus long consiste à attendre le téléchargement des paquets et leurs installation. Un reboot est voilà un système complètement à jour sans perte des anciennes configurations, sans avoir besoin de réinstaller les logiciels rajoutés après la première installation.

:mdr: Il est possible d'installer des logiciels en respectant le système de packages sans passer par Synaptic, à partir du moment où on dispose d'un fichier .deb. En fait, il faut utilisés la commande à l'origine du système: dpkg

dpkg --install <nom fichier .deb>

Pour plus d'info: man est aussi ton ami:

man dpkg

permet d'avoir le manuel de la fonction. la commande man marche pour 95% des logiciels.

:D Convertir des fichiers d'installation pour tel ou tel système de package ou de sources compressées (.tar.gz ou .tar.bz2): la commande alien:

Extrait du man alien:

EXAMPLES
      Here are some examples of the use of alien:

      alien --to-deb package.rpm
          Convert the package.rpm into a package.deb

      alien --to-rpm package.deb
          Convert the package.deb into a package.rpm

      alien -i package.rpm
          Convert the package.rpm into a package.deb (converting to a .deb
          package is default, so you need not specify --to-deb), and install
          the generated package.

      alien --to-deb --to-rpm --to-tgz --to-slp foo.deb bar.rpm baz.tgz
          Creates 9 new packages. When it is done, foo bar and baz are available
in all 4 package formats.

Les frontières entre systèmes de packages tombent (par contre attention aux dépendances...) !

Pour plus d'information sur alien:

man alien

Il existe aussi le logiciel checkinstall qui permet de faire des paquets (RMP, .deb, tgz):

- décompresser les sources dans un répertoire nommé selon le paquet à créer et sa version

- faire les deux premières étapes d'une installations à la main: ./configure et make

- lancer en root checkinstall qui va générer le paquet et l'installer

:p Les dépôt et leurs mirroirs:

Les dépôts configurés par défaut sont les serveurs principaux de la distribution. En cas de grosse mise à jour, ils peuvent parfois être saturés. Il existe cependant plein de serveurs mirroirs dont le contenu est identique et mis à jour simultanément.

Il y a peut être des mirroirs près de chez vous!!! Par exemple pour Fedora Core/Red Hat un gros mirroir est hébergé par le CIRIL à Nancy, et pour Ubuntu et Debian, il a un mirroir à l'université de Strasbourg.

Ces miroirs sont moins saturés et possèdent des bandes passantes très larges (fibre optique, connection x Gbit ....)

Un outils permet de choisir les meilleurs dépôts: netselect

Merci à Duke98, TuXXX, Scaramouche, theocrite et noobietux pour leurs contributions (corrections, ajouts, remarques...)

EDIT 1: ajout de la seconde partie du post

EDIT 2: ajout des "Petits ajouts" et correction de quelques fautes d'ortographes, petites modifications divers, ajout de la notes sur les drivers ATI et nVidia.

EDIT 3: remarque de Duke98 et corrections de quelques fautes de plus

EDIT 4: ajout des liens vers les tutoriaux dédiés aux distributions

EDIT 5: corrections et ajouts selon les remarques (nombreuses) de TuXXX, Scaramouche, theocrite et noobietux

Lien vers le commentaire
Partager sur d’autres sites

Excellent tuto :byebye:

C'est vrai qu'un débutant (moi il n'y a pas longtemps) va tout de suite s'empresser de casser sa distrib en compilant ou en installant des paquets à la main et reste sur l'impression que Linux "c'est compliqué" ou "ça marche pas".

Sinon une idée pour plus tard qui me servirais bien au passage : comment faire des paquets .deb à partir des sources.

(ma technique à 5 centimes : compiler dans un sous répertoire de ~ et faire des symlink pour pouvoir effacer proprement mais c'est pas trés pratique à maintenir)

J'ai pas la réponse, alors si des gens dévoués veulent s'y coller :francais:

Lien vers le commentaire
Partager sur d’autres sites

très très bon tuto :transpi:

mais j'ai quand meme quelques commentaires :transpi:

1- je pense que tu n'insiste pas assez sur ce qu'est une dépendance sous linux et pourquoi il y en a autant (dire un mot du concept de modularité).

2- Comme c'est pour débutant, je virerais toutes les références à gentoo, elles complquent trop de part leur spécificités

3- il y a des decription précices de gestionnaires de paquets dans les tutos des distribs, ca serait pas mal de mettre quelques liens :-D

sur ce, il me reste plus qu'à rajouter dans les meilleurs liens :smack:

édit : j'ai édité ton titre en [Tuto][Débutant] Installations de logiciels, ca s'harmonise mieux avec la partie bases dans les meilleurs liens. MP moi si ca ne te va pas ;)

et je rajoute aussi la flèche habituelle pour signaler les tutos ;)

Lien vers le commentaire
Partager sur d’autres sites

Magnifique... Je me rappelle la galère au début, quand j'ai monumentalement cassé ma Mandrake a grand coups de double clics sur les rpm, avec des tentatives de compils de sources etc. :ouioui:

Vraiment, ce tuto est très bon, et il aidera beaucoup les débutants à comprendre que les .rpm .deb et autres sont pas des .exe sur lesquels on peut facilement cliquer :transpi:

Bravo en tout cas ;)

Lien vers le commentaire
Partager sur d’autres sites

super tuto ;)

effectivement ... ça manquait sur les principes de base à expliquer aux débutants :smack:

pour les exemples, je suis partagée Fred .. parce que dans un sens ça permet de concrétiser les concepts.... mais tant qu'à en donner il faudrait aussi le faire pour l'autre distribution grand public qu'est mandriva non ? dans ce cas, cf le topicmandriva qui l'explique déjà ;) .. il est vrai qu'il faudrait au minimum linker le post qui explique le fontionnement de urpmi :birthday:

il restait encore quelques coquilles :smack:

Il s'adresse à des débutants Linux venant de Windows et visent à expliquer sommairement les systèmes de paquets et leurs intérêt.

leur intérêt

D'autres distributions peuvent avoir d'autres système de packages

systèmes

xemple: Firefox 1.0.7, il a fallu attendre 1~2 jours entre sa sortie et sa disponibilité sur les dépôt officiels d'Ubuntu 5.04 (moisn d'une demi-journée sur 5.10) ....

moins

Sous Windows, le reflex pour installer un logiciel est soit de l'acheter....

réflexe

....et souvent donne des erreurs de dépendance qui entraine

entraînent

En fait, c'est assez simple à partir du moment où on sais se que l'on veut installer

sait

1- Téléchargement d'une liste de logiciel disponible

disponibles, X2 :D

5- Si validation par l'utilisateur => téléchargement et application des modification

modifications

Ils sont pour la plupart des utilités différents:

ont

Pour informations, les serveur Ubuntu

serveurs

Cependant, il ne mettent pas spécialement le foutoir:

ils

Ces logiciels sont de toutes façon réservés aux utilisateurs confirmés et aux développeurs capable

façons, capables

3- certains logiciels que les mainteneurs des dépôts n'ont pas jugés utils

utiles

Avec le système Aptitude de Debian, il est possible de mettre à jour entièrement système avec très peu de manipulations.

+le pour "le système"

Un reboot est voilà un système complètement à jour sans pertes des anciens configuration, sans avoir besoin de réinstaller les logiciels rajouter après la prmeière installation.

configurations, première

Je mettrais un lien vers un tutorial à la sortie définitive de la 5.10. c'st tout à fait trivial.

c'est

Convertir des fichiers d'installation pour tel ou tel système de package ou de sources comprssées

compressées

En cas de grosse mise à jour, ils peuvent parfois être saturés. Il existe cependant plein de serveur mirroirs

serveurs

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi ne pas mettre Suse dans les distributions RMP ? :smack:

Sinon s/connection/connexion/ c'est un anglissisme (même si on a l'impression du contraire)

s/dans un cercle vicieuse/dans un cercle vicieux/

s/les logiciels dont la licences/les logiciels dont la licence/

s/par le systéme de dépôts./par le système de dépôt./

s/Un reboot est voilà un système complètement à jour sans pertes des anciens configuration, sans avoir besoin de réinstaller les logiciels rajouter après la prmeière installation/Un reboot et voilà un système complètement à jour sans perte des anciennes configurations, sans avoir besoin de réinstaller les logiciels rajoutés après la prmeière installation/

s/il faut utilisés/il faut utiliser/

s/plein de serveur/plein de serveurs/

Et pour s/reflex/réflexe/ il y a 4 occurences.

Il y a aussi installer / un installeur (3 occurences)

- libpng12-0 : pour le rendu des image jpg
:smack:
En fait, c'est assez simple à partir du moment où on sais se que l'on veut installer (Google est ton ami ^_^).
Dans ce cas, autant utiliser les outils de la distrib pour trouver les logiciels, google, c'est une perte de temps et d'efficacité (sauf dans le cas où on ne passe pas par le système de packages)

Dans le cas de l'installation, le gestionnaire de packages peut aussi demander une confirmation si il trouve des dépendances.

Dans les deux cas (installation et mise à jour), il y a 7/Proposition de logiciels conseillés (mais pas obligatoires) parce qu'ils vont bien avec ceux que l'on vient d'installer.

Enfin pour finir, il existe un outil pour choisir le "meilleur" mirroir les distribs apt : netselect

Sinon joli tuto :birthday:

Lien vers le commentaire
Partager sur d’autres sites

Bon alors pour faire des paquets (rpm, deb, tgz) j'ai trouvé la solution ultra facile : checkinstall.

Il suffit de faire un ./configure et un make dans un répertoire qui porte le nom du logiciel ainsi que le numero de version, ensuite checkinstall en root va générer tout seul le paquet et l'installer.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...