rimuovere programmi installati tramite compilazione

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

rimuovere programmi installati tramite compilazione

Messaggio da danix »

Salve a tutti,
chiedo scusa fin d'ora se la mia domanda potrà sembrare banale ai più, ma ci stavo pensando da un pò... come si fà a disinstallare un programma che è stato compilato su una certa macchina?? Provo a spiegarmi meglio... quando utilizzo del software pacchettizzato mi basta dare un removepkg e lo elimino senza problemi, ma quando compilo?? Esiste un comando per rimuovere tutto quello che si va a creare nel sistema con la compilazione?? Ad esempio le pagine di man, gli eseguibili, le varie lib... nei pacchetti si tiene traccia di tutto, ma compilando da sorgenti??

Spero mi toglierete questo dubbio...

Grazie mille
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Messaggio da JohnnyMnemonic »

Quando compili i programmi, normalmente con il classico schema

./configure
make
make install

analogamente puoi rimuoverli con il comando

make uninstall

il problema è che non tutti i Makefile hanno comprese le istruzioni per la rimozione

Avatar utente
submax82
Staff
Staff
Messaggi: 3202
Iscritto il: mer 31 ago 2005, 0:00
Desktop: xfce
Distribuzione: SalixOS
Contatta:

Messaggio da submax82 »

e inoltre devi avere la certella dei sorgenti

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Messaggio da JohnnyMnemonic »

submax82 ha scritto:e inoltre devi avere la certella dei sorgenti
vero, l'avevo dato per scontato.
E' per la scomodità di tenere sempre le directory dei sorgenti che risulta molto più comodo e pulito fare i pacchetti

gastone90

Messaggio da gastone90 »

JohnnyMnemonic ha scritto: make uninstall

il problema è che non tutti i Makefile hanno comprese le istruzioni per la rimozione
è veramente un gran problema, sono in molti i makefile che non ce le hanno...e quando è ora di rimuovrere viene sempre fuori un disastro..

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Se make uninstall non è disponibile, basta che ti ricordi o che abbia annotato le opzioni del configure, poi lo installi da qualche altra parte (es. /prova) e guardi che file installa, a quel punto li rimuovi. Se vuoi puoi anche ripetere l'installazione senza cambiare la destinazione e/o farti un file di log di make install...
Ci sono tool come checkinstall, ma mi convincono poco...

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

in ogni caso per aggiornare un software compilato sul proprio pc con una versione successiva devo prima disinstallare la versione vecchia, giusto??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Diciamo che è spesso consigliabile, ma non necessario...
Attenzione che in alcuni casi, vedi le glibc, potresti avere dei problemi a disinstallare prima di installare, se ci fai caso upgradepkg prima installa la versione nuova, poi rimuove la vecchia.

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

albatros ha scritto:Diciamo che è spesso consigliabile, ma non necessario...
Attenzione che in alcuni casi, vedi le glibc, potresti avere dei problemi a disinstallare prima di installare, se ci fai caso upgradepkg prima installa la versione nuova, poi rimuove la vecchia.
si, ma upgradepkg tiene nota di tutto quello che installa e di quello che già si trova installato nel sistema, quindi gli viene più facile rimuovere il vecchio dopo aver installato il nuovo... (parlo di upgradepkg come se fosse una persona.... mah... mi faccio paura da solo) per un comune essere umano come me la questione è un pò più difficile... non credi??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Beh, anche per me...
Ma allora? :)
Se vuoi risparmiare tempo dopo ti conviene impiegarne di più prima per scrivere lo slackbuild...

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

in effetti quella che mi proponi è la cosa più sensata... mi stavo appunto documentando in proposito e ho trovato un sito, http://www.slackbuilds.org che mette a disposizione un vasto repository di slackbuild per numerose applicazioni... credo che inizierò a prendere in considerazione l'idea di crearmi da solo i pacchetti tgz quando ne ho bisogno...

grazie mille per i chiarimenti...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

Ci sarebbe un altro modo.
prima di lanciare il

Codice: Seleziona tutto

make install
fai passere due minuti di orologio. Dopo aver installato il programma puoi lanciare questa funzione per la bash:

Codice: Seleziona tutto

scova_file ()
{
    find / -not \( -wholename '/dev*' -or -wholename '/tmp*' -or -wholename '/proc*' -or -wholename '/sys*' -or\
                   -wholename '/etc/mtab' -or -wholename '/var*'  -or -wholename '/root*' -or \
                   -wholename '/.reiserfs_priv*' \)\
           -and -mount -mmin -2
}
in questo modo:

Codice: Seleziona tutto

scova_file >/tmp/casa
in modo da inviare tutti i file che sono stati modificati meno di un minuto prima nel file /tmp/casa.
NOTA che il -mount io lo uso perchè tutti i filesystem montati sono quelli miei privati (compresa la /home). Se hai il filesystem /usr montato, allora dovresti intensificare il filtro e togliere il -mount.

Quando vuoi disinstallare il programma qui ci sono tre funzioni bash che fanno al caso tuo:

Codice: Seleziona tutto

del_file ()
{
    for file in $(</tmp/casa );
    do
        [ -f $file -o -L $file ] && rm $file;
    done
}

del_dir ()
{
    for file in $(</tmp/casa );
    do
        [ -d $file ] && rmdir $file 2>&1;
    done | wc -l
}

del_all ()
{
    del_file;
    i=$(del_dir);
    j=$(del_dir);
    while (( $j != $i )); do
        i=$j;
        j=$(del_dir);
    done
}
lanci dell_all e il gioco è fatto.

E' ovvio che se ti guardi il file /tmp/casa prima di lanciare del_all non fai male ;).

Spina

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio da danix »

@spina
he he... ogni volta che leggo una tua risposta aumenta sempre di più la mia convinzione che tu ti diverta un sacco con la bash... grazie del suggerimento, è un bel walkaround...

Immagine
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

danix85 ha scritto:@spina
he he... ogni volta che leggo una tua risposta aumenta sempre di più la mia convinzione che tu ti diverta un sacco con la bash...
:oops: :oops:

Sono molto contento, è veramente un bel complimento, grazie.

Spina

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

danix85 ha scritto: mi stavo appunto documentando in proposito e ho trovato un sito, http://www.slackbuilds.org che mette a disposizione un vasto repository di slackbuild per numerose applicazioni...
Beh anche qui nel repository di Slacky trovi gli SlackBuilds ;)

Rispondi