GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimuovere i programmi installati dal sorgente utilizzando GNU Stow in Linux

A volte, devi installare alcuni programmi compilando manualmente dal sorgente. Perché potrebbero non essere disponibili nei repository ufficiali o di terze parti, quindi non puoi installarli usando i normali gestori di pacchetti. Come forse già saprai, quando installi i programmi dal sorgente, i file del pacchetto verranno copiati in più posizioni, come /usr/local/bin , /usr/local/etc/ , sul filesystem. Se il programma installato dal sorgente non ha un programma di disinstallazione integrato, sarà un compito noioso rimuovere i pacchetti quando non ne avrai più bisogno. Potrebbe essere necessario dedicare un paio (o più) minuti per trovare quei file del pacchetto e rimuoverli manualmente. Questo è quello che ho fatto fino a quando non mi sono imbattuto in un'utilità chiamata "GNU Stow" . Per fortuna, Stow ha un modo semplice per gestire facilmente i programmi installati dal sorgente.

Per citare il sito ufficiale,

Per dirla semplicemente, Stow ti aiuta a mantenere i file del pacchetto organizzati in modo che siano facilmente gestibili. In questo metodo, i file non verranno copiati in più posizioni. Invece, tutti i file vengono salvati in una cartella specifica, di solito con il nome del programma stesso, e Stow crea collegamenti simbolici a tutti i file dei programmi nelle posizioni appropriate. Ad esempio, /usr/local/bin potrebbe contenere collegamenti simbolici a file all'interno di /usr/local/stow/vim/bin , /usr/local/stow/python/bin ecc., e allo stesso modo ricorsivamente per qualsiasi altra sottodirectory come .../share , .../man , e così via. In questo tutorial ti mostrerò come gestire facilmente i programmi installati dal sorgente usando Stow con un esempio pratico. Continua a leggere.

Installa GNU Stow in Linux

GNU Stow è disponibile nei repository predefiniti dei più diffusi sistemi operativi Linux.

Su Arch Linux e le sue varianti, esegui il comando seguente per installare Stow.

$ sudo pacman -S stow

Su Debian , Ubuntu , Linux Mint , Sistema operativo pop :

$ sudo apt install stow

Su Fedora :

$ sudo dnf install stow

Su RHEL/CentOS , AlmaLinux e Rocky Linux :

$ sudo dnf install epel-release
$ sudo dnf install stow

Rimuovi i programmi installati dal sorgente utilizzando Stow in Linux

Come ho già accennato in precedenza, tutti i file di programma di un pacchetto verranno salvati in una cartella principale situata in /usr/local/stow/ . Sotto questa directory principale o principale, ogni pacchetto verrà salvato nella propria sottodirectory privata. Ad esempio, se installiamo Vim editor dal sorgente, tutti i file di programma e le directory relative a Vim verranno salvati in /usr/local/stow/vim cartella. Se installi python dal sorgente, tutti i file relativi a python verranno mantenuti in /usr/local/stow/python e così via.

Fammi installare un programma, ad esempio ciao , dalla fonte.

Per prima cosa scarica il tarball del programma "ciao".

$ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz

Estrai il tarball scaricato usando il comando:

$ tar -zxvf hello-2.10.tar.gz

Il comando precedente creerà una directory denominata "ciao-2.10" nella directory di lavoro corrente ed estrarrà tutti i contenuti in essa contenuti.

Passa alla directory estratta:

$ cd hello-2.10/

Esegui il comando seguente con l'opzione --prefix.

$ ./configure --prefix=/usr/local/stow/hello

Il comando precedente salverà i file di build nella posizione specificata, ad esempio /usr/local/stow/hello nel nostro caso.

Infine, compila e installa il programma hello usando i seguenti comandi:

$ make
$ sudo make install

Questo è tutto. Il programma hello è stato installato in /usr/local/stow/hello/ Posizione. Puoi verificarlo con il comando 'ls' come mostrato di seguito.

$ ls /usr/local/stow/hello/
bin share

Infine, vai su /usr/local/stow/ directory ed eseguire il comando seguente per generare i collegamenti simbolici necessari.

$ cd /usr/local/stow/
$ sudo stow hello

Tutto fatto!

Quello che è appena successo è che tutti i file e le directory contenuti nel pacchetto hello sono stati collegati simbolicamente alla directory /usr/local/ . In altre parole, /usr/local/stow/hello/bin è stato collegato a /usr/local/bin e /usr/local/stow/hello/share è stato collegato a /usr/local/share e /usr/local/stow/hello/share/man è stato collegato a /usr/local/share/man e così via.

Puoi verificarli usando 'ls' comando:

$ ls /usr/local/bin/
hello

Controlliamo se il programma hello funziona o non utilizza il comando:

$ hello
Hello, world!

Sì, funziona!!

Allo stesso modo, puoi installare i programmi come descritto sopra nella propria sottodirectory.

Ecco il contenuto della directory principale di Stow:

$ tree /usr/local/stow/

Vedere? Il programma hello è installato in "/usr/local/stow/hello/" Posizione. Allo stesso modo, tutti i pacchetti verranno mantenuti nella propria directory.

Ecco la parte principale. Rimuoviamo il programma ciao. Per farlo, vai su /usr/local/stow/ directory:

$ cd /usr/local/stow/

..ed esegui il seguente comando:

$ sudo stow --delete hello

Il programma Hello è stato appena rimosso. Puoi verificare se è stato davvero rimosso o meno con il comando:

$ hello
-bash: /usr/local/bin/hello: No such file or directory

Vedere? Il programma Hello è stato rimosso!

Tieni presente che Stow ha rimosso solo i collegamenti simbolici. Tutti i file di programma e le directory relative a hello program sono ancora disponibili in /usr/local/stow/hello cartella. Quindi, puoi installare di nuovo il programma hello senza dover scaricare il file sorgente effettivo.

Se non vuoi più il programma ciao, elimina semplicemente la sua cartella.

$ sudo rm -fr /usr/local/stow/hello/

Per conoscere maggiori dettagli su Stow, fare riferimento alle pagine man.

$ man stow

Conclusione

GNU Stow ti aiuta a disinstallare i programmi con la stessa facilità con cui li installi. Se ti stai chiedendo come gestire efficacemente molti programmi installati dal sorgente, GNU Stow è uno di questi programmi per rendere questo compito molto più semplice. Provalo, non rimarrai deluso.


Linux
  1. Come aggiungere o rimuovere un utente da un gruppo in Linux

  2. Installa Apache 2 da Source su Linux

  3. Come installare SQLite3 dal sorgente su Linux (con un database di esempio)

  4. Come compilare e installare software dal codice sorgente su Linux

  5. Come installare MongoDB dal sorgente (e usando YUM) su Linux

Come rimuovere un comando dalla cronologia in Linux

Come installare il software dal sorgente in Linux

Come rimuovere (^M) caratteri da un file in Linux

Come installare il software dal codice sorgente... e rimuoverlo in seguito

Come disinstallare programmi da Ubuntu Linux

Come installare il software dal codice sorgente nel tuo sistema Linux