Wenn ich ein einfaches Programm installiere, verwendet es oft make && make install
und hat oft nicht einmal eine Deinstallation Ziel.
Wenn ich ein Programm aktualisieren möchte, ist es ein Standardprotokoll, anzunehmen, dass es einfach nahtlos über das alte Programm neu geschrieben wird?
Wie behalte ich den Überblick über diese Programme? machen die meisten Leute einfach "feuern und vergessen" und wenn nicht deinstallieren Ziel angegeben ist, muss ich alles manuell löschen?
Akzeptierte Antwort:
Installieren Sie jedes Programm in einem eigenen Verzeichnisbaum und verwenden Sie Stow oder XStow, damit alle Programme in einer gemeinsamen Hierarchie erscheinen. Stow erstellt symbolische Links vom programmspezifischen Verzeichnis zu einem gemeinsamen Baum.
Genauer gesagt, wählen Sie ein Toplevel-Verzeichnis aus, zum Beispiel /usr/local/stow
. Installieren Sie jedes Programm unter /usr/local/stow/PROGRAM_NAME
. Sorgen Sie beispielsweise dafür, dass die ausführbaren Dateien in /usr/local/stow/PROGRAM_NAME/bin
installiert werden , seine Manpages in /usr/local/stow/man/man1
und so weiter. Wenn das Programm autoconf verwendet, führen Sie ./configure --prefix /usr/local/stow/PROGRAM_NAME
aus . Nachdem Sie make install
ausgeführt haben , führen Sie stow
aus :
./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME
Und jetzt haben Sie symbolische Links wie diese:
/usr/local/bin/foo -> ../stow/PROGRAM_NAME/bin/foo
/usr/local/man/man1/foo.1 -> ../../stow/PROGRAM_NAME/man/man1/foo.1
/usr/local/lib/foo -> ../stow/PROGRAM_NAME/lib/foo
Sie können leicht verfolgen, welche Programme Sie installiert haben, indem Sie den Inhalt des stow
auflisten Verzeichnis, und Sie wissen immer, zu welchem Programm eine Datei gehört, da es sich um einen symbolischen Link zu einem Speicherort im Verzeichnis dieses Programms handelt. Deinstallieren Sie ein Programm, indem Sie stow -D PROGRAM_NAME
ausführen dann Löschen des Programmverzeichnisses. Sie können ein Programm vorübergehend nicht verfügbar machen, indem Sie stow -D PROGRAM_NAME
ausführen (Führen Sie stow PROGRAM_NAME
aus wieder verfügbar zu machen).
Wenn Sie schnell zwischen verschiedenen Versionen desselben Programms wechseln möchten, verwenden Sie /usr/local/stow/PROGRAM_NAME-VERSION
als Programmverzeichnis. Um von Version 3 auf Version 4 zu aktualisieren, installieren Sie Version 4 und führen Sie dann stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4
.
Ältere Versionen von Stow gehen nicht sehr weit über die Grundlagen hinaus, die ich in dieser Antwort beschrieben habe. Neuere Versionen sowie XStow (das in letzter Zeit nicht mehr gewartet wurde) haben erweiterte Funktionen, wie die Möglichkeit, bestimmte Dateien zu ignorieren, besser mit bestehenden Symlinks außerhalb des Stow-Verzeichnisses umzugehen (wie man -> share/man
), einige Konflikte automatisch behandeln (wenn zwei Programme dieselbe Datei bereitstellen) usw.
Wenn Sie keinen Root-Zugriff haben oder verwenden möchten, können Sie ein Verzeichnis unter Ihrem Home-Verzeichnis auswählen, z. ~/software/stow
. Fügen Sie in diesem Fall ~/software/bin
hinzu zu Ihrem PATH
. Wenn man
man-Seiten nicht automatisch findet, fügen Sie ~/software/man
hinzu zu Ihrem MANPATH
. Fügen Sie ~/software/info
hinzu zu Ihrem INFOPATH
, ~/software/lib/python
zu Ihrem PYTHONPATH
, und so weiter, falls zutreffend.