Installing software in your home directory/fr: Difference between revisions

Created page with "'''Notes''' * tous les binaires sous <code>/cvmfs/soft.computecanada.ca</code> utilisent un RUNPATH; les répertoires des librairies d'exécution desquels dépendent ces bina..."
(Created page with "Si un fichier entête ou une librairie habituellement offert dans une distribution de type Linux par un RPM ou autre gestionnaire de paquets ne se trouve ni par <code>nixpkgs<...")
(Created page with "'''Notes''' * tous les binaires sous <code>/cvmfs/soft.computecanada.ca</code> utilisent un RUNPATH; les répertoires des librairies d'exécution desquels dépendent ces bina...")
Line 41: Line 41:
Si un fichier entête ou une librairie habituellement offert dans une distribution de type Linux par un RPM ou autre gestionnaire de paquets ne se trouve ni par <code>nixpkgs</code>, ni par un autre module, veuillez nous en informer; nous pourrons très probablement l'ajouter.
Si un fichier entête ou une librairie habituellement offert dans une distribution de type Linux par un RPM ou autre gestionnaire de paquets ne se trouve ni par <code>nixpkgs</code>, ni par un autre module, veuillez nous en informer; nous pourrons très probablement l'ajouter.


Notes:
'''Notes'''
* all binaries under <code>/cvmfs/soft.computecanada.ca</code> use what is called a RUNPATH, which means that the directories for the runtime libraries that these binaries depend on are put inside the binary. That means it is generally *not* necessary to use <code>$LD_LIBRARY_PATH</code>. In fact, <code>$LD_LIBRARY_PATH</code> overrides this runpath and you should '''not''' set that environment variable to locations such as <code>/usr/lib64</code> or <code>$EBROOTNIXPKGS/lib</code>. Many binaries will no longer work if you attempt this.
 
* if you install precompiled binaries in your home directory (for example [https://conda.io/miniconda.html Miniconda]) they may fail using errors such as <code>/lib64/libc.so.6: version `GLIBC_2.18' not found</code>. Often such binaries can be patched using our <code>setrpaths.sh</code> script, using the syntax <code>setrpaths.sh --path path [--add_origin]</code> where path refers to the directory where you installed that software. This script will make sure that the binaries use the correct interpreter, and search for the libraries they are dynamically linked to in the correct folder. The option <code>--add_origin</code> will also add $ORIGIN to the RUNPATH. This is sometimes helpful if the library cannot find other libraries in the same folder as itself.
* tous les binaires sous <code>/cvmfs/soft.computecanada.ca</code> utilisent un RUNPATH; les répertoires des librairies d'exécution desquels dépendent ces binaires sont placés dans le binaire. Il n'est donc pas nécessaire d'utiliser <code>$LD_LIBRARY_PATH</code>. En fait, <code>$LD_LIBRARY_PATH</code> a préséance sur le RUNPATH et cette variable d'environnement ne devrait pas se trouver dans des endroits comme <code>/usr/lib64</code> ou <code>$EBROOTNIXPKGS/lib</code>. Si vous procédez ainsi, plusieurs binaires ne fonctionneront pas.
* if all else fails you can use <code>module --force purge</code> to remove the CVMFS environment. You are then left with a bare-bones CentOS-7 installation without modules. This may help for special situations such as compiling GCC yourself or using custom toolchains such as the [http://www.astro.wisc.edu/~townsend/static.php?ref=mesasdk MESA SDK]. Purging modules would then '''only''' be necessary when you compile such software; the modules can be reloaded when running it.
* si vous installez des binaires précompilés dans votre répertoire home (par exemple [https://conda.io/miniconda.html Miniconda]), vous pourriez recevoir une erreur telle que <code>/lib64/libc.so.6: version `GLIBC_2.18' not found</code>. Ces binaires peuvent souvent être réparés avec le script <code>setrpaths.sh</code> en utilisant la syntaxe <code>setrpaths.sh --path path [--add_origin]</code> path désigne le répertoire où vous avez installé le logiciel. Ce script fait en sorte que les binaires utilisent le bon interpréteur et cherche les librairies auxquelles ils sont dynamiquement liés dans le répertoire approprié. L'option code>--add_origin</code> ajoute aussi $ORIGIN au RUNPATH,  ce qui peut s'avérer utile si la librairie ne peut trouver d'autres librairies situées dans le même répertoire qu'elle-même.
* en dernier recours, utilisez code>module --force purge</code> pour éliminer l'environnement CVMFS. Vous obtiendrez ainsi une installation CentOS-7 brute, sans modules. Ceci peut servir dans des cas spéciaux où vous compilez GCC par vous-même ou quand vous utilisez des chaines d'outils comme [http://www.astro.wisc.edu/~townsend/static.php?ref=mesasdk MESA SDK]. Il ne serait nécessaire de purger des modules qu'à la compilation et ils peuvent être chargés à nouveau au lancement du logiciel.
rsnt_translations
56,437

edits