OVH Cloud OVH Cloud

Désinstaller à partir des sources

9 réponses
Avatar
Vincent Ramos
Bonsoir(²),

Vu que je teste beaucoup Linux, que je continue de découvrir, il
m'arrive souvent d'installer des programmes en compilant directement
à partir des sources. J'ai compris qu'avec l'instruction "make
uninstall" lancée dans le répertoire contenant les sources, on
désinstalle le programme. Et si l'on a entre-temps effacé les sources
en considérant qu'elles ne servaient plus à rien ?

Faut-il les redécompresser, relancer "./configure", "make" puis "make
uninstall" ?

Au passage, à quoi sert "make clean" ? Je n'ai pas très bien compris.

D'autre part, quand j'installe un programme que j'ai compilé, s'il
existe une autre version de ce même programme, comment demander une
mise à jour (comme avec -U pour les rpm) et non un remplacement ? De
même, comment imposer un remplacement d'une version récente par une
version plus ancienne (= -U --oldpackage) ?

Merci,

Vincent


--
Je participe au projet Wikipédia <http://fr.wikipedia.org/>, et vous ?
<http://fr.wikipedia.org/wiki/Utilisateur:Vincent_Ramos>

9 réponses

Avatar
Emmanuel Florac
Dans article , siva-
nataraja+ disait...
Et si l'on a entre-temps effacé les sources
en considérant qu'elles ne servaient plus à rien ?

Faut-il les redécompresser, relancer "./configure", "make" puis "make
uninstall" ?


C'est une possibilité, mais il y a mieux...

Au passage, à quoi sert "make clean" ? Je n'ai pas très bien compris.


Quand tu as déjà fait "make", et que tu as changé des options de compil
(par exemple sur la ligne de commande de ./configure), make clean efface
les objets bianires créés précédemment pour éviter les soucis.

D'autre part, quand j'installe un programme que j'ai compilé, s'il
existe une autre version de ce même programme, comment demander une
mise à jour (comme avec -U pour les rpm) et non un remplacement ?


De base tu ne peux pas... Il faudrait que tu crées un paquet (rpm, .deb
ou .tgz selon ta distrib) mais...

De
même, comment imposer un remplacement d'une version récente par une
version plus ancienne (= -U --oldpackage) ?


Tous ces problèmes ont une solution : checkinstall. Tu installes
checkinstall, et quand tu compiles un programme, au lieu de faire
"./configure && make && sudo make install" tu fais "./configure && make
&& sudo checkinstall". Checkinstall crée un paquet .rpm, .deb ou .tgz que
tu peux ensuite installer ou désinstaller avec l'outil approprié, ou
upgrader, etc! et comme ça, plus de problèmes...

http://checkinstall.izto.org/

--
Quis, quid, ubi, quibus auxiliis, cur, quomodo, quando?

Avatar
Vincent Ramos

Tous ces problèmes ont une solution : checkinstall.


Ça, ça me plaît bien. Merci pour cette réponse. Au passage (bon, là
je crois que je pourrais trouver seul, mais...), qu'est-ce que
"sudo" ? Je connais bien "su", mais pas de "sudo"...

Avatar
Vincent Ramos

Il y a un tres bon article sur lea a ce sujet


... justement, je suis en train de le lire... J'ai posé la question
par paresse.

Avatar
Anthony
Le Wed, 17 Dec 2003 21:04:21 +0100, Vincent Ramos a écrit :


Tous ces problèmes ont une solution : checkinstall.


Ça, ça me plaît bien. Merci pour cette réponse. Au passage (bon, là
je crois que je pourrais trouver seul, mais...), qu'est-ce que
"sudo" ? Je connais bien "su", mais pas de "sudo"...


Sudo te permet d'utiliser certaines commandes que tu definis (qui sont
normalement accessibles seulement en temps que root) en temps
qu'utilisateur.

Il y a un tres bon article sur lea a ce sujet

Anthony


Avatar
Lsom
Salut,

Perso, tout ce que j'installe moi-meme, hors trucs fournis sur le CD, je
l'installe dans /usr/local. Comme son nom l'indique, ce sont les softs
installés "localement", en l'occurence des softs à moi.
Pour désintaller, je vire le directory et le chemin dans la variable PA TH.

Facile non ?


Concrètement :

Toutes mes compiles commencent donc par :

./configure --prefix=/usr/local/Nom_Du_Soft-noVersion ....

Ca installe par exemple dans /usr/local/Mplayer-0.92.
Je fais aussi, la 1iere fois que j'installe le soft :
* ln -s /usr/local/Mplayer-0.92 /usr/local/Mplayer
* Je rajoute si utile /usr/local/Mplayer/lib dans /etc/ld.so.conf.
* je fais /sbin/ldconfig
* je rajoute /usr/local/Mplayer/bin dans mon PATH

Ensuite, si je compile la version suivante de Mplayer, j'ai juste à cha nger le
lien de /usr/local/Mplayer vers /usr/local/Mplayer-nouvelleVersion.
Tout le reste est bon : path, ldconfig...

Si je veux désintaller, je vire le directory et les path.
Avatar
Benjamin Sigonneau
Lsom wrote:
Salut,

Perso, tout ce que j'installe moi-meme, hors trucs fournis sur le CD, je
l'installe dans /usr/local. Comme son nom l'indique, ce sont les softs
[...]
./configure --prefix=/usr/local/Nom_Du_Soft-noVersion ....

Ca installe par exemple dans /usr/local/Mplayer-0.92.
Je fais aussi, la 1iere fois que j'installe le soft :
* ln -s /usr/local/Mplayer-0.92 /usr/local/Mplayer
* Je rajoute si utile /usr/local/Mplayer/lib dans /etc/ld.so.conf.
* je fais /sbin/ldconfig
* je rajoute /usr/local/Mplayer/bin dans mon PATH

Ensuite, si je compile la version suivante de Mplayer, j'ai juste à changer le
lien de /usr/local/Mplayer vers /usr/local/Mplayer-nouvelleVersion.
Tout le reste est bon : path, ldconfig...

Si je veux désintaller, je vire le directory et les path.


C'est à peu de choses près ma façon de faire également. Si je peux me
permettre une remarque : connais-tu stow ? En gros, il permet
d'automatiser la partie création/destruction de liens que tu fais. C'est
assez pratique à l'usage, je trouve.

--
benjamin

Avatar
Lsom
Benjamin Sigonneau wrote:

connais-tu stow ? En gros, il permet
d'automatiser la partie création/destruction de liens que tu fais. C' est


Non, connais pas...
J'irai jeter un oeil... :)

Avatar
Benjamin Sigonneau
Lsom wrote:
Benjamin Sigonneau wrote:
connais-tu stow ? En gros, il permet
d'automatiser la partie création/destruction de liens que tu fais. C'est


Non, connais pas...
J'irai jeter un oeil... :)


Allez, un peu de propagande : le micro tutoriel de stow. Tout d'abord
créer un répertoire /usr/local/stow. Tous les softs à installer seront à
mettre là dedans. Donc, pour installer un soft :

1. Installation dans un répertoire propre au soft sous /usr/local/stow
configure --prefix=/usr/local/stow/logiciel-version
make && make install
2. Création des liens
cd /usr/local/stow
stow logiciel-version
Les liens sont créés sous /usr/local/bin, /usr/local/lib, etc.
3. C'est tout, ça marche. Éventuellement, il peut être judicieux d'avoir
/usr/local/bin dans son PATH et /usr/local/bin dans son LD_LIBRARY_PATH
(ou de configurer ldconfig comme il faut)

Pour désinstaller :
1. Destruction des liens
cd /usr/local/stow
stow -D logiciel-version
2. Virer complètement le soft
rm -r logiciel-version
Et c'est tout.

Normalement, stow gère les éventuels conflits qu'il pourrait y avoir. Ça
marche assez bien : je l'utilise à la maison pour les softs installés à
la main, au boulot pour les softs installés sur mon compte. C'est aussi
ce qui est utilisé dans mon ancienne école par l'admin pour gérer les
softs unix.

--
benjamin


Avatar
Lsom
Benjamin Sigonneau wrote:


Allez, un peu de propagande : le micro tutoriel de stow. Tout d'abord


ok, merci ! :)