Entfernen Sie mit Stow unter Linux installierte Programme aus der Quelle
In dieser Anleitung wird erklärt, was GNU Stow ist, wie man GNU Stow unter Linux installiert und wie man mit GNU Stow aus der Quelle installierte Programme entfernt.
Was ist GNU Stow?
Manchmal müssen Sie einige Programme installieren, indem Sie sie manuell aus dem Quellcode kompilieren. Da sie möglicherweise nicht in den offiziellen Repositorys oder Repositorys von Drittanbietern 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/
, im Dateisystem.
Wenn das von der Quelle installierte Programm nicht über ein integriertes Deinstallationsprogramm verfügt, wird es eine mühsame Aufgabe sein, die Pakete zu entfernen, wenn Sie sie nicht mehr benötigen.
Möglicherweise müssen Sie einige (oder mehrere) Minuten damit verbringen, diese Paketdateien zu finden und manuell zu entfernen. Das habe ich getan, bis ich auf ein Dienstprogramm namens "GNU Stow" gestoßen bin. Glücklicherweise verfügt Stow über eine einfache Möglichkeit, vom Quellcode installierte Programme einfach zu verwalten.
Um die offizielle Website zu zitieren:
GNU Stow ist ein Symlink-Farm-Manager, der unterschiedliche Software- und/oder Datenpakete, die sich in separaten Verzeichnissen im Dateisystem befinden, aufnimmt und sie so aussehen lässt, als wären sie am selben Ort installiert.
Einfach ausgedrückt hilft Ihnen Stow dabei, 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 an den entsprechenden Stellen symbolische Links zu allen Programmdateien.
Beispielsweise könnte /usr/local/bin
Symlinks zu Dateien in /usr/local/stow/vim/bin
< enthalten, /usr/local/stow/python/bin
usw. und ebenso rekursiv für alle anderen 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. Weiter lesen.
Installieren Sie GNU Stow unter Linux
GNU Stow ist in den Standard-Repositorys gängiger Linux-Betriebssysteme verfügbar.
Führen Sie unter Arch Linux und seinen Varianten 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
Auf RHEL/CentOS, AlmaLinux und Rocky Linux:
sudo dnf install epel-release
sudo dnf install stow
Entfernen Sie mit Stow unter Linux installierte Programme aus der Quelle
Wie ich bereits zuvor 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.
Wenn wir beispielsweise den Vim-Editor aus dem Quellcode installieren, werden alle mit Vim verbundenen Programmdateien und Verzeichnisse unter /usr/local/stow/vim
gespeichert. Ordner. Wenn Sie Python von der Quelle installieren, werden alle mit Python verbundenen Dateien unter /usr/local/stow/python
usw. gespeichert.
Lassen Sie mich ein Programm, zum Beispiel hello, aus dem Quellcode installieren.
Laden Sie zunächst den Tarball des „Hallo“-Programms herunter.
wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
Extrahieren Sie den heruntergeladenen Tarball mit folgendem Befehl:
tar -zxvf hello-2.10.tar.gz
Der obige Befehl erstellt ein Verzeichnis mit dem Namen „hello-2.10“ im aktuellen Arbeitsverzeichnis und extrahiert alle darin enthaltenen Inhalte.
Wechseln Sie in das extrahierte 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 Speicherort, d. h. in unserem Fall /usr/local/stow/hello
.
Erstellen und installieren Sie abschließend das Hello-Programm mit den folgenden Befehlen:
make
sudo make install
Das ist es. Das Hello-Programm wurde im Speicherort /usr/local/stow/hello/
installiert. Sie können es mit dem Befehl „ls“ überprüfen, wie unten gezeigt.
$ ls /usr/local/stow/hello/
bin share
Gehen Sie abschließend in das Verzeichnis /usr/local/stow/
und führen Sie den folgenden Befehl aus, um die erforderlichen Symlinks zu generieren.
cd /usr/local/stow/
sudo stow hello
Alles erledigt!
Was gerade passiert ist, ist, dass alle im Hallo-Paket enthaltenen Dateien und Verzeichnisse 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
wurden mit /usr/local/share
verknüpft und /usr/local/stow/hello/share/man
wurde mit /usr/local/share/man
verknüpft und so weiter.
Sie können sie mit dem Befehl 'ls'
überprüfen:
$ ls /usr/local/bin/
hello
Lassen Sie uns mit dem Befehl überprüfen, ob das Hallo-Programm funktioniert oder nicht:
$ 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/
Listen Sie den Inhalt des Stow-Stammverzeichnisses auf
Sehen? Das Hello-Programm wird im Speicherort "/usr/local/stow/hello/"
installiert. Ebenso werden alle Pakete in einem eigenen Verzeichnis gespeichert.
Hier kommt der Hauptteil. Lassen Sie uns das Hallo-Programm entfernen. Gehen Sie dazu in das Verzeichnis /usr/local/stow/
:
cd /usr/local/stow/
..und führen Sie den folgenden Befehl aus:
sudo stow --delete hello
Entfernen Sie das Programm mit Stow
Das Hello-Programm wurde gerade entfernt. Sie können mit dem folgenden Befehl überprüfen, ob es wirklich entfernt wurde oder nicht:
$ hello
-bash: /usr/local/bin/hello: No such file or directory
Führen Sie das Hello-World-Programm aus
Sehen? Hallo-Programm wurde entfernt!
Bitte beachten Sie, dass Stow nur die Symlinks entfernt hat. Alle Programmdateien und Verzeichnisse im Zusammenhang mit dem Hello-Programm sind weiterhin im Ordner /usr/local/stow/hello
verfügbar. Sie können das Hello-Programm also erneut installieren, ohne die eigentliche Quelldatei herunterladen zu müssen.
Wenn Sie das Hello-Programm nicht mehr möchten, löschen Sie einfach seinen Ordner.
sudo rm -fr /usr/local/stow/hello/
Weitere Informationen zu Stow finden Sie in den Manpages.
man stow
Abschluss
Mit GNU Stow können Sie die Programme genauso einfach deinstallieren wie 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 erheblich erleichtert. Probieren Sie es aus, Sie werden nicht enttäuscht sein.
Ressourcen:
- GNU Stow Homepage
- Verstauhandbuch
Empfohlene Lektüre:
- So finden und entfernen Sie nicht verwendete Pakete unter Linux