Website-Suche

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

Verwandte Artikel