[tuto] install prgm sous linux - conseils??

Fermé
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 - 26 févr. 2005 à 19:44
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 27 févr. 2005 à 15:47
Bonsoir,

voila, au vu des questions récurrentes sur l' "installation d'un tar.gz", d'un tar.bz2, d'un .run, d'un .rpm et autre, je pensais me lancer dans un espece de tuto sur l'installation des programmes sous linux, en différenciant la méthode "facile" (paquetage) et la compilation des sources (qui serait un bon gros morceau...)
pour cela, j'aurai besoin de qques conseils (ou contributions ;-) ) : je ne connais que mandrake et Debian, donc uniquement les outils de gestion de ces deux distribution...

donc pour simplifier, j'aurai besoin de qques explications coup de main sur :
* la gestion des paquets et leur installation sur fedora, peut etre Suse et Slackware ?? enfin, les distributions "grand public", celles qui sont généralement choisies par les nouveaux arrivants sous linux (mandrake et Debian ca devrait aller)

* j'aurai besoin d'un programme tres léger, qui sert a rien ( ou presque ;-) ), avec des paquets pour toutes les distributions citées plus haut, sans dépendances (ou seulement des dépendances basiques, qui seraient presque surement installées par défaut) : l'idée etant de proposer un exemple...

* j'aimerai aussi un (autre ou pas) programmes dont les sources sont compilables tres vite, sans dépendances non plus, enfin, comme au dessus, mais dans l'idée de faire un exemple de compilation (là, ca me parait un peu plus dur ;-) )

* je vois trois grosse partie : les paquets (.rpm, .deb, .***), les sources (.tar.gz, .tar.bz2, ???) et les archive qui s'extraient toutes seules (type .run )
si vous voyez d'autres types d'install, d'autres extensions que celles que j'ai cité (ce sont les seules que je connais...) j'aimerai bien avoir un petit mot la dessus!

merci d'avance!

si en plus vous vous sentez en forme pour me détailler un peu la gestion de paquets sous fedora (et les autres "grosse" distrib que je connais pas...)

qd j'aurais bien avancé ce truc, je le reposterai sans doute ici pour relecture avant de le proposer dans la base de connaissance

Phiphi

PS : si c'est déja fait et que je l'ai pas vu, arretez moi tout de suite!!! de meme si ca vous parait inutile... ca me ferait un peu chier de faire tout ca pour du beurre...
A voir également:

5 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
26 févr. 2005 à 20:01
Bonne idée ça. Tu le mettrais dans la base de connaissance?

Comme logiciel je pense à lynx. Il existe aussi bien en rpm qu'en deb.
Et également en tar.gz et tar.bz2. Il se compile traditionnellement.

Et je ne pense pas qu'il prend beaucoup de dépendances...
Je viens de le compiler sans option. Ca va assez vite.
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295
26 févr. 2005 à 20:05
" Tu le mettrais dans la base de connaissance? "

nan, c juste pour le garder bien au chaud chez moi ;-))))
par contre, ca prendra peut etre qques temps ;-)

bon, lynx dis tu... j'vais regarder a quoi ca ressemble...
merci!

Phiphi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 févr. 2005 à 20:05
Salut Phiphi,

Non, l'idée est bonne, surtout le fait de proposer un exemple qui marche et que les "newbies" pourront reproduire pour se faire la main. (J'aime beaucoup cette idée)

Par contre il y a déjà un article sur le site (pas dans la FAQ mais dans "l'encyclopédie" de CCM) :
http://www.commentcamarche.net/tutlinux/linrpm.php3
Donc plutôt renvoyer vers ça en premier pour le "général" et ensuite vers ton tuto pour les "exemples et la pratique"... non ?
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295
26 févr. 2005 à 20:13
oki!!
super, merci de m'arreter a temps jipicy !! (ouf... c'est presque le genre de truc que j'aurai proposé, sans doute en un peu moins détaillé en plus...)

effectivement, je vais me concentrer sur un "exemple" ...

merci encore pour ce lien qui va m'eviter une perte de temps sur une "redite" ...
et un lien a garder en tete sur la prochaine question "comment installer un tar.gz" ;-)

Phiphi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009
26 févr. 2005 à 20:24
De rien ;-))

Par contre même si le sujet est déjà bien étoffé, il manque quand même certaines choses... comme des explications sur "urmpi", "yum", "apt4rpm", "synaptic" (front-end d'apt-get, il y a "aptitude" aussi je crois... ) et je crois savoir qu'il existe aussi un truc du genre pour la Slackware (Hector... si tu passes par là, merci d'éclairer nos lanternes)...

Il serait bien aussi de parler de "Alien" (http://kitenet.net/programs/alien/), un "convertisseur de paquets ", qui marche dans les 2 sens "rpm <=> deb" et plus même ;-))

Y'a du boulot en perspective... je veux bien aider si besoin est.
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
26 févr. 2005 à 20:34
j'y pensais, a étoffer un peu sur apt-get, yum (que je connais pas) et urpmi
alien je connais mais ca marche pas a tous les coups :S)
aptitude : j'utilise que ca ;-)
y a aussi dselect pour debian (que je trouve plus déconcertant qu'aptitude)

j'vais deja essayer de balancer un premier jet dans la semaine, et je pense qu'il y aura de la relecture, des précisions et des ajouts a faire ;-) donc a ce moment y aura des coups de mains qui seront les bienvenus! ;-)

Phiphi
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
26 févr. 2005 à 20:37
Oui et l'article de CCM de donne pas de précisions sur le fichier /etc/apt/sources.list pour apt-get. Ainsi que les commandes pour définir les sources d'urpmi....

Je veux bien aider aussi si besoin est....
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295
27 févr. 2005 à 10:53
INSTALLER UN PROGRAMME SOUS LINUX :
*LA GESTION DES PAQUETS ou COMMENT SE SIMPLIFIER LA VIE
*UN EXEMPLE DE COMPILATION POUR SE FAIRE LA MAIN


PREREQUIS :
=========

* l'utilisation de la console (ou terminal, ou shell)
* la notion d'utilisateur normal / de super-utilisateur (root)
* la connaissance des commandes unix de base (cd, ls, rm, mkdir,...) : http://www.commentcamarche.net/linux/lincomm.php3
* la lecture de http://www.commentcamarche.net/tutlinux/linrpm.php3
* autres lien utiles : http://www.commentcamarche.net/linux/linintro.php3

============
==========================================
============

INTRODUCTION
I) LA GESTION DES PAQUETS SOUS DIVERSES DISTRIBUTIONS
I.1) INTRODUCTION
I.2) GENERALITES
I.3) MANDRAKE ET URPM
I.3.1) Définir des sources pour urpmi
I.3.2) Mise à jour des sources
I.3.3) Installer un programme grâce a urpmi
I.3.4) Desinstaller un programme grâce a urpme
I.3.5) Gestion en mode graphique
I.4) DEBIAN ET APT-GET
I.4.1) Définir les sources pour apt-get
I.4.2) Mise à jour des sources
I.4.3) Installer un programme
I.4.4) Desinstaller un programme
I.4.5) Autres outils Debian
I.5) FEDORA ET YUM
I.6) SLACKWARE ????????????????
II) ALIEN : LA SOLUTION VENUE D'AILLEURS...
III) UN EXEMPLE DE COMPILATION DE SOURCES
III.1) RAPPELS
III.2) PROGRAMMES NECESSAIRES A LA COMPILATION
III.3) LA COMPILATION !
III.4) ASTUCES - CONSEILS

============
==========================================
============

INTRODUCTION

comme dit dans le lien http://www.commentcamarche.net/tutlinux/linrpm.php3, il existe plusieurs type d'installation, les paquets ou la compilation des sources, la seconde solution étant la plus difficile à réaliser. L'installation des paquets est extrêmement simple, et pour aller jusqu'à éviter de chercher soi-même les paquets, certaines distributions linux ont pris la peine de développer des outils de gestion des paquets.
Cependant il peut arriver que certains programmes (ou les dernières versions de certains programmes) n'existe (pas encore) sous forme de paquet : il faut alors passer par la compilation des sources, dont on verra un exemple en partie III


I) LA GESTION DES PAQUETS SOUS DIVERSES DISTRIBUTIONS


I.1) INTRODUCTION

Les paquets sont à linux ce que sont les .exe à Windows. Ils sont extrêmement faciles à installer dans la plupart des cas, une fois les liens donnés en "Prérequis" ont été suivi.
Ils se presentent sous les extensions .rpm (pour "Red-hat Package Management") sous les distributions Mandrake, RedHat et Fedora Core, sous la forme .deb pour Debian, sous les formes ????????????????? pour Suse, Slack
Ils s'installent par la commande
rpm -ivh programme.rpm
ou
dpkg -i programme.deb

Cependant plusieurs problemes peuvent avoir lieu : le paquet que l'on souhaite installer (programme_A) nécessite l'installation d'un autre programme (programme_B) avant notre programme_A : il faut alors aller chercher le paquet du programme_B pour l'installer, mais à nouveau celui-ci peut nécessiter la présence d'un programme_C, et ainsi de suite... C'est ce que l'on appelle les dépendances, et cela peut devenir tres vite compliqué si programme_A dépend de prog_a, prog_b, prog_c et prog_d et que chacun d'eux dépend également d'une dizaine de programmes...
Pour simplifier la vie de l'utilisateur, la plupart des grandes distributions modernes intègrent un système de gestion des paquets, qui va avoir pour rôle (entre autre) de gérer les dépendances à la place de l'utilisateur. Ainsi, l'installation de programme_A se fera par l'appel d'une commande : "installe-moi programme_A", et l'outil de gestion ira chercher sur des sites internet préalablement définis programme_A, vérifiera si programme_A dépend d'autres paquets, et si c'est le cas, il les téléchargera et les installera dans le bon ordre : programme_C, puis programme_B qui dépend de C, puis programme_A qui dépendait de B.
Ces outils sont différents d'une distribution à l'autre, mais obéissent à quelques généralités de fonctionnement


I.2) GENERALITES

Ces outils de gestion des paquets servent de la facon suivante : une commande "installe-moi-ca:" (à remplacer par urpmi, apt-get, yum, ...) et le nom du paquet que l'on souhaite :
installe-moi-ca: paquet

Pour cela, il faut donc configurer cet utilitaire en lui disant où chercher les paquets qu'il souhaite installer : c'est ce qu'on appelle lui donner les sources d'où il doit télécharger les programmes. Voyons pratiquement comment cela se passe suivant les différentes distributions.


I.3) MANDRAKE ET URPM

Ici, "installe-moi-ca:" s'appelle "urpmi".
Urpm dispose de plusieurs variantes (vous remarquerez qu'il "manque" le i à la fin...)
urpmi qui sert à installer ("i"nstall)
urpme qui sert à désinstaller ("e"rase)
urpmf et urpmq qui servent à faire des recherches ("f"ind et "q"uery)
Chacun de ces utilitaires possède une floppée d'options : se référer au manuel
man urpmi
, idem pour urpme, f, q, pour connaître les différentes options utilisables dans chacun de ces utilitaire. Nous ne regarderons par la suite que urpmi


I.3.1) Définir des sources pour urpmi

Toutes ces commandes nécessitent les privilèges de super-utilisateur (root) : pour cela, taper su puis votre mot de passe.

Pour pouvoir utiliser urpmi, il faut tout d'abord configurer des sources pour urpmi. Pour cela, on utilise les commandes urpmi.addmedia (pour ajouter une source) et urpmi.removemedia (pour supprimer une source)
La syntaxe est la suivante :
pour ajouter une source :
urpmi.addmedia nom_de_la_source protocole://adresse/du/repertoire/des/paquets/ with chemin/relatif/vers/hdlist.cz

pour supprimer une source :
urpmi.removemedia nom_de_la_source

On peut ajouter comme sources : des sites ftp, des sites http, des CDs, XX??????XXXX
En règle générale, lors de l'installation de Mandrake, on récupère les différents CDs comme source. Si l'on possède une connexion haut débit de type adsl, il est alors préférable de commencer par les supprimmer pour préciser de nouvelles sources qui possèderont les mises à jour (contrairement au CDs ;-) )
urpmi.removemedia -a
supprime toutes les anciennes sources.

Il faut ensuite ajouter les sources que l'on souhaite : on peut par exemple utiliser le site easyurpmi.zarb.org tres bien fait. On ajoute alors les différentes sources : "main" correspondant plus ou moins a ce qu'il y a sur les CDs, "updates" contient les mises à jour, "contrib" correspond a des paquets fournis par d'autres utilisateurs (à utiliser avec modération). Il y a aussi les sources jpackage et plf (penguin liberation front) qui peuvent être ajoutées pour augmenter le nombre de paquets installables par urpmi. Remarquons que ces différents noms sont donnés à titre indicatif, l'utilisateur étant libre de leur donner le nom qu'il souhaite.
Exemple détaillé : la source "main"
urpmi.addmedia main ftp://fr2.rpmfind.net/linux/Mandrakelinux/official/10.1/i586/media/main with media_info/hdlist.cz

* urpmi.addmedia est la commande
* main est le nom de la source urpmi (l'utilisateur est libre par exemple de mettre "principale", ou meme "toto_aime_les_fleurs", l'important etant de fournir un nom reconnaissable : il est courant de la noter par exemple "rpmfind_main" car on va la chercher sur le site rpmfind
* ftp://............../media/main correspond au dossier contenant les fichiers .rpm de la source main
* with media_info/hdlist.cz correspond à la liste des paquets contenus dans le dossier ftp://.../media/main défini au dessus : cette liste sera téléchargée et stockée sur votre ordinateur et permettra au programme de savoir rapidement si le paquet existe et où le chercher : il s'agit du chemin RELATIF : c'est a dire ici que le chemin vers hdlist.cz est en réalité : ftp://....../media/main/media_info/hdlist.cz
il se peut parfois qu'on trouve "with ../media_info/hdlist_main.cz" : cela signifie que le "hdlist" pour "main" se situe à : ftp://....media/media_info/hdlist_main.cz : on est remonté avec .. d'un cran dans l'arborescence avant de redescendre vers media_info/

reste à installer les différentes sources de la même façon : suivre pour cela soit les indications de easyurpmi, soit fouiller un peu dans le site ftp pour trouver ce qui vous intéresse...
on pourra par exemple ajouter :
urpmi.addmedia updates ftp://fr2.rpmfind.net/linux/Mandrakelinux/official/updates/10.1/main_updates with media_info/hdlist.cz
urpmi.addmedia contrib ftp://fr2.rpmfind.net/linux/Mandrakelinux/official/10.1/i586/media/contrib with media_info/hdlist.cz
urpmi.addmedia jpackage ftp://fr2.rpmfind.net/linux/Mandrakelinux/official/10.1/i586/media/jpackage with media_info/hdlist.cz
urpmi.addmedia plf-free ftp://ftp.free.fr/pub/Distributions_Linux/plf/mandrake/free/10.1 with hdlist.cz
urpmi.addmedia plf-nonfree ftp://ftp.free.fr/pub/Distributions_Linux/plf/mandrake/non-free/10.1 with hdlist.cz

Voilà, on a installé les différentes sources pour urpmi!

Récapitulatif
su
****** <-- mot de passe root
urpmi.removemedia -a
urpmi.addmedia nom dossier_des_rpm with chemin_relatif/hdlist.cz


I.3.2) Mise à jour des sources

Les distributions linux et les paquets associés sont constamment en évolution, c'est pourquoi il est conseillé, par exemple avant d'installer certains paquets, de faire une mise à jour de ses différentes sources pour


I.3.3) Installer un programme grâce a urpmi

C'est là qu'on comprend toute la puissance de l'utilisation de ce type de gestionnaire de paquet...
Dans un terminal, on passe en super-utilisateur (su) , et si l'on souhaite installer le paquet "paquet", on tape :
urpmi paquet


Exemple : mettons que l'on souhaite installer gedit :
urpmi gedit
fera l'affaire!!
un autre exemple intéressant : vous souhaitez installer un "équivalent" libre d'Office, mais vous ne savez pas comment il s'appelle sous linux? vous pouvez tabler sur le fait que le paquet contiendra au moins la chaine de caractères "office" : vous pouvez tenter
urpmi office

là un utilisateur de mandrake pourrait me donner ce que sort exactement le programme????
il vous propose donc les différents noms de paquets contenant office!
une fois le choix fait (par exemple pour openoffice), vous le précisez!
urpmi openoffice.org

est ce le bon nom de paquet??

man urpmi
vous donnera les différentes options utlisables avec urpmi pour une utilisation avancée (par exemple spécifier une source, ignorer les dépendances, etc etc)
il est également possible de chercher les paquets grâce à urpmf ou urpmq (voir
man urpmf
et
man urpmq
)

Récapitulatif
su
****** <-- mot de passe root
urpmi paquet

Pour une mise à jour de tous les paquets déjà installés :

urpmi.update -a
urpmi --auto-select


I.3.4) Desinstaller un programme grâce a urpme

Le paquet que vous venez d'installer ne vous plait pas? ou vous n'en avez finalement pas l'utilité? Rien de plus facile que de le supprimer! toujours en tant que super-utilisateur, il vous suffit d'entrer
urpme gedit
par exemple pour supprimer gedit précédemment installé.

Récapitulatif
su
****** <-- mot de passe root
urpme paquet


I.3.5) Gestion en mode graphique

Je connais pas, mais je sais que ca existe , genre dans drakconf, installer paquets, etc : qqn pour détailler ca??


I.4) DEBIAN ET APT-GET

Ici, "installe-moi-ca:" s'appelle "apt-get".
Les différentes options d'apt-get sont encore une fois décrites dans la page de manuel :
man apt-get



I.4.1) Définir les sources pour apt-get

Elles sont définies dans le fichier /etc/apt/sources.list, et se présentent sous la forme d'une ligne comprenant :
type adresse version nom1 nom2 ...

type : peut etre "deb" pour les paquets ou "deb-src" pour les sources de programmes
adresse : adresse vers le dossier de la distribution
version : version de la distribution : stable, testing ou unstable
noms : nom des sous répertoires de adresse/dists/version/

Exemple : si l'on possede la version testing de Debian : une ligne comme ceci :
deb ftp://ftp.fr.debian.org/debian testing main contrib non-free

dans le /etc/apt/sources.list fera l'affaire.
on peut ajouter
deb ftp://ftp.fr.debian.org/debian-non-US testing main contrib non-free

pour les paquets labellé "non US", et :
deb-src ftp://ftp.fr.debian.org/debian/ testing main contrib non-free

pour les paquet-source de programme.
Le fichier /etc/apt/sources.list est à éditer "à la main" en tant que super-utilisateur


I.4.2) Mise à jour des sources

La mise à jour des sources se fait grâce à la commande :
apt-get update



I.4.3) Installer un programme

Un paquet s'installe grace à la commande :
apt-get install paquet


Exemple : si on souhaite installer gedit :
apt-get install gedit

donne :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Les paquets supplémentaires suivants seront installés :
docbook-xml gedit-common gnome-keyring libbonoboui2-0 libbonoboui2-common libeel2-2 libeel2-data
libgail-common libgail17 libgnome-keyring0 libgnomeui-0 libgnomeui-common libgtksourceview-common
libgtksourceview1.0-0 libscrollkeeper0 scrollkeeper
Paquets suggérés :
docbook docbook-doc docbook-dsssl docbook-xsl docbook-stylesheets docbook-xsl-stylesheets
gnome-icon-theme
Les NOUVEAUX paquets suivants seront installés :
docbook-xml gedit gedit-common gnome-keyring libbonoboui2-0 libbonoboui2-common libeel2-2
libeel2-data libgail-common libgail17 libgnome-keyring0 libgnomeui-0 libgnomeui-common
libgtksourceview-common libgtksourceview1.0-0 libscrollkeeper0 scrollkeeper
0 mis à jour, 17 nouvellement installés, 0 à enlever et 4 non mis à jour.
Il est nécessaire de prendre 5584ko dans les archives.
Après dépaquetage, 24,7Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]

on voit qu'apt-get nous dit quels sont les paquets qui doivent être installés pour satisfaire les dépendances

On peut également faire une mise à jour du système grâce à :
apt-get dist-upgrade

qui va vérifier toutes les mises à jour des paquets actuellement installés et faire la mise à jour si nécessaire

Récapitulatif
* installation de "paquet" :
apt-get install paquet
* mise à jour du systeme :
apt-get dist-upgrade
* mise à jour de "paquet" :
apt-get upgrade paquet


I.4.4) Desinstaller un programme

la désinstallation de "paquet" se fait grâce à :
apt-get remove paquet


apt-get télécharge les paquets .deb avant de les installer, aussi de temps en temps est il utile de nettoyer cette base de donnée temporaire :
apt-get clean



I.4.5) Autres outils Debian

Il existe d'autres outils Debian permettant la gestion de paquets. On peut citer principalement synaptic, dselect et aptitude
pour les installer, rien de plus facile désormais ! :
apt-get install synaptic dselect aptitude

On les lance grâce à
aptitude
ou
dselect
ou encore
synaptic

aptitude me semble le plus abouti, il est "quasi graphique" : il fonctionne dans un terminal, mais les menus sont accessibles à la souris. Il permet de faire des recherches sur une partie du nom du paquet, de voir pour chaque paquet ceux dont il dépend, ceux qui dépendent de lui, les paquets qui sont utilisés en association avec lui, etc etc. Tres pratique, donc à essayer absolument!
dselect possede un menu en mode texte, et peut être déroutant au début. Il a tendance à laisser sa place à aptitude.
je connais pas synaptic par contre...qqn pour un dire qques mots?


I.5) FEDORA ET YUM

je connais pas non plus fedora : un amateur de cette distribution pour faire un truc un peu similaire a ce qu'il y a au dessus ??


I.6) SLACKWARE ????????????????


II) ALIEN : LA SOLUTION VENUE D'AILLEURS...

Vous souhaitez installer la derniere version de votre programme préférée, et tous les paquets sont disponibles!! enfin, presque tous... tous sauf celui de votre distribution.... Il va vous falloir compiler les sources, et la dernière fois que vous aviez tenté l'expérience, cela avait été catastrophique.... il vous reste peut etre un dernier espoir : il s'appelle alien, et est utiliser pour "transformer" un paquet .rpm en .deb, ou le contraire... il peut gérer les paquets rpm, deb, slp, tgz et pkg (pour Solaris). Cependant il reste et restera sans doute toujours un programme "de test" qui ne sera jamais efficace a 100%
Cependant, il peut être intéressant de tenter cette solution avant de compiler les sources. Pour l'installer, apt-get ou urpmi devrait faire l'affaire
ensuite
alien --to-deb paquet.rpm
créera le fichier paquet.deb que vous pourrez installer par
dpkg -i paquet.deb

(voir http://www.commentcamarche.net/tutlinux/linrpm.php3 pour l'installation des paquets)
une lecture attentive de
man alien
vous permettra de trouver les options adaptées à votre distribution.


III) UN EXEMPLE DE COMPILATION DE SOURCES


III.1) RAPPELS

Rien à faire, vous n'arrivez pas à trouver un seul paquet ou même alien ne vous aide pas pour installer votre programme... il va falloir avoir recours à l'installation du programme à partir du code source...
il se présente généralement sous la forme d'un fichier compressé (.tar.gz ou .tar.bz2).
La procédure est détaillée ici : http://www.commentcamarche.net/tutlinux/linrpm.php3 et rappellons là de façon succinte :
*extraction du code source dans le dossier "programme"
*cd vers le dossier "programme"
*./configure
*make
*passage en super-utilisateur
*make install

Cependant, la plupart des nouveaux arrivants sous linux se précipitent sur des programmes très compliqués à installer supposant l'installation préalable d'un grand nombre de paquets dits "de développement" du type toto-dev, toto-devel, ou libtoto, sans compter toutes les dépendances tordues qui sont éventuellement nécessaires
Nous allons ici faire l'installation simple d'un programme ne dépendant que d'un minimum de chose pour prendre en main la procédure d'installation.


III.2) PROGRAMMES NECESSAIRES A LA COMPILATION

Pour l'exemple, et voir si on a bien compris la procédure, nous allons installer lynx qui est un navigateur internet en mode console. Comme il s'agit d'un programme relativement simple (mode console), il ne dépend que de peu de choses. Mais puisqu'il s'agit du code source du programme, il nous faudra au moins un compilateur! (qui va "traduire" les lignes de codes vers un exécutable).
Pour lynx, il s'agit de gcc
Pour vérifier que vous l'avez, taper
which gcc

Si vous récupérez quelquechose comme
/usr/bin/gcc
, vous avez bien gcc
Sinon, si vous avez suivi ce qui se fait au dessus, et suivant votre distribution, vous pouvez utiliser
urpmi gcc
ou
apt-get install gcc
ou encore
yum gcc
devraient faire l'affaire


III.3) LA COMPILATION !

Le but est ici de vous fournir (avec des explications) toutes les étapes nécessaires à la compilation du programme, en partant de l'hypothèse que vous possédez tous les programmes, compilateurs et autres nécessaires.
Commencons par récupérer le code source du programme qui nous intéresse.
http://lynx.isc.org/release/lynx2.8.5.tar.bz2 pour l'archive au format .tar.bz2
et on la télécharge dans /home/toto/ (si l'utilisateur s'appelle toto => à remplacer par votre nom d'utilisateur! si vous ne le connaissez pas,
ls -l /home
vous fournira une liste d'utilisateurs : a vous de remplacer "toto" par le bon!)
Ensuite, on ouvre une fenetre de terminal, et on se déplace dans /home/toto, en tant qu'utilisateur normal!! (toto, et pas le super utilisateur root)
cd /home/toto

ls -rtl
: vous verrez apparaitre dans la liste (sans doute parmi les dernieres positions, le fichier "lynx2.8.5.tar.bz2". Comme on l'a déja dit, il s'agit d'une archive, comme un .zip ou un .rar : il faut donc en extraire le contenu. Pour cela, on utilise la commande tar (cf http://www.commentcamarche.net/tutlinux/linrpm.php3)
tar xvfj lynx2.8.5.tar.bz2

vous devez voir défiler des lignes, qui correspondent aux fichiers qui sont extraits de l'archive
.
.
.
lynx2-8-5/test/
lynx2-8-5/test/tabtest.html
lynx2-8-5/test/iso8859-1.html
lynx2-8-5/test/TestComment.html
lynx2-8-5/test/ISO_LATIN1_test.html
lynx2-8-5/test/README.txt
.
.
.

ici, vous voyez que tous ces fichiers ont pour nom un nom qui commence par lynx2-8-5/ : il s'agit du dossier dans lequel sont effectivement extraites les sources.
Déplacons nous vers ce dossier :
cd lynx2-8-5/
et regardons ce qu'il contient :
ls

Nous voyons plein de fichiers, dont les plus important sont : configure?? Makefile?? NON!! README et INSTALLATION bien sur!!
Je vous épargne leur lecture ici, mais pour compiler un programme plus complexe, cela peut s'avérer utile et nécessaire!
Normalement, la premiere étape de la compilation correspond a la configuration grace a ./configure : ici, pour éviter de reinstaller lynx qui est peut etre deja installé, et pour vérifier que ce qu'on va faire fonctionne correctement, nous allons creer un dossier "Install_test" dans lequel nous installerons la version compilée.
mkdir Install_test

et on va configurer en précisant que ce répertoire sera le répertoire où on installera notre nouveau programme grâce à l'option --prefix= dans ./configure :
./configure --prefix=/home/toto/lynx2-8-5/Install_test
(en prenant soin de remplacer "toto" par le bon utilisateur)
le système vérifie alors que le compilateur est présent, d'autes options, ou facon de compiler/installer le programme, mais il vous dit tout! (ce qui s'avère utile lors d'un plantage : on peut alors savoir ce qui manque à la configuration)
Une fois configuré, il faut compiler le programme grâce à make
make

il défile tout un tas de lignes de codes correspondant aux fichiers compilés, aux options de compilation utilisées, etc etc
il reste à installer le programme : pour cela, il faut les privilèges de super utilisateur
su
******* <-- votre mot de passe "root"

et enfin :
make install

A ce stade, si tout s'est bien passé, votre programme est installé dans /home/toto/lynx2-5-8/Install_test/bin et vous pouvez le lancer par :
/home/toto/lynx2-8-5/Install_test/bin/lynx

votre terminal se colore, et vous arrivez dans un menu un peu bizarre "Lynx source distribution and potpourri". Touche "q" pour quitter : c'est gagné!!! vous avez compilé et installé votre programme! Nous n'apprendrons pas a nous en servir ici...
si vous souhaitez qu'il soit installé sur le systeme et que vous puissiez le lancer en ne tapant que "lynx", il vous faudra tout reprendre en n'utilisant PAS l'option --prefix=

Pour effacer le programme :
cd /home/toto/lynx2-8-5/
make uninstall
make clean



III.4) ASTUCES - CONSEILS

* D'un point de vue plus personnel, je vous conseillerais de télécharger et décompresser vous différentes sources de programmes dans un répertoire que vous aurez créé, par exemple dans /usr/src/progperso
mkdir /usr/src/progperso


* Pour les programmes que vous ne souhaitez que "tester" et desinstaller dans la foulée, l'idée du --prefix semble intéressante, mais dans l'ensemble, à éviter sauf cas de force majeure (parfois il est nécessaire d'ajouter --prefix=/usr)

* Pour vous refaire la main, vous pouvez tenter l'installation de bc, une calculatrice en mode graphique (encore plus simple a installer que lynx)
- telecharger http://www.fr.linuxfromscratch.org/view/blfs-5.0-fr/general/bc.html : c'est un tar.gz : l'enregistrer dans votre dossier /usr/src/progperso par ex
cd /usr/src/progperso
tar xvzf bc-1.06.tar.gz 
cd bc-1.06
mkdir install_perso
./configure --prefix=/usr/src/progperso/install_perso
make
su
********
make install

Puis
exit
/usr/src/progperso/install_perso/bin/bc

exit pour quitter le mode root, la ligne suivante pour lancer votre programme bc
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295
27 févr. 2005 à 10:57
bon, alors en gros :

* j'ai souligné ce que je savais pas (par exemple ce qui touche a yum, a slackware ou fedora, etc

* je vais je pense faire une demande de cobaye pour la partie "compilation" ;-)

* désolé pour le mauvais jeu de mot sur "alien", j'ai pas pu m'empecher! ;-)

Tous les commentaires, ajouts, corrections, relectures, reformulations, etc etc sont bien entendus les bienvenus et seront pris en compte

Phiphi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009
27 févr. 2005 à 11:20
Salut Phiphi,

Tout d'abord "chapeau", excellent boulot !
Dis, t'es resté éveillé toute la nuit pour pondre ça ??? ;-))

Par contre tu aurais dû demander le statut de contributeur dans le forum "Suggestions", et poster ton "article" directement dans la base de connaissances, histoire que les modifications puissent être effectuées directement et surtout pour la mise en forme, qui sera faite une bonne fois pour toutes...
Là tu vas être obligé de tout recommencer (au niveau des balises de mises en forme).

Quoiqu'il en soit, je me répête, mais "excellent boulot" de ta part.
Merci à toi.
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
27 févr. 2005 à 11:32
"Par contre tu aurais dû demander le statut de contributeur dans le forum "Suggestions", et poster ton "article" directement dans la base de connaissances, histoire que les modifications puissent être effectuées directement et surtout pour la mise en forme, qui sera faite une bonne fois pour toutes... "

euh....là il me faut un tuto aussi lol ;-)))
faut que je fasse quoi exactement?

pour la mise en page, t'inquietes, tout est sauvé dans un fichier texte chez moi (suis pas fou non plus ;-) )

Phiphi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009
27 févr. 2005 à 11:46
Re-

Bon c'est pas compliqué, tu postes un "thread" dans "Suggestions" et tu demandes à devenir "contributeur" et t'attends qu'un gentil "modo" ou le "Jcheff" en personne passe par là et t'accorde le statut. [Exemple : http://www.commentcamarche.net/forum/affich-1000210-Contributeur]
Pour plus de poids, ajoute un lien vers ton "tuto", ça augmentera tes chances (si tu veux je m'en charge ;-)) ).
Après ça (obtention du statut), tu pourras poster dans la FAQ et là, tout "membre contributeur" pourra à ce moment là éditer et modifier ton "article", un peu comme sur les "wikki".
Du coup la mise en forme est sauvée, et y'a même un suivi des "modifications" et le nom du posteur (modificateur) est visible aussi...
0
Phiphi57 Messages postés 789 Date d'inscription samedi 26 février 2005 Statut Contributeur Dernière intervention 19 juillet 2009 295
27 févr. 2005 à 15:19
bon, voilà, ca se trouve ici :

http://www.commentcamarche.net/faq/1328-[Linux]-Installer-les-programmes-gestion-des-paquets-compil

alors n'hesitez plus, faites vous plaisir!!
j'aimerai au moins avoir des corrections de la part :

*d'un (ou plus) utilisateur de mandrake (pour la partie concernant urpmi) : qques vérif en particuliers sur les points soulignés

*d'un (ou plus) utilisateur de Slackware

*d'un (ou plus) utilisateur de Fedora

* de qqn qui a l'habitude de compiler les prog pour savoir si l'exemple proposé posera prb

* de newbies cobaye pour tester l'exemple de compilation et voir si ca coince qqpart...

* comme deja dit : toute contribution est la bienvenue!!

Merci d'avance

Phiphi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 févr. 2005 à 15:47
J'ai testé la compilation de Lynx avec le tuto. Tout marche bien. Hormis une erreur durant le make uninstall. Je sais pas pourquoi mais de toutes façon il se retrouve désinstallé complètement avec le make clean...
0