web-dev-qa-db-fra.com

Comment dire à Ubuntu où installer un programme et comment savoir où un programme existant a été installé?

Je suis totalement nouveau sur Ubuntu/Linux, avec Ubuntu Server pour le moment. J'essaie juste de trouver quelque chose de fondamental.

Comment pouvez-vous dire où vous installez un programme. Par exemple, je viens d'installer le moteur de recherche Sphinx en plaçant l'archive que j'ai téléchargée depuis leur site sur mon:

/home/sphinx

annuaire. J'ai créé le répertoire sphinx pour y placer cette archive. Ensuite, j'ai exécuté ces commandes:

tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql

et puis ceux-ci:

make
Sudo make install

Maintenant, j'ai beaucoup de fichiers assis dans le répertoire où j'ai exécuté ces commandes. Est-ce que c'est mon installation Spynx ou est-ce qu'elle a été installée ailleurs?

Dans Windows, si vous exécutez un programme d'installation (fichier .exe), le programme sera toujours installé dans votre répertoire C:\Program Files. Est-ce que quelque chose de similaire s'applique à Linux où tous les programmes sont installés dans un emplacement central, ou pouvez-vous installer des programmes n'importe où sur le système.

Questions

  1. Je préférerais conserver tous mes programmes installés au même endroit, donc quel est le bon endroit pour cela, en termes de meilleures pratiques. En d'autres termes, quel est l'équivalent Linux de C:\Program Files?

  2. Et comment installer toujours à cet emplacement, s'agit-il simplement de placer l'archive tar et d'exécuter les commandes d'installation à partir de cet emplacement?

  3. Qu'en est-il si j'utilise Sudo apt-get pour installer un paquet. Comment puis-je indiquer cet emplacement pour indiquer à apt-get de toujours y installer?

10
JakeRow123

Est-ce que quelque chose de similaire s'applique à Linux où tous les programmes sont installés dans un endroit central

Approximativement équivalents des répertoires d'installation Windows sous Linux

  • \Windows = /bin
  • \Windows\System32 = /lib et /sbin
  • \Program Files = /usr/bin et /usr/lib

Je préférerais conserver tous mes programmes installés au même endroit, quel est le bon endroit pour cela en termes de meilleures pratiques. En d'autres termes, quel est l'équivalent Linux de C:\Program Files?

Ce sont les répertoires sous /usr, plus précisément /usr/bin et /usr/lib.

Et comment toujours installer à cet emplacement, est-ce juste une question de placer l'archive tar et d'exécuter les commandes d'installation à partir de cet emplacement?

  • N ° Où vous vous trouvez lorsque vous exécutez les commandes d'installation n'a presque jamais d'importance.

  • Les programmes que vous installez via apt-get (ou aptitude) se terminent presque toujours correctement dans /usr. MAIS les programmes que vous compilez à partir de la source et de make install aboutissent plus souvent dans /usr/local/bin, /usr/local/lib, etc., et vous pouvez avoir des problèmes avec cela car le chemin d'installation de l'utilisateur dans Debian/Ubuntu est /usr et non /usr/local.

  • Lors de la compilation à partir des sources, ajoutez ce commutateur pour configurer: ./configure --prefix=/usr. De cette façon, lorsque vous make install, les fichiers se retrouveront dans le bon répertoire.

  • Consultez également le programme checkinstall, qui garde la trace des fichiers qu’un paquet compilé à partir d’installations sources, crée un fichier deb et permet une désinstallation/réinstallation facile.

Qu'en est-il si j'utilise Sudo apt-get pour installer un paquet. Comment puis-je indiquer cet emplacement pour indiquer à apt-get de toujours y installer?

apt-get/dpkg s'occupe de cela automatiquement. Vous pouvez utiliser dpkg -L name-of-package pour voir tous les fichiers installés par un paquet et où ils ont été installés.

15
ish

Habituellement, les programmes sont installés dans plusieurs répertoires sous un même répertoire en haut, appelé préfixe . Le répertoire en haut à utiliser dépend de l’installation, du but et de la personne qui va gérer le logiciel.

Le préfixe /usr est le logiciel utilisé dans votre distribution. Vous devriez ne pas installer aucun autre logiciel là-bas, car il va confondre le logiciel distribution lors de l’installation et de la mise à niveau des logiciels fournis par la distribution. Donc s'il vous plaît n'y installez pas votre propre logiciel compilé. C'est pas une bonne idée, à moins que vous ne sachiez vraiment ce que vous faites. Et sauf si vous êtes un développeur Debian ou Ubunut, vous ne le faites généralement pas. Je ne ferais pas ça de toute façon.

Pour les logiciels commerciaux, le préfixe /opt est utilisé. Il leur est réservé d'interférer le moins possible avec les distributions et avec l'administrateur système local.

Pour les logiciels que l'administrateur système installe pour tous les utilisateurs, le préfixe /usr/local est utilisé. Il est hors de portée des installations commerciales ou de distribution et ne les gênera pas. Donc, en tant qu'administrateur système, vous l'utilisez (si vous avez les privilèges root, vous êtes un administrateur système).

Si vous êtes un utilisateur ordinaire qui installe lui-même un logiciel, vous pouvez utiliser votre répertoire personnel comme préfixe, en utilisant l’option --prefix dans configureavec le répertoire préfixe "~/" ou $HOME/. Je l'ai beaucoup utilisé quand j'étais étudiant. :-)

Habituellement, les logiciels agissent correctement lorsque vous exécutez configureavec l’option --prefix avec la bonne valeur, puis make; make install.

Sous l'un de ces préfixes, vous trouvez généralement ces répertoires dans une installation standard.

  • bin- les programmes exécutables, les fichiers binaires.
  • sbin- fichiers binaires du système, qui ne doivent généralement pas être exécutés par des utilisateurs ordinaires.
  • man- pages de manuel pour les programmes, bibliothèques, fichiers de configuration, etc.
  • etc- fichiers de configuration avec les valeurs par défaut du logiciel.
  • lib- bibliothèques de programmes et fichiers de données qui dépendent de l’architecture (telle que la CPU) de votre ordinateur.
  • share- fichiers de données qui ne diffèrent pas d'une architecture à l'autre et qui peuvent être partagés entre différents ordinateurs.
  • var- répertoires avec les données qui changent pendant l'exécution du programme. Comme enregistrer des fichiers, etc.

La plupart de ces répertoires peuvent être utilisés avec des systèmes de fichiers protégés en écriture pour renforcer la sécurité. Le seul répertoire dans lequel les utilisateurs doivent écrire est le répertoire var/. Lorsque le logiciel est mis à jour, ces répertoires doivent évidemment disposer de privilèges d'écriture. Cela peut être fait avec un remontage avec des privilèges d'écriture lors de l'installation, puis remonté avec une lecture uniquement après l'installation. Mais ceci est avancé, et je ne le donne que comme exemple de gestion avancée des paquets.

Il existe également des répertoires directement sous / (le répertoire racine) qui n’existent sous aucun autre préfixe, tels que /dev, /tmp, /proc et /srv (pour les répertoires de données de serveur, mais ils sont généralement sous /var/lib ou /var/www et les répertoires de ce type). vous devez donc modifier la configuration pour utiliser ce répertoire. Je vous recommande de le faire lorsque vous exécutez un serveur. Utilisez uniquement /var/ pour tester une installation standard).

  1. Linux n'est pas MS Windows. Il existe de nombreux endroits pour placer les programmes que vous installez. Cela dépend de qui installe et pour qui. Lisez-le dans mon post. Remarquer. RedHat utilise /usr comme Debian/Ubuntu utilise /usr/local. Apprenez votre distribution.
  2. Différents programmes ont différentes méthodes d'installation. --prefix sont utiles pour les programmes utilisant configurename__. Le meilleur moyen de savoir est probablement de lire le fichier README.txt ou quelque chose du genre, que vous possédez probablement dans l'archive tar. L'archive tar peut être extraite n'importe où, par exemple dans votre répertoire personnel. Une fois l'installation terminée, vous pouvez supprimer l'archive tar extraite, si vous manquez de stockage. Mais ne le faites pas trop tôt, à moins d’avoir correctement testé votre installation.
  3. Les programmes installés avec apt-get ou aptitudesont toujours installés au bon endroit pour la distribution. Vous ne pouvez pas changer cet endroit.
4
Anders

Lorsque vous installez des programmes à partir d’un référentiel utilisant l’installation normale, il s’installera au bon endroit, créera les fichiers de configuration au bon endroit (fonctionnellement similaire au registre Windows) et créera automatiquement des entrées de menu.

Lorsque vous téléchargez un fichier (non préféré, mais souvent nécessaire lorsque l'application ne se trouve pas dans un référentiel), la première chose à faire était d'exécuter tar, ce qui équivaut à unzip sur Windows. Cela crée les fichiers que vous êtes le plus susceptible de voir.

Ensuite, lorsque vous exécutez make install, les résultats sont généralement placés au bon endroit, peut-être même par la création de menus, mais les fichiers non tarés ne seront pas effacés. Vous pouvez probablement le faire, mais vous voudrez peut-être les sauvegarder temporairement au cas où.

Voici un article intéressant sur Structure du répertoire Debian .

2
Marty Fried