Newsgroup: it.comp.os.linux.iniziare
Titolo: rpm: come trovare il pacchetto richiesto

Quando cerco di installare un pacchetto usando rpm, se rpm mi
restituisce un errore perchč il pacchetto richiede una libreria, mi
piacerebbe avere una procedura automatica che mi restituisca
immediatamente il nome del pacchetto (non installato) che contenga la
risorsa richiesta (come fa rpmdrake, per esempio).
Per adesso non ho saputo che ripiegare su uno script che ho scritto,
sicuro che non si tratti della soluzione piů intelligente:
for i in `find $1  -iname "*.rpm"`
{
	rpm -qp --provides  $i|grep -i $2 > /tmp/prov
	if [ -s /tmp/prov ]
	then
	 echo "Trovato in " $i
	fi
	rm -f /tmp/prov
}
Lanciandolo con
$prov /dev/mnt/cdrom/Redhat/RPMS libY.so.o
riesce effettivamente a darmi la risposta giusta. Al di la' del fatto
che non mi piace aver dovuto usare un file temporaneo (come avrei
potuto verificare se grep trovava almeno un'occorrenza? Non ho provato
con grep -c, ma comunque il tutto mi piace poco), non c'č un modo meno
cervellotico?
Grazie mille. Ciao!
-- 
Topoldo  
www.pianetalinux.com
(Grazie a Dio, sono ateo)

 risorsa richiesta (come fa rpmdrake, per esempio).
Giorni fa ho provaro a lanciare l'Rpm della patch strumentale di Timidity
con il comando
rpm -i nomepacchetto.rpm
mi ha subito informato che avrei dovuto installare almeno timidity 2.7
Si tratta piů o meno di questo?
Ciao
Mauro

Si tratta più o meno di questo?
Non esattamente. In quel caso non era difficile immaginare che il
pacchetto da installare era timidity-2.7.i386.rpm
Metti che invece ti avesse segnalato
Can't install the package.
libkirt.3.so.o is needed
La domanda è: quale pacchetto contiene libkirt.3.so.o? Non il
pacchetto libkirt.3.i386.rpm, che non esiste. Purtroppo i nomi forniti
da rpm non sono i nomi dei file, altrimenti si sarebbe riparato
tranquilalmente con un 
rpm -qp --filesbypkg /mnt/cdrom/Redhat/RPMS/* | grep -i libkirt.3.so.o
L'opzione che fornisce l'informazione giusta è --provide, che però
lanciato con
rpm -qp --provide /mnt/cdrom/Redhat/RPMS/* | grep -i libkirt.3.so.o
non mi restituisce il nome del pacchetto su cui la ricerca ha
successo. Lo script che avevo postato risolveva questo problema, ma
speravo in una soluzione più elegante.


 La domanda è: quale pacchetto contiene libkirt.3.so.o?
Avendo io la Mandrake 7.1, e non avendo mai usato Linux fino a 2 settimane fa
(quindi i comandi che mi hai descritti non  li conosco e faccio quasi tutto
con l'interfaccia), sono ricorso in situazioni simili all'RpmDrake, l'utility
che ti da il display del software listato per categoria -con nome e
descrizione- che non è stato incluso inizialmente nell'installazione ma
residente sul CD principale e gli altri 2 aggiuntivi, sottoforma di pacchetti
rpm facilmente utilizzabili (basta cliccare su "installa").
Tu dirai "bella forza!", e hai ragione, ma per il momento "tiro a campa' ".
Anzi, troppo ho fatto.......;-)
Ciao
Mauro


Ciao
Penso che rpmdrake sia un ottimo prodotto, e quando posso lo uso
volentieri. Non ti nascondo che trovo spesso più comodo usare la linea
di comando. Ma, diciamo, il problema lo posso risolvere usando
rpmdrake, ma mi rimane sempre il dubbio di come rpmdrake faccia a
ricavare quelle informazioni.
Ho in preparazione un articolo su rpm e sull'installazione di software
su Linux, e l'informazione richiesta mi serviva anche per la
completezza dell'articolo. Usare rpm a linea di comando è più semplice
di quello che potrebbe sembrare. Se vuoi, appena sarò online ti
segnalo l'URL :)
A proposito: mi piacerebbe aggiungere all'articolo anche due righe
sull'installazione dei pacchetti .deb e su dselect. C'è qualche
volontario disposto a buttare giù una paginetta?
Ciao!
-- 
