Ich muss netcdf auf einem SuSE Linux-Rechner installieren, habe aber ein paar Probleme mit dem Verständnis der Ordner usr/local/ und myusername/local/. Ich denke, ich muss in den unkomprimierten netcdf-Ordner gehen und
./configure --prefix=/usr/local/netcdf-gfortran
Aber ich muss diesen Ordner doch erstellen, oder? Und warum in usr/local und nicht in meinem username/local ...?
Antwort1
Die übliche Kombination ist:
./configure --prefix=... [more options]
make
make install
Sie möchten es wahrscheinlich nicht verwenden, /usr/local
da hierfür ebenfalls Root-Berechtigungen erforderlich sind. Daher ist es --prefix=$HOME
oder --prefix=$HOME/programs
(oder was auch immer sonst besser für Sie funktioniert).
Es könnte sich lohnen, mit Ihrem Systemadministrator über zusätzliche Software zu sprechen - Sie sollten sowieso mit ihm sprechen, da openSUSE 11.3 sein Lebensende längst überschritten hat. Zumindest sollte er auf die11.4 Immergrün, das zumindest Sicherheitsupdates erhält.
Was das Erstellen der Pakete betrifft, ist es normalerweise eine gute Idee, einen Blick auf die.spec-Dateienum eine Vorstellung davon zu haben, was nützliche configure
Optionen, Quellcode-Patches und Bautricks sein könnten - in Ihrem Fall möchten Sie wahrscheinlich überprüfennetcdf .spec-Datei für openSUSE:Factory(oder jede ältere Distribution).
Antwort2
Im Allgemeinen /usr
gilt unter Linux für Programme, die von der Distribution bereitgestellt und von ihrem Paketmanager (dpkg/apt, rpm/yum, emerge usw.) verwaltet werden, und /usr/local
gilt für Programme, die manuell vom Systemadministrator installiert und verwaltet werden. Programme unter /usr
und /usr/local
werden für alle Benutzer installiert.
Wenn Sie Programme für Ihren eigenen Gebrauch installieren möchten, legen Sie diese irgendwo in Ihrem Home-Verzeichnis ab.
Ich empfehle die VerwendungVerstauenoderXStowum den Überblick über die Programme zu behalten, die Sie manuell installieren. (Verwenden Sie das eine oder das andere: Es handelt sich um Implementierungen desselben Konzepts.) Wenn Sie Programme manuell installieren, haben Sie die Wahl zwischen zwei unbequemen Optionen:
- Legen Sie alle Programme in dasselbe Verzeichnis. Dann wird es schwierig, sie zu sortieren, herauszufinden, welche Dateien zu welchen Programmen gehören, Programme zu deinstallieren usw. Auf der anderen Seite sind alle Programme einfach zu verwenden: Sie müssen Ihren PATH und andere ähnliche Einstellungen nur einmal aktualisieren.
- Legen Sie jedes Programm in sein eigenes Verzeichnis. Dann ist die Deinstallation ein Kinderspiel
rm -r
. Der Nachteil ist, dass Sie jedes Programm zu PATH usw. hinzufügen müssen.
Stow bietet Ihnen das Beste aus beiden Welten. Dieses Tool verwaltet symbolische Links von einem gemeinsamen Verzeichnis zu einem Verzeichnis pro Programm. Sie installieren jedes Programm (aus der Quelle oder aus einem Binärpaket) in seinem eigenen Verzeichnis unter stow
, und Stow erstellt symbolische Links in bin
, lib
, man
, …
Erstellen Sie also ein Verzeichnis programs/stow
unter Ihrem Home-Verzeichnis. Installieren Sie netcdf mit
./configure --prefix=~/programs/stow/netcdf-gfortran-4.3
make
make install
Führen Sie es dann stow netcdf-gfortran-4.3
aus dem ~/programs/stow
Verzeichnis aus, um symbolische Links für alle Teile dieses Pakets zu erstellen.
Bearbeiten Sie Ihre .profile
(oder wo auch immer Sie Ihre Umgebungseinstellungen ablegen), um sie ~/programs/bin
zu Ihrem ausführbaren Suchpfad, ~/programs/lib
Ihrem Bibliothekssuchpfad usw. hinzuzufügen.
PATH="$HOME/programs/bin:$PATH"
if [ -n "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH="$HOME/programs/lib:$LD_LIBRARY_PATH"
else
export LD_LIBRARY_PATH="$HOME/programs/lib"
fi
if [ -z "$MANPATH" ]; then
MANPATH=$(manpath)
fi
export MANPATH="$HOME/programs/share/man:$HOME/programs/man:$MANPATH"
Übergeben Sie beim Kompilieren von Programmen --with-cppflags="-I $HOME/programs/include"
an , configure
damit Header im Stow-Bereich gefunden werden können.
Weitere Informationen finden Sie unterDen Überblick über Programme behaltenUndWas ist eine effektive Methode, um aktuelle Software auf einer veralteten Produktionsmaschine zu installieren?