Pagina 1 di 1

da ldd a removepkg...

Inviato: lun 31 ott 2005, 21:15
da absinthe
salve,

stavo scrivendo uno script per lanciare in automatico ldd su un eseguibile,
fare una ricerca delle dipendenze all'interno di /var/log/packages/* ed ottenere così l'elenco dei tgz associati alle dipendenze dell'eseguibile.
è successa però una cosa strana:

-a volte una dipendenza non è associata ad un pacchetto
-a volte una dipendenza è associata a più pacchetti

nel primo caso credevo che la causa fosse l'eventuale indicazione di un link symbolico come dipendenza. in realtà a me accade questo: se faccio

Codice: Seleziona tutto

ldd /opt/kde/bin/kate
tanto per fare una prova, ottengo fra le altre dipendenze la seguente:

Codice: Seleziona tutto

libutil.so.1 => /lib/tls/libutil.so.1 (0xb735b000)
vado a vedere ed ottengo:

Codice: Seleziona tutto

utente@laptop:~$ ls -l /lib/tls/libutil.so.1
lrwxr-xr-x  1 root root 16 2005-10-16 20:58 /lib/tls/libutil.so.1 -> libutil-2.3.5.so*
continuando, risolvo il link:

Codice: Seleziona tutto

utente@laptop:~$ readlink -f /lib/tls/libutil.so.1
/lib/tls/libutil-2.3.5.so
vado a vedere di nuovo ed ottengo:

Codice: Seleziona tutto

utente@laptop:~$ ls -l /lib/tls/libutil-2.3.5.so
-rwxr-xr-x  1 root root 12420 2005-09-10 22:05 /lib/tls/libutil-2.3.5.so*
dunque si tratta di un "file vero e proprio" che potrebbe essere rimosso conoscendo il tgz da cui è stato installato... il problema è che non esiste in nessun tgz! o meglio non esiste:

/lib/tls/libutil-2.3.5.so

mentre esiste:

Codice: Seleziona tutto

utente@laptop:~$ grep libutil /var/log/packages/*
/var/log/packages/glibc-2.3.5-i486-5:lib/tls/incoming/libutil-2.3.5.so
/var/log/packages/glibc-2.3.5-i486-5:lib/incoming/libutil-2.3.5.so
/var/log/packages/glibc-2.3.5-i486-5:usr/lib/libutil.a
/var/log/packages/glibc-solibs-2.3.5-i486-5:lib/tls/incoming/libutil-2.3.5.so
/var/log/packages/glibc-solibs-2.3.5-i486-5:lib/incoming/libutil-2.3.5.so
ovvero il file è contenuto in 2 pacchetti diversi ed in entrambi i casi risulta situato in un'altra directory!! (che fra l'altro non esiste... magari è eliminata durante l'installazione oh...)

che succede??? mi si è incasinato tutto con l'upgrade da 10.1 a 10.2 o ci sono alcune cose che dovrei sapere ma ignoro??

grazie,
M.

Inviato: mar 1 nov 2005, 11:14
da venerdi_12
Il perché credo sia da cercare nei doinst.sh di glibc e/o glibc-solibs. Penso che i files in /lib/tls vengano creati solo dopo l'installazione dei pacchetti copiando quelli in /lib/incoming/tls (ceh vengono poi cancellati)

Inviato: mar 1 nov 2005, 13:39
da absinthe
già lo penso anche io, però se uno volesse eliminare il pacchetto come fa???
cioè: me ne guardo bene da eliminare le glibc però se dessi

removepkg glibc

che mi eliminerebbe??? lo chiedo e non lo provo perchè prevedo un macello a toglierle di mezzo :D

M.

Inviato: mar 1 nov 2005, 14:26
da useless
avevo già iniziato io a scrivere uno script del genere (in TCL), ed effettivamente funzionicchia, xò devi sapere un po' il fatto tuo in casi come questi, ed evitare di rimuovere alla cieca tutti i pkg che ti suggerisce. se lo vuoi te lo passo.

Inviato: mar 1 nov 2005, 16:01
da absinthe
useless ha scritto:avevo già iniziato io a scrivere uno script del genere (in TCL), ed effettivamente funzionicchia, xò devi sapere un po' il fatto tuo in casi come questi, ed evitare di rimuovere alla cieca tutti i pkg che ti suggerisce. se lo vuoi te lo passo.
bhè per adesso voglio "sfidare" la bash!!! comunque mi segno la proposta. Riguardo al rimuovere pacchetti: mi rendo conto dei miei limiti :)
per adesso lo script si limita ad elencare i pacchetti delle dipendenze ma non lancia ancora nessun removepkg! crea solo un elenco dei "papabili" alla rimozione :)
il passo successivo (quando funzionerà) sarà fare un elenco dei pacchetti di tutti i files con un confronto incrociato che isoli tutti e soli i pacchetti impiegati da un dato file.

tra l'altro stavo per aprire un nuovo post ma forse è meglio chiederlo qua...
ldd non valuta le dipendenze multiple vero? tipo:

X dipende da a.so che dipende da b.so
se lancio:

ldd X

ottengo solo a.so mentre rimango ignaro di b.so...

o dio vuole che non sia così?

M.

PS: credo di poterti insegnare poco, però se un giorno arriverò alla conclusione potrebbe essere interessante fare un confronto tra i codici :)... mi sà che imparo di più io ehehehe.....

Inviato: mar 1 nov 2005, 20:12
da Paoletta
X dipende da a.so che dipende da b.so
se lancio:

ldd X

ottengo solo a.so mentre rimango ignaro di b.so...
già, ma puoi sempre lanciare ldd su a.so, in modo ricorsivo

Inviato: mer 2 nov 2005, 17:52
da absinthe
Paoletta ha scritto: già, ma puoi sempre lanciare ldd su a.so, in modo ricorsivo
infatti... era quello che "temevo" :)

M.