#This file was created by <jdd> Tue Sep 28 18:18:58 1999
#LyX 1.0 (C) 1995-1999 Matthias Ettrich and the LyX Team
\lyxformat 2.15
\textclass linuxdoc
\language francais
\inputencoding default
\fontscheme default
\graphics default
\paperfontsize 10
\spacing single 
\papersize a4paper
\paperpackage a4
\use_geometry 0
\use_amsmath 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default

\layout Title
\added_space_top vfill \added_space_bottom vfill 
Admin3
\newline 
Installer un programme ou une application
\layout Author

Jean-Daniel Dodin
\newline 
jdanield@linux-france.org
\newline 
http://perso.club-internet.fr/jdanield
\layout Date

V1.0 28 septembre 1999
\newline 
do005708-admin3
\layout Abstract

J'appelle ce texte Admin3 car j'ai écrit un admin2 que j'ai malheureusement
 perdu, au cas, bien improbable, ou j'en retrouverai une copie.
\layout Standard


\begin_inset LatexCommand \tableofcontents{}

\end_inset 


\layout Section

Données de départ
\layout Subsection

root
\layout Standard

Vous devez être root pour installer un programme.
 Mais il est vivement recommandé d'être utilisateur ordinaire pour le faire
 marcher.
 Il suffit d'ouvrir deux consoles pour être alternativement l'un et l'autre
 pendant les essais.
\layout Subsection

Qu'est-ce qu'un programme
\protected_separator 
?
\layout Standard

Au sens ou je l'entends ici, un programme est un exécutable destiné à remplir
 une fonction.
 Mais c'est aussi un 
\begin_inset Quotes eld
\end_inset 

petit
\begin_inset Quotes erd
\end_inset 

 exécutable, c'est à dire un fichier qui n'a besoin pour fonctionner de
 rien d'autre que de lui-même et qui peut donc être copié seul dans /bin,
 par exemple.
\layout Standard

Plus concrètement, un 
\begin_inset Quotes eld
\end_inset 

programme
\begin_inset Quotes erd
\end_inset 

 au sens de ce document peut comprendre en plus du fichier exécutable une
 documentation (fichier man ou autre) et un fichier de configuration personnel
 à chaque utilisateur.
 Le critère décisif est qu'un programme n'a pas besoin d'être installé dans
 son propre répertoire pour fonctionner.
\layout Standard

BIEN SUR un programme peut nécessiter des bibliothèques partagées, du genre
 de celles qui sont installées sur tous les système, et un compilateur s'il
 est fourni en source.
\layout Standard

Presque tous les 
\begin_inset Quotes eld
\end_inset 

utilitaires
\begin_inset Quotes erd
\end_inset 

 fournis d'origine avec linux et situés dans /bin, /sbin ou /usr/bin sont
 des programmes.
\layout Subsection

Qu'est-ce qu'une application
\protected_separator 
?
\layout Standard

Une application, au sens du présent document, est un programme qui a besoin
 de nombreux autres fichiers spécifiques pour fonctionner.
 Il doit donc être nécessairement placé dans son propre répertoire.
 Netscape ou Staroffice sont des exemples bien connus d'applications.
\layout Subsection

Qu'est-ce qu'une bibliothèque
\protected_separator 
?
\layout Standard

(attention, 
\begin_inset Quotes eld
\end_inset 

library
\begin_inset Quotes erd
\end_inset 

 en anglais)
\layout Standard

Une bibliothèque est un fichier qui contient du code exécutable utilisable
 par plusieurs programmes.
 Comme elle est utilisable par plusieurs, elle n'est installée qu'une seule
 fois.
 Normalement (mais je ne sais pas comment vérifier), elle n'est même chargée
 en mémoire qu'une seule fois, même si plusieurs applications s'en servent
 en même temps.
\layout Standard

Idéalement, chaque fonction nécessaire pour programmer ne devrait se trouver
 qu'une fois sur l'ensemble des bibliothèques, ce qui reviendrait à dire
 que tous les programmes utiliseraient les mêmes bibliothèques.
\layout Standard

Ce n'est pas possible, même si c'est presque réalisé dans certains cas.
 Par exemple, GTK (Gimp Tool Kit) est une bibliothèque très employée.
 Si vous jouez sous dos, vous connaissez dos4gw.exe qui est une bibliothèque
 presque universellement employée en dehors de windows.
 Elle s'est imposée par ses qualités et a presque fait disparaître la concurrenc
e.
\layout Standard

Sous Windows, les bibliothèques s'appellent des DLL ou des VXD (entre autre).
\layout Standard

Le risque, c'est la sclérose.
 S'il n'y a plus de concurrence, il n'y a plus d'améliorations.
\layout Standard

On n'en est pas encore là sous linux.
 Bien au contraire, il y a fréquemment des mises à jour et on trouve, par
 exemple, dans /usr/lib
\protected_separator 
:
\layout Standard

libgtk-1.1.so.2 
\layout Standard

libgtk-1.1.so.2.0.0 
\layout Standard

libgtk.so.1 
\layout Standard

libgtk.so.1.0.6
\layout Standard

L'avantage (sur windows, par exemple) est que, les nouvelles bibliothèques
 n'étant pas toujours compatibles avec les anciennes, un vieux programme
 pourra utiliser la vieille bib et un nouveau programme la nouvelle.
 l'ennui est que le gain mémoire n'existe plus.
\layout Subsection

Qu'est-ce qu'un interpréteur
\protected_separator 
?
\layout Standard

Pas de flamme, svp.
 La discussion sur ce sujet a tourné à la dispute il y a peu.
 Mes définitions valent pour moi, et même uniquement pour le présent document,
 qui ne s'adresse pas à des spécialistes.
\layout Standard

Il faut d'abord dire qu'il y a de nombreuses catégories de programmes -vus
 du point de vue du programmeur.
 Nous nous contenterons d'en extraire deux.
 Les exécutables qui sont lisibles par un éditeur de texte et les autres.
\layout Standard

S'ils sont lisibles par un éditeur, ils ne sont donc pas en langage machine
 :-) et pour les exécuter il faut les 
\emph on 
interpréter
\emph default 
.
 Des interpréteurs très connus sont bash, BASIC, perl, python, LISP, tous
 les langages de vos calculatrices de poches.
\layout Standard

L'avantage est de pouvoir les modifier à volonté (à vos risques et périls),
 et un encombrement souvent faible de l'exécutable.
 l'inconvénient est une moindre vitesse d'exécution.
\layout Standard

Pour les exécuter il faut donc une bibliothèque un peu spéciale qui s'appelle
 bash, BASIC, perl...
 Ce sont les 
\begin_inset Quotes eld
\end_inset 

interpréteurs
\begin_inset Quotes erd
\end_inset 

 qui vont traduire le texte en langage machine.
\layout Standard

Les programmes interprétés sont livrés 
\begin_inset Quotes eld
\end_inset 

prêts à l'emploi
\begin_inset Quotes erd
\end_inset 

, il n'y a évidemment (?) pas besoin de les compiler.
 Ils sont de plus en plus nombreux et fonctionnent remarquablement bien.
\layout Subsection

Qu'est-ce qu'un compilateur
\protected_separator 
?
\layout Standard

Si l'exécutable d'un programme n'est pas lisible par un éditeur de texte,
 celui-ci va tousser si vous lui demandez de lire le fichier.
 Il va sans doute vous dire 
\begin_inset Quotes eld
\end_inset 

êtes-vous sur de vouloir lire un binaire
\protected_separator 
?
\begin_inset Quotes erd
\end_inset 

.
 C'est probablement qu'il est en langage machine (ne riez pas, les programmeurs
 sont des gens tordus et rien de ce qui a l'air évident n'est forcément
 vrai, mais nous nous contenterons des approximations).
 Il n'a sûrement pas été écrit comme ça, il a donc été compilé.
\layout Standard

Un compilateur est le programme qui fait ce travail.
 Très généralement, il s'agit de gcc ou gcc++.
\layout Standard

La caractéristique principale du compilateur, en ce qui nous concerne, est
 qu'il n'est utile qu'une fois.
 Quand le programme est compilé, on peut supprimer le compilateur (à condition
 de ne pas en avoir besoin pour compiler un autre programme).
\layout Standard

En fait, le programme, une fois compilé, doit être 
\begin_inset Quotes eld
\end_inset 

lié
\begin_inset Quotes erd
\end_inset 

, en franglais 
\begin_inset Quotes eld
\end_inset 

linké
\begin_inset Quotes erd
\end_inset 

, c'est à dire lié aux bibliothèques, mais c'est fait automatiquement, vous
 n'avez donc pas à vous en préoccuper.
\layout Subsection

Qu'est-ce qu'une dépendance
\protected_separator 
?
\layout Standard

Un programme est 
\begin_inset Quotes eld
\end_inset 

dépendant
\begin_inset Quotes erd
\end_inset 

 de ce qui lui est absolument nécessaire pour fonctionner.
 Un programme BASIC est dépendant de la présence du BASIC pour tourner.
\layout Standard

Linux ayant été bâti autour d'Internet, et beaucoup d'utilisateurs n'ayant
 qu'une liaison téléphonique, donc lente, les programmes sont livrés 
\emph on 
sans leurs bibliothèque
\emph default 
s.
\layout Standard

Vous devez donc vous procurer ces bibliothèques vous même.
\layout Standard

Je sais que je vais en faire hurler certains, mais je pense qu'aujourd'hui
 c'est une erreur.
 Alors que les liaisons internet s'accélèrent (oui, je sais, jamais assez
\protected_separator 
!) et surtout où le support de diffusion est le CD, il est inacceptable
 qu'il n'y ai pas au moins le choix entre une version 
\begin_inset Quotes eld
\end_inset 

complète
\begin_inset Quotes erd
\end_inset 

 (avec bib) et une version 
\begin_inset Quotes eld
\end_inset 

normale
\begin_inset Quotes erd
\end_inset 

 (sans bib).
 Bien sur, l'installation sur votre disque de la bib doit être facultative.
\layout Section

L'installation
\layout Subsection

Les archives tgz
\layout Subsubsection

Désarchiver
\layout Standard

tgz vient de tar gzip.
 Une archive tgz est un ensemble de fichiers réunis par l'exécution de 
\begin_inset Quotes eld
\end_inset 

tar cfvz
\begin_inset Quotes erd
\end_inset 

.
\layout Standard

Il y a des variantes quand au programme de compression utilisé, je n'en
 parlerai pas car, de toute façon, l'installation n'intervient qu'
\emph on 
après
\emph default 
 que les fichiers aient été décomprimés.
\layout Standard

Donc, copiez l'archive sur votre disque dur, moi je le fais dans un répertoire
 /opt/tmp, mais j'ai pris ça au hasard.
\layout Standard

Faites alors
\layout Standard

tar xfvz xx <tab>
\layout Standard

où xx est les deux ou trois premières lettres du nom de l'archive et <tab>
 la pression de la touche tab.
 Linux complète lui-même le nom (si ça ne marche pas, vous avez sans doute
 fait une erreur).
\layout Standard

tar crée lui-même les répertoires utiles et vous vous retrouvez le plus
 souvent avec un répertoire du même nom que le tgz.
 Entrez-y.
\layout Subsubsection

Programme
\layout Standard

Vous avez certainement dans ce répertoire des fichiers avec leur nom en
 majuscule.
 Ce sont des fichiers d'instructions, il faudra sans doute les lire.
\layout Standard

Mais, tout de suite, faites 
\begin_inset Quotes eld
\end_inset 

ls -l
\begin_inset Quotes erd
\end_inset 

 et regardez quels sont les fichiers avec un 
\begin_inset Quotes eld
\end_inset 

x
\begin_inset Quotes erd
\end_inset 

 dans les attributs.
 Si il y a un fichier ayant le même nom que l'archive (à peu près) et qui
 soit exécutable (x) c'est probablement qu'il n'y a aucune compilation à
 faire.
 Si vous installez un programme sans danger, vous pouvez l'essayer tout
 de suite (n'oubliez pas que vous êtes root et qu'il faut donc taper ./devant
 le nom du programme).
 Presque tous les programmes exécutés avec de mauvaises options (ou sans
 options du tout) affichent un aide mémoire.
\layout Standard

Ainsi vous saurez si vous avez affaire à un programme simple.
 Si ça marche, et que le programme fait bien ce que vous attendez de lui,
 c'est presque fini.
 Regardez quand même la doc (il y a souvent des détails de mise au point)
 et recopiez le programme dans /bin.
\layout Subsubsection

Application
\layout Standard

Si vous voyez un exécutable appelé 
\begin_inset Quotes eld
\end_inset 

configure
\begin_inset Quotes erd
\end_inset 

, vous avez sans doute affaire à une application.
\layout Standard

Il faut alors taper 
\begin_inset Quotes eld
\end_inset 

./co <tab>
\begin_inset Quotes erd
\end_inset 

, linux complète en ./configure.
 faites entrée pour lancer l'exécution.
\layout Standard

Configure va vérifier si votre système peut recevoir l'application.
 Vous allez voir défiler une foule de messages plus ou moins clairs, mais
 ils vont passer si vite que vous n'y comprendrez pas grand chose.
 Ce n'est pas grave.
\layout Standard

Au bout de quelques (parfois longues) minutes, configure s'arrête et vous
 donne des instructions.
\layout Standard

Parfois il vous dit : tout est ok, faites make puis make install.
\layout Standard

Obéissez, mais prévoyez que la compilation prends environ dix fois le temps
 qu'il a fallu à configure pour travailler, soit de 5 minutes à...
 plusieurs heures.
\layout Standard

Rien ne vous empêche de faire autre chose pendant ce temps là, même sur
 Linux (faites gaffe, ne reboutez pas pour lancer windows
\protected_separator 
!).
\layout Standard

Une fois la compilation finie, il y a de fortes chances pour que le programme
 fonctionne là où il est.
 Essayez.
 En effet il n'y a encore eu aucune modification de votre système et donc
 aucun dégât.
 Après 
\begin_inset Quotes eld
\end_inset 

make install
\begin_inset Quotes erd
\end_inset 

, il deviendra très difficile de savoir ce qui s'est passé (il faudra comprendre
 le fichier 
\begin_inset Quotes eld
\end_inset 

makefile
\begin_inset Quotes erd
\end_inset 

 créé par configure).
\layout Standard

Si ça marche, contentez-vous de créer un lien vers l'application dans /bin
 et restez-en là.
 Sinon, espérez que le programmeur est bon et que son make install ne posera
 pas de problème.
 Le plus souvent, tout se passe bien.
\layout Subsection

Les archives rpm
\layout Standard

rpm doit vouloir dire quelque chose comme Red Hat Programm Manager.
 C'est un bon essai de normalisation, mais il est encore très imparfait.
 Je le connais assez mal et je ne vous ferais donc pas un topo très long.
\layout Standard

Cependant, ce format d'archive est aujourd'hui si répandu que presque toutes
 les distributions (en tout cas SuSE et toutes celles basées sur Red Hat
\protected_separator 
: Red Hat, Mandrake,...) fournissent un utilitaire pour vous aider.
 Avec SuSE, c'est Yast qui s'y colle.
\layout Standard

Le problème est que ces utilitaires (et/ou rpm) ne font pas toujours le
 travail mieux que configure et ne vous indiquent pas toujours précisément
 quelles sont les bibliothèques manquantes, le cas échéant.
 En cas de problème, un petit passage par le man rpm ne sera sans doute
 pas inutile.
 Ce programme est cependant un utilitaire puissant, donc compliqué...
\layout Subsection

Les archives Debian
\layout Standard

Les promoteurs de la Debian ne voulant rien devoir à personne ont créé leur
 propre format.
 Je n'y connais rien et n'irais donc pas plus loin, sauf à préciser qu'un
 utilitaire, alien, que je n'ai jamais utilisé, permet de passer d'un format
 dans un autre.
\layout Subsection

Remarques générales
\layout Standard

Si votre disque dur est de taille suffisante, et vus les prix des disques
 aujourd'hui, ce serait bête de se priver, vous avez sans doute intérêt
 à installer toutes les bibliothèques disponibles dans votre distribution.
 Il n'y a aucun danger à installer plusieurs bibliothèques, faites par contre
 très attention avant de remplacer une bibliothèque par une autre de même
 référence mais d'origine différente.
 Installez ensuite toutes les nouvelles bib quand elles vous sont demandées
 par une application.
\layout Standard

Ainsi, au bout de quelques mois, vous les aurez toutes sur votre disque
 et toutes vos compilations se passeront sans problème.
 Il ne faut pas voir ailleurs pourquoi les anciens ont moins de problème
 que les autres
\protected_separator 
: chez eux, tout est déjà installé, il ne peut donc plus rien manquer.
\the_end
