Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/07/2016, à 13:17

Swiss_Knight

Installer des binaires d'une lib depuis apt-get ou compilation ?

Bonjour,

J'ai deux questions "avancées" sur l'installation de programmes mais d'abord une explication.

Je vais tenter d'être le plus clair possible mais je m'aventure dans des eaux obscures (pour moi. Certainement qu'elles sont limpides pour qui maîtrise tout ça) puisque je tente de compiler des librairies qui apparemment sont en C/C++ si je comprends bien, et qui sont accompagnées quelques petits utilitaires directement lançables en ligne de commande à la manière de tout ce qu'on connaît quand on travaille en console.

En l'occurrence on va aller droit au but pour se simplifier la tâche ; il s'agit de libLAS : http://www.liblas.org

J'ai fait ce qui était indiqué sur cette page : http://www.liblas.org/compilation.html# … s-on-linux
sans trop savoir ce qui se passe mais apparemment tout s'est bien déroulé.
Il y a juste la partie "Configure your Optional Libraries." que je ne saisis pas trop.
Et je ne sais pas non plus comment utiliser des options de compilation et où on peut trouver des infos sur ces options et comment elles s'utilisent.
Bref, là n'est pas vraiment la question pour l'instant.

Une fois tout ça installé, je peux lancer une commande d'un exécutable, genre : lasinfo et j'ai les infos qui apparaissent sur comment utiliser l'outil avec la liste des options etc. C'est le comportement normal.
Avant installation, la même commande ne donnait strictement rien d'autre que "commande introuvable", ce qui est tout à fait normal aussi !


Bien. Vous allez me dire que jusqu'ici il n'y a rien qui coince, et c'est exact.

Or, si je fais maintenant un :

$ sudo apt-get install liblas-bin

je m'attendais à ce qu'il me dise que c'est déjà installé puisque je viens de le faire manuellement, mais non, il me propose quand même d'installer ça (où il y a exactement les mêmes utilitaires), ce qu'il a fait sans demander de confirmation.

Du coup, les questions :
1. Pourquoi il n'a pas vu que c'était déjà installé ? Certes manuellement mais déjà installé quand même.
2. Où l'installation via apt-get place les binaires ?
2.5 Y a-t-il une commande qui permet de voir où est localisé un programme sur le disque ? (un peu comme dans Window$ quand on fait un clic droit sur un programme, ça donne le chemin complet)
3. Si je fais un apt-get remove est-ce que ça va me virer l'installation manuelle effectuée par la compilation ?
4. Pourquoi apt-get install ne demande pas de confirmation [o/n] quand il s'agit de petites installations (i.e. j'ai remarqué que lorsqu'il s'agit de grosses quantités de données il demande confirmation mais pas si c'est juste pour un petit paquet, est-ce qu'on peut le forcer à demander quand même confirmation ?)


Merci infiniment !!
smile


EDIT :
J'apporte ici au fur et à mesure les réponses valides aux questions ci-dessus :
1.
2. Avec la commande whereis, par exemple :

$ whereis lasinfo
lasinfo: /usr/bin/lasinfo /usr/local/bin/lasinfo /usr/share/man/man1/lasinfo.1.gz

=> Apparemment l'installation manuelle s'est faite dans /usr/local/bin et l'installation via apt-get dans /usr/bin directement.
=> Comment installer manuellement un soft compilé directement dans /usr/bin ?

2.5

$ whereis lasinfo

ou

which lasinfo

.
La première est plus complète puisqu'elle me donne plusieurs infos différentes... qui répondent à la question 2 en fait ! \o/
La commande which ne donne que les chemins des paquets installés "automatiquement" (i.e. sans compilation) depuis apt-get apparemment.
3. Non, ça enlève seulement celle dans /usr/bin
4.

nb: si la modération du forum estime que ce sujet a de plus grandes chances d'avoir un taux de réponses plus important dans une autre catégorie, y a pas de soucis.

Dernière modification par Swiss_Knight (Le 06/07/2016, à 13:37)


xuniL

Hors ligne

#2 Le 06/07/2016, à 13:38

xabilon

Re : Installer des binaires d'une lib depuis apt-get ou compilation ?

Salut

apt-get est l'interface en terminal du système APT de gestion de paquets. APT ne gère que les installations par paquets .deb et leur récupération depuis les dépôts. Il y a moult façons d'installer un logiciel, mais APT ne gère que celles-là, et du coup ignore les autres installations.
Inversement, si tu avais installé liblas-bin avec apt-get, et que tu avais fait la compilation après, le compilateur ne t'aurais pas non plus prévenu que liblas était déjà installé...

Le placement des fichiers contenus dans le paquet .deb est défini dans le fichier lui-même, mais les binaires sont habituellement placés dans /usr/bin ou usr/lib

La commande pour avoir la liste des fichiers d'un paquet déjà installé :

dpkg-query -L nom_du_paquet

Par exemple :

dpkg-query -L liblas-bin

Le apt-get remove ne désinstallera que les fichiers qui ont été installés avec apt-get install. Donc, si la compilation a été installée dans un autre dossier (on utilise habituellement le dossier /local ou /opt), ni l'installation ni la désinstallation par APT n'auront d'influence.

Pour la question 4, j'avoue que je ne sais pas, et je n'ai pas trouvé d'option dans APT pour forcer la demande de confirmation à chaque installation.

Dernière modification par xabilon (Le 06/07/2016, à 13:42)


Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.

Hors ligne

#3 Le 06/07/2016, à 13:48

Rufus T. Firefly

Re : Installer des binaires d'une lib depuis apt-get ou compilation ?

xabilon a écrit :

Pour la question 4, j'avoue que je ne sais pas, et je n'ai pas trouvé d'option dans APT pour forcer la demande de confirmation à chaque installation.

Si tu fais apt-get install paquet, c'est que tu veux installer paquet. Ça paraît évident ! Donc quand il n'y a rien à installer de plus (des dépendances), apt ne ne te demande pas si tu veux installer...


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#4 Le 06/07/2016, à 13:55

xabilon

Re : Installer des binaires d'une lib depuis apt-get ou compilation ?

=> Comment installer manuellement un soft compilé directement dans /usr/bin ?

Je te le déconseille, afin d'éviter justement les conflits et les écrasements entre différentes versions. Les compilations dans /usr/local/bin, les installations par APT dans /usr/bin, c'est le mieux.

La question que dois te poser dans le cas de deux installations dans 2 dossiers séparés, c'est : laquelle des deux est utilisée ?
Tape dans un terminal :

echo $PATH

tu auras la liste des emplacement où le système va chercher les commandes demandées, et l'ordre dans lequel il les consulte. Moi j'ai ça :

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

c'est à dire que, lorsqu'une commande est invoquée, le système va chercher le binaire d'abord dans /usr/local/sbin, si il ne la trouve pas il cherche dans /usr/local/bin, etc...
Donc les binaires installés dans /usr/local auront la priorité (ceci peut être réglé au cas par cas avec update-alternatives).

@Rufus : ah oui, c'est logique, je n'y avais jamais pensé...

Dernière modification par xabilon (Le 06/07/2016, à 14:00)


Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.

Hors ligne

#5 Le 06/07/2016, à 13:55

jplemoine

Re : Installer des binaires d'une lib depuis apt-get ou compilation ?

pour savoir où est un fichier (quelque soit le fichier)

sudo updatedb
locate <nom fichier>

La première commande permet de mettre à jour la base de données : on peut faire des locates ensuite sans relancer la dite commande (sauf en cas d'ajout et/ou suppression).


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne