Se costruisco un pacchetto dal sorgente, come posso disinstallarlo o rimuoverlo completamente?

119

Ho usato il codice sorgente per creare un pacchetto come di seguito:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib --with-package-name="Myplugin" --with-package-origin="http://www.ubuntu.org/" --enable-gtk-doc --disable-static
make
make install

Ma sfortunatamente, ho scoperto che è l'ultima versione e ha molti bug, quindi ho bisogno di rimuoverlo / disinstallarlo. Ma come posso farlo? Ho provato make clean; make uninstall , ma continuo a vederlo esistere:

# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....

Come lo rimuovi ora?

    
posta YumYumYum 12.12.2011 - 12:42

6 risposte

150

Di solito puoi usare solo:

make uninstall

o

sudo make uninstall

se l'app è stata installata come root.

Ma funzionerà solo se lo sviluppatore del pacchetto si è occupato di creare una buona regola di disinstallazione.

Puoi anche provare a dare un'occhiata ai passaggi usati per installare il software eseguendo:

make -n install

E quindi prova a invertire i passaggi manualmente.

In futuro per evitare questo tipo di problemi, prova a utilizzare checkinstall anziché make install quando possibile ( AFAIK sempre a meno che tu non voglia mantenere contemporaneamente sia la versione compilata che una versione pacchettizzata). Creerà e installerà un file deb che potrai quindi disinstallare usando il tuo gestore di pacchetti preferito.

make clean di solito pulisce le directory di costruzione, non disinstalla il pacchetto. È usato quando vuoi essere sicuro che l'intera cosa sia compilata, non solo i file modificati.

    
risposta data Javier Rivera 12.12.2011 - 12:49
26

Non penso che questo sia un bug, sarebbe una buona idea leggere e imparare a usare checkinstall quando si installa dal sorgente.

puoi installare checkinstall dai repository, una breve descrizione del pacchetto;

CheckInstall tiene traccia di tutti i file creati o modificato dallo script di installazione ("make install" "make install_modules", "setup", ecc.), costruisce a pacchetto binario standard e lo installa nel tuo sistema che ti dà la possibilità di disinstallarlo con il tuo le utility di gestione dei pacchetti standard della distribuzione.

Questi link qui sotto possono essere utili per ottenere una migliore comprensione. link

link

    
risposta data Sabacon 20.01.2011 - 23:36
15

Questo non è un bug: la compilazione da sorgente è un metodo non supportato di installazione di software che aggira completamente il sistema di gestione dei pacchetti (che viene utilizzato dal Software Center).

Non esiste un modo standard in cui il software compilato dalla sorgente sia installato o disinstallato, quindi nessun modo in cui Ubuntu può sapere cosa fare. Il software non è nemmeno elencato come un programma installato.

Dovresti seguire le istruzioni del distributore per l'installazione e la rimozione di tale software personalizzato. Puoi anche contattare lo sviluppatore per chiedere loro di creare un pacchetto Debian in modo da poter utilizzare il sistema di gestione dei pacchetti.

    
risposta data dv3500ea 20.01.2011 - 23:38
3

Non è un bug, è ciò che accade quando gli sviluppatori ricorrono alla distribuzione tramite sorgente e non tramite i metodi di impacchettamento nativi.

Puoi ottenere i tuoi file sorgente per diventare pacchetti Debian usando checkinstall o dhbuild. Onestamente, a mio parere, i nuovi utenti dovrebbero evitare l'installazione dal sorgente e gli sviluppatori dovrebbero evitare di distribuire solo per fonte.

    
risposta data RolandiXor 20.01.2011 - 23:36
0

Dobbiamo negoziare il fatto che rendere la disinstallazione non funzioni sempre, quindi di seguito è più di una soluzione proattiva.

 Ciò comporta l'uso del programma paco che è disponibile nel Software Center di Ubuntu. Una volta installato il paco, possiamo usarlo in modalità log quando "facciamo installare" un programma. Paco si comporta come un wrapper per il tuo "make install" e crea un log nella directory / var / log / paco con l'elenco dei file copiati in varie directory. Inoltre, è possibile vedere i file nella parte frontale di Paco.

Ad esempio, quando ho compilato php dal sorgente, ho fatto quanto segue:

paco -lp php5 "make install"

Il parametro l fa funzionare il paco in modalità log. Questo ha creato un file di log in / var / log / paco chiamato php5 (il nome che ho dato nel comando). Conteneva tutti i file che sono stati copiati in varie posizioni standard durante l'installazione. È possibile utilizzare un editor di riga di comando o paco gui per visualizzare i file.

Di seguito è riportato l'esempio di ottenere la lista dei file usando l'editor della riga di comando sed
(Sostituisci php5 con il tuo nome file).

cat /var/log/paco/php5 | sed -n 's/|\(.*\)//;/^#\(.*\)/d;p'

Una volta ottenuto l'elenco dei file, sai come eliminarli, vero? In effetti, puoi passare i risultati del comando precedente a rm utilizzando i backtick come mostrato di seguito:

sudo rm 'cat /var/log/paco/php5 | sed -n 's/|\(.*\)//;/^#\(.*\)/d;p''

Lavoro fatto!

Nota: a causa delle limitazioni LD_PRELOAD, paco non può seguire la traccia dei programmi suid. Vedi la pagina man.

    
risposta data sjsam 09.03.2015 - 13:56
0

Ho compilato php-5.6.30 dal codice sorgente senza configurarlo con openssl, quindi ho dovuto tornare indietro e installarlo da zero.Utilizzo di make uninstall no funziona come il Makefile per php non lo supporta.

Tuttavia, questo passaggio ha funzionato per me, - Ho elencato tutti i file relativi a php e li ho rimossi manualmente, mi ci sono voluti circa 5 minuti senza sudare. È possibile utilizzare analogamente questi passaggi per disinstallare il software compilato.

Sostituisci php con il software che devi disinstallare

whereis php

Il comando sopra elenca le directory in cui sono installati i binari ex: / usr / local / bin / php, / usr / bin / php .. rimuovi ogni file / directory elencato nel tuo output.

sudo rm -f /usr/local/bin/php

Fai questo con tutti i file elencati nell'output precedente e sei pronto per installare la nuova versione da zero.

    
risposta data Abhinay 03.04.2018 - 21:25

Leggi altre domande sui tag