Manchmal müssen Sie einige Programme installieren, indem Sie sie manuell aus der Quelle kompilieren. Da sie möglicherweise nicht in den offiziellen oder Drittanbieter-Repositories verfügbar sind, können Sie sie nicht mit den regulären Paketmanagern installieren. Wie Sie vielleicht bereits wissen, werden die Paketdateien bei der Installation von Programmen aus dem Quellcode an mehrere Speicherorte kopiert, z. B. /usr/local/bin
, /usr/local/etc/
, auf dem Dateisystem. Wenn das installierte Programm aus dem Quellcode kein integriertes Deinstallationsprogramm hat, wird es eine mühsame Aufgabe, die Pakete zu entfernen, wenn Sie es nicht mehr benötigen. Möglicherweise müssen Sie einige (oder mehrere) Minuten aufwenden, um diese Paketdateien zu finden und sie manuell zu entfernen. Das habe ich getan, bis ich auf ein Dienstprogramm namens "GNU Stow" gestoßen bin . Glücklicherweise hat Stow eine einfache Möglichkeit, Programme, die von der Quelle installiert wurden, einfach zu verwalten.
Um die offizielle Website zu zitieren,
Um es einfach auszudrücken, Stow hilft Ihnen, die Paketdateien so zu organisieren, dass sie leicht zu verwalten sind. Bei dieser Methode werden die Dateien nicht an mehrere Speicherorte kopiert. Stattdessen werden alle Dateien in einem bestimmten Ordner gespeichert, normalerweise unter dem Programmnamen selbst, und Stow erstellt symbolische Links zu allen Programmdateien an den entsprechenden Stellen. Beispiel:/usr/local/bin
könnte symbolische Links zu Dateien in /usr/local/stow/vim/bin
enthalten , /usr/local/stow/python/bin
etc., und ebenso rekursiv für beliebige andere Unterverzeichnisse wie .../share
, .../man
, und so weiter. In diesem Tutorial zeige ich Ihnen anhand eines praktischen Beispiels, wie Sie mit Stow aus dem Quellcode installierte Programme einfach verwalten können. Lesen Sie weiter.
Installieren Sie GNU Stow unter Linux
GNU Stow ist in den Standard-Repositorys gängiger Linux-Betriebssysteme verfügbar.
Auf Arch Linux und seinen Varianten führen Sie den folgenden Befehl aus, um Stow zu installieren.
$ sudo pacman -S stow
Auf Debian , Ubuntu , Linux Mint , Pop OS :
$ sudo apt install stow
Auf Fedora :
$ sudo dnf install stow
Unter RHEL/CentOS , AlmaLinux , und Rocky Linux :
$ sudo dnf install epel-release
$ sudo dnf install stow
Entfernen Sie Programme, die mit Stow unter Linux aus dem Quellcode installiert wurden
Wie ich bereits früher erwähnt habe, werden alle Programmdateien eines Pakets in einem Stammordner gespeichert, der sich in /usr/local/stow/
befindet . Unter diesem Stamm- oder übergeordneten Verzeichnis wird jedes Paket in einem eigenen privaten Unterverzeichnis gespeichert. Zum Beispiel, wenn wir Vim installieren Editor aus dem Quellcode, alle Programmdateien und Verzeichnisse, die Vim betreffen, werden unter /usr/local/stow/vim
gespeichert Mappe. Wenn Sie python installieren Von der Quelle aus werden alle Dateien, die sich auf Python beziehen, unter /usr/local/stow/python
aufbewahrt und so weiter.
Lassen Sie mich ein Programm installieren, zum Beispiel hello , aus der Quelle.
Laden Sie zuerst den Tarball des „hello“-Programms herunter.
$ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
Extrahieren Sie den heruntergeladenen Tarball mit dem Befehl:
$ tar -zxvf hello-2.10.tar.gz
Der obige Befehl erstellt ein Verzeichnis namens „hello-2.10“ im aktuellen Arbeitsverzeichnis und extrahiert alle darin enthaltenen Inhalte.
Wechseln Sie in das entpackte Verzeichnis:
$ cd hello-2.10/
Führen Sie den folgenden Befehl mit der Option --prefix aus.
$ ./configure --prefix=/usr/local/stow/hello
Der obige Befehl speichert die Build-Dateien am angegebenen Ort, z. B. /usr/local/stow/hello
in unserem Fall.
Erstellen und installieren Sie schließlich das Hello-Programm mit den folgenden Befehlen:
$ make
$ sudo make install
Das ist es. Das Hello-Programm wurde in /usr/local/stow/hello/
installiert Lage. Sie können es wie unten gezeigt mit dem Befehl 'ls' überprüfen.
$ ls /usr/local/stow/hello/ bin share
Gehen Sie schließlich zu /usr/local/stow/
Verzeichnis und führen Sie den folgenden Befehl aus, um die erforderlichen symbolischen Links zu generieren.
$ cd /usr/local/stow/
$ sudo stow hello
Alles erledigt!
Was gerade passiert ist, ist, dass alle Dateien und Verzeichnisse, die im hello-Paket enthalten sind, symbolisch mit dem Verzeichnis /usr/local/
verknüpft wurden . Mit anderen Worten:/usr/local/stow/hello/bin
wurde symbolisch mit /usr/local/bin
verknüpft und /usr/local/stow/hello/share
wurde symbolisch mit /usr/local/share
verknüpft und /usr/local/stow/hello/share/man
wurde symbolisch mit /usr/local/share/man
verknüpft und so weiter.
Sie können sie mit 'ls'
verifizieren Befehl:
$ ls /usr/local/bin/ hello
Lassen Sie uns überprüfen, ob das Hello-Programm funktioniert oder nicht, indem Sie den Befehl verwenden:
$ hello Hello, world!
Ja, es funktioniert!!
Ebenso können Sie Programme wie oben beschrieben in einem eigenen Unterverzeichnis installieren.
Hier ist der Inhalt des Stow-Stammverzeichnisses:
$ tree /usr/local/stow/
Sehen? Das Hello-Programm wird in "/usr/local/stow/hello/"
installiert Lage. Ebenso werden alle Pakete in ihrem eigenen Verzeichnis aufbewahrt.
Hier kommt der Hauptteil. Lassen Sie uns das Hello-Programm entfernen. Gehen Sie dazu zu /usr/local/stow/
Verzeichnis:
$ cd /usr/local/stow/
..und führen Sie den folgenden Befehl aus:
$ sudo stow --delete hello
Das Hallo-Programm wurde gerade entfernt. Sie können mit dem Befehl überprüfen, ob es wirklich entfernt wurde oder nicht:
$ hello -bash: /usr/local/bin/hello: No such file or directory
Sehen? Hello-Programm wurde entfernt!
Bitte beachten Sie, dass Stow nur die Symlinks entfernt hat. Alle Programmdateien und Verzeichnisse, die sich auf das Hello-Programm beziehen, sind weiterhin unter /usr/local/stow/hello
verfügbar Mappe. So können Sie das Hello-Programm erneut installieren, ohne die eigentliche Quelldatei herunterladen zu müssen.
Wenn Sie das Hello-Programm nicht mehr benötigen, löschen Sie einfach seinen Ordner.
$ sudo rm -fr /usr/local/stow/hello/
Weitere Informationen zu Stow finden Sie auf den Manpages.
$ man stow
Schlussfolgerung
GNU Stow hilft Ihnen, die Programme so einfach zu deinstallieren, wie Sie sie installieren. Wenn Sie sich fragen, wie Sie viele aus dem Quellcode installierte Programme effektiv verwalten können, ist GNU Stow ein solches Programm, das diese Aufgabe viel einfacher macht. Probieren Sie es aus, Sie werden nicht enttäuscht sein.