Où dois-je mettre le logiciel je me comstack?

J'ai besoin de comstackr un logiciel sur ma machine Fedora. Où est le meilleur endroit pour le mettre afin de ne pas interférer avec le logiciel emballé?

Règle de base, au less sur les systèmes à base de Debian:

  • /usr/local pour les trucs qui sont "à l'échelle du système" -ie /usr/local tendance à être dans le $PATH par défaut d' $PATH , et suit une hiérarchie de directorys UNIX standard avec /usr/local/bin , /usr/local/lib , etc.

  • /opt pour des choses que vous ne faites pas confiance à l'échelle du système, avec des préfixes par application, par exemple /opt/firefox-3.6.8 , /opt/mono-2.6.7 , etc. Les trucs ici nécessitent une gestion plus attentive, mais il est également less susceptible de casser votre système – et il est plus facile à supprimer car vous venez de supprimer le dossier et il est parti.

Si vous ne voulez vraiment pas interférer du tout, ne le mettez pas dans votre $PATH .

Si vous le voulez dans $PATH , assurez-vous au less de ne pas installer dans /usr/local . J'ai trouvé que beaucoup de logiciels regardent là même s'il est installé par la distro dans /usr .

Ma façon préférée d'installer un logiciel compilé sur mesure est dans mon directory $HOME . De cette façon, vous n'avez pas besoin d'utiliser sudo pour rien, et il est très bien séparé du rest de votre système. Par exemple:

 mkdir ~/stage ./configure --prefix=/home/username/stage && make && make install 

Et si vous le souhaitez, vous pouvez append /home/username/stage/bin à votre $PATH .

FHS dit de le mettre dans / usr / local où les dissortingbutions ne devraient pas le toucher. /usr/local/bin pour les binarys /usr/local/src pour la source et /usr/local/lib pour les bibliothèques. Voir la spécification FHS pour plus d'informations

La plupart du time, j'aime placer mes propres trucs compilés dans /opt . C'est une sorte d'endroit pseudo-standard. Vous pouvez également considérer /usr/local , mais je préfère garder mes affaires 100% isolées.

Mettez-les dans /usr/local/src .

Ce que je fais est d'extraire la source dans ce directory. Cela va créer un path comme

 /usr/local/src/postgresql-8.3.7 

Ensuite, je crée un lien symbolique vers celui-ci:

 /usr/local/src # ln -s postgresql-8.3.7 postgresql 

Faites tout votre bâtiment dans /usr/local/src/postgresql .

Faire les choses de cette façon aide quand vous avez besoin de passer entre les versions et documents quelle version que vous utilisez.

S'il y a possibilité – je vous suggère de comstackr votre logiciel, puis de créer le package FC (je crois que c'est en utilisant yum pour installer les logiciels). Ensuite, vous pouvez installer ce package de votre propre logiciel compilé et le supprimer sans gâcher l'set du système.

Si vous voulez pouvoir facilement installer et supprimer plusieurs applications que vous avez construites vous-même, vous pouvez utiliser Stow comme gestionnaire de packages simple.

Cela me callbackle, je dois utiliser checkinstall plus souvent! De cette façon je fais juste l'habitude

  ./configure make 

suivi par

  sudo checkinstall 

créer un file .deb

Selon le FHS , /usr/local/ est utilisé pour les applications compilées à partir de la source, alors que /opt/ est utilisé pour des applications tierces non sockets en charge par votre fournisseur de operating system.

Deux choses que je reorderais:

Au niveau du système: utilisez stow et installez-le dans / usr / local / stow / package-version. Ensuite, vous pouvez facilement basculer entre la version.

Dans ma maison, ou si je n'ai pas les permissions d'écriture / usr / local, j'installe personnellement des programmes sous ~ / .local, ce qui est suggéré par la norme XDG .

Vous pouvez également utiliser ranger localement, mais je n'ai jamais fait 🙂

J'ai une configuration un peu différente de la plupart des gens parce que je fais beaucoup de développement. J'ai un directory / home / jackson / bin / que j'installe des trucs dedans et j'ai édité mon .bashrc en ajoutant ceci:

 export PATH=/home/jackson/bin/bin::$PATH export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH 

Je ne ferais pas ça pour tout, mais c'est sympa pendant le développement.

En fait, il n'est pas si difficile de créer des deb ou des rpm à partir d'un tarball source. De cette façon, vous pouvez utiliser les fonctions du gestionnaire de packages de votre dissortingbution pour garder votre système propre. C'est ce que je fais, la plupart du time: il suffit de créer un petit nombre de tours.

si vous comstackz une application, vous pouvez append le path de ses exécutables dans votre variable d'environnement PATH. cela n'aura pas d'impact sur les autres users.

Il y a toujours la possibilité de "mettre là où il appartient" mais écrivez un simple rpm, d'abord.

Si vous souhaitez que votre application soit disponible pour tous les users du système et que vous disposiez des permissions nécessaires, utilisez / opt. Si vous souhaitez que l'application soit disponible uniquement pour vous (et root), utilisez / home / nom_user

La façon la plus simple d'y parvenir est de récupérer le package source ( .src.rpm pour RPMites), de le décompresser, de pirater la nouvelle source / configuration / tout ce qu'il contient, de modifier la version de façon appropriée et de la build. L'installation de cette option permet à votre gestionnaire de packages de prendre connaissance du nouveau package, de l'envisager pour les dependencies et de le désinstaller / mettre à jour.

C'est une corvée la première fois, mais si une nouvelle version (ou un patch critique) sort, il est alors plus simple à mettre à jour. Un autre avantage est que vous pouvez créer votre propre référentiel avec un logiciel local, qui sera partagé par exemple par les machines d'un laboratoire.

Écrire un RPM, ce n'est pas difficile, a des lignes direcsortingces sur où mettre des choses et désinstalle un composant logiciel enfichable.

Si vous le faites, installez les files sous /usr et non sous /usr/local , comme tous les autres files qui passent par le système d'empackageage.