Kopieren Sie Bibliotheken an einen neuen Speicherort

369
Scott

Mein Unternehmen verwendet LMod, um mehreren Benutzern die Möglichkeit zu geben, verschiedene Versionen von allem auf demselben Computer zu haben. Dies beinhaltet im Wesentlichen, dass Sie alles, was Sie aus dem Quellcode benötigen, in ein lokales Verzeichnis kompilieren, was manchmal die Bearbeitung von Code und / oder Makefiles beinhaltet. LMod bietet dann einen praktischen Wrapper, um dieses Verzeichnis an die Systemvariable anzuhängen PATH.

Jedenfalls ist das alles ein gewaltiger Schmerz, aber ich habe es geschafft, eine Reihe nützlicher Bibliotheken so zu installieren, dass ich beispielsweise pipPython-Pakete ohne Kopfschmerzen installieren kann. Da dies jedoch ein Mehrbenutzer-System ist, möchte ich all meine harte Arbeit mit anderen teilen, ohne dass sie meine Module schreiben und alles vermasseln können. Als solches führe ich folgendes aus:

1) Kopieren Sie den lokalen Ordner mit allen bin, lib, Dateien in einen neuen Speicherort $cp -r my_modules your_modules

2) installierte Sachen Hardcodepfade überall am verdammten Ort ... also müssen wir diesen Pfad in allen Ordnern ersetzen ....

$cd your_modules $find . -type f -print0 | xargs -0 sed -i "s|my_modules|your_modules|g" 

3) Verwenden Sie Lmod setzen your_modulesauf die PATH, PYTHONPATH, LD_LIBRARY_PATHetc etc statt my_modules. Das LMod-Bit ist nicht wichtig. Lesen Sie dies als "Fixieren PATH, um auf den neuen Standort zu zeigen".

Die tatsächlichen Pfade für my_modulesund your_modulessind so seltsam, dass sie zu 99,9999% in keiner dieser Dateien natürlich vorkommen.

Aber wenn ich das tue, läuft so ziemlich alles einfach nur raus Segmentation Fault, eine Beobachtung, zu der einige von Ihnen, ich bin mir sicher, "duh" sagen.

Gibt es auf jeden Fall eine Möglichkeit, all dieses Zeug einfach zu kopieren, oder müssen wir jedes einzelne Element in einem neuen Verzeichnis neu kompilieren / installieren?

0

0 Antworten auf die Frage