linux user group brescia

immagine del castello

Archivio della mailing list

R: Man in error

Gabriele Villi gvilli a iol.it
Mer 25 Ott 2000 09:28:23 UTC
>From: "Luca Coianiz" <lcoianiz a w3.to>
>To: "marco ghidinelli" <marcogh a atdot.org>, <lug a lugbs.linux.it>
>Subject: R: Man in error
>Date: Tue, 24 Oct 2000 03:11:34 +0200
>X-Mailer: Microsoft Outlook Express 5.00.2615.200
>Sender: owner-lug a lugbs.linux.it
>Reply-To: "Luca Coianiz" <lcoianiz a w3.to>, lug a lugbs.linux.it
>X-Loop: lug a lugbs.linux.it
>X-Subliminal: Support FSF and GNU project!
>



>  Io ho (purtroppo) installato tutto tramite YAST, che gestisce direttamente
>i pacchetti RPM e ogni volta che devo installare qualcosa NON compresa nella
>distro che ho su CD (quindi non necessariamente pacchetti RPM, anzi... quasi
>mai) mi vengono i vermi, essenzialmente per due ragioni:
>
>1) come fare a verificare i prerequisiti d'installazione ? (YAST lo fa per i
>cavoli suoi... sui suoi CD)

Io ti so dire qualcosa per quanto riguarda i pacchetti rpm e tgz, per gli 
altri tipi (es deb) non so.

man rpm
guardati le opzioni  di query, in particolare -R  --whatrequires

Nei tgz dovresti invece trovare un readme o simile con l'elenco dei 
requisiti richiesti.

>  Dove cavolo riesco a vedere se HO installato glibc-v2.1.0,a-c*b ecc. ecc. ?
>  Pazienza per i programmi, ai quali spesso basta dare il comando -version,
>ma come si fa a verificare la versione delle librerie (e, spesso, anche a
>trovarle) ?


convenzionalmente il nome della libreria ti da indicazioni anche sul tipo e 
sulla versione
esempio libtermcap.so.2.0.8 e' la libreria dinamica (.so) termcap versione 
2.0.8 mentre libpam_misc.a e' la libreria statica (.a) pam_misc.
Strumenti utili sono ldconfig -p per le librerie dinamiche e rpm --query -f 
nomefile per tutti i file. Ad es sul mio sistema


[gv a mail]# ldconfig -p | fgrep libc.
         libc.so.6 (libc6) => /lib/libc.so.6
         libc.so.5 (libc5) => /usr/i486-linux-libc5/lib/libc.so.5
[gv a mail]# rpm --query -f libpam_misc.a
pam-0.68-7
[gv a mail]# rpm --query -f libtermcap.so.2.0.8
libtermcap-2.0.8-18

E ancora
[gv a mail]# rpm --query -a | fgrep libc
glibc-profile-2.1.2-11
libc-5.3.12-31
glibc-2.1.2-11
compat-glibc-5.2-2.0.7.1
glibc-devel-2.1.2-11

>2) una volta che sono (miracolosamente) riuscito ad installare... come
>faccio, se mi va, a disinstallare (magari a distanza di tempo) SENZA
>compromettere l'integrità (sacra) del sistema ? [....]
>  In windoze uso CleanSweep, che mi controlla i "prerequisiti" di
>disinstallazione (ad es. NON rimuove librerie usate da altri prodotti anche
>se sono state installate tramite quello che voglio rimuovere) ma in Linux
>esiste qualcosa tipo Make uninstall ?
>[...]
>  Daltronde non credo nemmeno che basti semplicemente andare un
>/usr/local/newproduct e cancellare l'intera directory (come facevo con Dos)
>data la struttura "sparsa" che si usa in ambienti **ux:
>- dove vanno a finire [...]
> > installare/disinstallare un pacchetto e' una cosa che faccio ogni giorno:
> > es: mi serve un server web per provare 3 stronzate? lo installo.
> > dopo 10 minuti non mi serve piu'?
>  [...] il dubbio che, una
>volta disinstallato qualcosa, il sistema sia meno stabile di prima (perchè
>magari gli ho cancellato qualcosa che invece serviva).

Secondo me il problema va affrontato da un punto di vista piu' generale e 
cioe': quanto e' "sacra" l'integrita' del tuo sistema? Io installo e 
disinstallo spessissimo sia a casa che in ufficio. A casa la mia macchina 
e', tecnicamente parlando, un vero casino. In ufficio ho una macchina 
apposta sulla quale posso anche permettermi di distruggere tutta 
l'installazione. Non mi passa nemmeno per l'anticamera del cervello di fare 
esperimenti sui server aziendali. E questo vale per linux, per win
e per ogni altra diavoleria che dovesse venir fuori. Se c'e' qualcosa di 
nuovo da provare lo si fa su un muletto, MAI su macchine il cui fermo sia 
oneroso in termini economici. Se proprio sono costretto ad usare una 
macchina "preziosa" faccio un bel backup e prima di fare qualsiasi 
operazione piu' complessa di ls ci penso tre volte (e per me e' una vera 
impresa gia' pensare una volta sola, figurati tre!)

Venedo alle tue domande specifiche:

Se il pacchetto ti viene dato in forma rpm, deb o simili il relativo 
programma di gestione fornisce anche le opzioni per disinstallare il tutto 
(es rpm --uninstall). Se il pacchetto ti arriva in forma tar.gz se sei 
fortunato trovi o un makefile con l'opzione uninstall o uno script oppure 
istruzioni nei readme o doc. Se non le trovi puoi guardare cosa fa il 
processo di installazione  e procedere al contrario. Se non c'e' neanche 
uno script (o simile) di installazione probabilmente il pacchetto e' 
talmente semplice che puoi rimuovere a mano i file. In ogni caso prima di 
cancellare definitivamente i file e' buona politica invocare l'aiuto dei 
tre santi: Santa Prudenza, San Buon Senso e San Backup, ad esempio 
spostando in una directory temporanea (magari su un'altra macchina) 
preservando la struttura e permessi (ad es sposta /usr/local/bin/makemoney 
in /home/luca/quarantena/usr/local/bin/makemoney). Per queste cose spesso 
viene molto utile il tar e le sue (n+1)! opzioni.


Le conversioni tra tipi di pacchetto sono possibili (almeno da/a tgz)

rpm2targz
rpm2cpio
rpm -b
rpm -t

Per i debian, invece, mi pare che si possano scompattare/creare con ar. 
Ovviamente la semplice scompattazione e' (o meglio, penso che sia) piu' 
semplice che non la creazione.
Io uso con una certa frequenza rpm2targz perche' sono curioso :) Cosi' 
riesco anche a vedere dove diavolo vanno a finire i file!

Da ultimo, anche se l'architettura unix ti sembra "sparsa" secondo me e' 
comunque meglio organizzata di quella win. Ci sono dei posti convenzionali 
dove mettere i file (se guardi l'archivio del lug trovi messaggi in cui 
questo argomento e' gia' stato affrontato) e non hai bisogno (leggi: sei 
ostaggio) di strumenti di gestione particolari (es regedit, user manager e 
via dicendo). Inoltre e' tutto documentato. Devi solo aver piu' pazienza 
all'inizio.

ciao
gv














Maggiori informazioni sulla lista Lug