Comment savoir où mettre les choses sous Linux?


58

Installer quelque chose dans Windows prend un clic sur un bouton. Mais chaque fois que j'essaye d'installer quelque chose sous Linux, qui ne se trouve pas dans APT, je suis tellement confus.

Vous téléchargez un dossier compressé, alors quoi? Si vous êtes chanceux, il existe un fichier README, en vous référant à une documentation qui pourrait vous aider, si vous avez de la chance.

Quel est le tour de magie lors de "l'installation" d'extensions et d'applications qui ne se trouvent pas dans APT?

J'adore Linux, mais ce problème me hante tous les jours.



8
Hors sujet. Mais le truc simple est de ne jamais installer quoi que ce soit en dehors du système de gestion de paquets.
Let_Me_Be

1
Si ce n'est pas de APT, vous ne pouvez probablement pas l'installer, vous devrez le compiler et l'installer vous-même. Et ensuite, les paquets basés sur APT seront confondus. Il est plus simple de simplement trouver APT / .debs pour tout ce dont vous avez besoin autant que vous le pouvez.
Rup

2
@Rup Plus si un logiciel ne contient pas de paquet deb, vous ne devriez probablement pas l'installer, car il est soit obsolète, soit à la pointe de la technologie, ou incompatible avec les distributions basées sur apt.
Let_Me_Be

3
Une fois que vous avez acquis suffisamment d'expérience avec la construction / installation de logiciels, vous pouvez simplement créer vos propres packages. Assurez-vous de fournir vos commentaires au fournisseur en amont!
jsbillings

Réponses:


32

S'il est un logiciel qui obéit à la norme de hiérarchie Filesystem que vous devez placer dans /usr/localet les sous - répertoires appropriés (comme bin, lib, share, ...).

Les autres logiciels doivent être placés dans leur propre répertoire sous /opt. Définissez ensuite votre PATHvariable pour inclure le binrépertoire ou le répertoire contenant les exécutables, ou créez des liens symboliques vers /usr/local/bin.


1
Bonne réponse, vraiment, mais il ne faut pas le faire tous les jours.
Phunehehe

1
@phunehehe - Vous devez le faire tous les jours?
Rob

3
Non, je parlais de l'OP "ce problème me hante tous les jours".
Phunehehe

1
En plus du lien wikipedia vers FHS, lisez également celui-ci: pathname.com/fhs/pub/fhs-2.3.html . Lisez la section qui dit "but".
Yasouser

27

Il n’ya pas de réponse simple à cette question, mais je peux vous donner un aperçu général de son fonctionnement:

La plupart des logiciels Linux sont fournis par les auteurs ("l'amont") sous forme de code source. Cela permet à tous ceux qui disposent d'un compilateur pour leur plate-forme et leur configuration système de télécharger le code source et de le compiler eux-mêmes. Malheureusement pour vous, de nombreux programmes s'appuient sur des fonctions fournies par d'autres programmes et bibliothèques de logiciels (dépendances).

Les logiciels Windows sont généralement précompilés. Cela signifie qu'il existe un fichier exécutable générique pour tous les ordinateurs Windows et que les dépendances sont souvent incluses dans le package d'installation.

Les distributions Linux prennent le code source, le précompilent pour vous et vous le proposent également sous forme de paquet. Le paquet n'inclut pas les dépendances, mais il y fait référence et oblige également le système à les installer (ce qui peut parfois entraîner des erreurs que vous avez probablement déjà expérimentées vous-même).

S'il n'y a pas de paquet précompilé, vous pouvez toujours télécharger le code source et le compiler vous-même. La plupart du temps, ce qui suit fonctionnera:

./configure
make
(sudo) make install (or sudo checkinstall)

La ligne ./configure définit l'étape du processus de compilation (et génère des erreurs si les dépendances ne sont pas remplies). La ligne make exécutera le Makefile, un script qui compile toutes les parties du programme.

Traditionnellement, vous utiliseriez make install pour installer ensuite le logiciel. Cela met généralement les exécutables dans / usr / local / bin.

Puisque vous utilisez apt, je vous recommande vivement de vous procurer checkinstall. Vous pouvez l'utiliser à la place de make install, et il générera un paquet .deb pour vous. Cela facilite grandement la suppression proprement du logiciel ultérieurement.

Notez qu'il existe une poignée d'autres systèmes de compilation, par exemple cmake; et certains logiciels sont précompilés mais non compressés (dans ce cas, vous pouvez le démarrer directement à partir du dossier décompressé); et certains logiciels viennent comme une collection de scripts que vous devez exécuter vous-même. Le nouveau code de SVN est parfois livré sans scripts de configuration, vous devez donc d'abord exécuter la chaîne d'outils autoconf ... etc, etc ... vous voyez qu'il existe de nombreuses exceptions à la règle, mais avec un peu d'expérience, vous pourrez dire quoi faire avec la plupart de ces téléchargements mystérieux. Configure-Make-Checkinstall est un bon début.

PS Passez un week-end ou deux à apprendre à vous programmer, et les choses deviendront très évidentes :-)

PPS. Vous vous demandez peut-être pourquoi les auteurs de logiciels Linux ne fournissent pas simplement des packages précompilés à la place du code source. Eh bien, ils le font parfois. Mais différentes plates-formes et distributions Linux ont toutes leurs propres formats de paquet et règles de système de fichiers. Par conséquent, en tant que développeur, vous devez fournir des paquetages pour toutes les configurations possibles, ce qui est pénible. Cependant, les paquets Ubuntu sont souvent les plus faciles à trouver - vous devriez savoir ce qu'est un PPA et comment il fonctionne!


1
"PS. Passez un week-end ou deux pour apprendre à vous programmer, et les choses vont devenir très évidentes :-)". Mauvais conseil dans une réponse par ailleurs excellente. Demander aux gens de programmer pour comprendre Linux, c'est comme si les passagers des compagnies aériennes réparaient les avions.
apoorv020

au lieu de programmer il suffit de le changer pour compiler votre propre linux, comme LFS (linux à partir de zéro) linuxfromscratch.org
jsolarski le

@apoorv, point pris. :)
sebastian_k

4

Vous devriez vérifier checkinstall . Au lieu de

./configure
make
sudo make install

tu fais

./configure
make
sudo make checkinstall

et vous serez capable de gérer ce paquet comme si vous l'aviez installé avec apt.


Oups, je viens de remarquer que @sebastian_k a déjà mentionné checkinstall ... Ah bon!
mgalgs

1

Il y a une raison valable et raisonnable qui est si déroutante (il y a aussi une raison d'artefact agaçante) ...

Unix est réputé être multi-utilisateur et la plupart des utilisateurs n’avaient pas le droit d’installer des applications en dehors des zones pour lesquelles un accès spécifique leur avait été accordé.

La théorie serait donc que vous construisiez quelque chose dans votre répertoire personnel, puis que vous le copiez dans une zone que vous contrôliez (votre propre zone de projet ou une zone partagée).

Les PC Windows sont généralement des systèmes mono-utilisateur et n’ont pas cette contrainte, tout passe dans Program Files quoi qu’il en soit.

Ensuite, il y a le fait stupide et ennuyant que chaque fois qu'une nouvelle version d'Unix est sortie, les créateurs ont jugé nécessaire de changer de lieu, mais les anciennes devaient toujours être là pour les scripts automatisés. Cela vous donne un tas de répertoires liés servant le même but.

Le système init est encore pire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.