Come posso incaricare yum di installare una versione specifica del pacchetto X?


226

Se sono disponibili due (o più) versioni di un determinato RPM in un repository YUM, come posso istruire yuml'installazione della versione che desidero?

Guardando attraverso il servizio di compilazione Koji noto che ci sono diverse versioni.

    ss # 1

Risposte:


310

Per vedere quali versioni particolari sono disponibili tramite yumte puoi usare l' --showduplicatesinterruttore. Ti dà un elenco come "nome pacchetto. Versione architettura":

$ yum --showduplicates list httpd | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
 * fedora: mirror.steadfast.net

Available Packages
httpd.x86_64                        2.4.6-6.fc20                         fedora 
httpd.x86_64                        2.4.10-1.fc20                        updates

Per quanto riguarda l'installazione di una versione particolare? È possibile aggiungere le informazioni sulla versione al nome del pacchetto, rimuovendo il nome dell'architettura, in questo modo:

$ sudo yum install <package name>-<version info>

Ad esempio, in questo caso, se volessi installare la versione precedente, 2.4.6-6 farei quanto segue:

$ sudo yum install httpd-2.4.6-6

È inoltre possibile includere le informazioni sulla versione quando si specifica un pacchetto. In questo caso, dato che ho a che fare con Fedora 20 (F20), le informazioni sulla versione sarebbero "fc20" e anche le informazioni sull'architettura.

$ sudo yum install httpd-2.4.6-6.fc20
$ sudo yum install httpd-2.4.6-6.fc20.x86_64

repoquery

Se non sei sicuro di costruire correttamente gli argomenti, puoi consultare repoqueryanche tu .

$ sudo yum install yum-utils  # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*
httpd-0:2.4.6-6.fc20.x86_64
httpd-0:2.4.10-1.fc20.x86_64

download e installazione

È inoltre possibile utilizzare una delle seguenti opzioni per scaricare un determinato RPM dal Web, quindi utilizzare yumper installarlo.

$ yum --downloadonly <package>
-or-
$ yumdownloader <package>

E quindi installarlo in questo modo:

$ sudo yum localinstall <path to rpm>

Cosa succede se desidero scaricare tutto ciò che il pacchetto X richiede?

$ yumdownloader --resolve <package>

Esempio

$ yumdownloader --resolve vim-X11
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
--> Running transaction check
---> Package vim-X11.x86_64 2:7.3.315-1.fc14 set to be reinstalled
--> Finished Dependency Resolution
vim-X11-7.3.315-1.fc14.x86_64.rpm                              | 1.1 MB     00:01

Notare che sta eseguendo un controllo delle dipendenze e quindi sta scaricando i pezzi mancanti. Vedi la mia risposta che lo copre in maggiori dettagli qui: Come scaricare un file dal repository e installarlo in seguito senza connessione a Internet? .

Riferimenti


1
Non penso che funzioni per i pacchetti tra l'ultima versione individuata @updatese la versione iniziale per il sistema operativo individuato @fedora. Ad esempio, se si tenta di installare httpd-2.4.8-1, yumsi direbbe pacchetto non disponibile.
Domanda Overflow del

@QuestionOverflow - non seguito. Quella versione non viene mostrata come disponibile nel repository.
slm

1
Vorrei riprovare con un esempio reale dal mio registro di yum. python-libs-2.7.5-12.fc20.x86_64una volta era installato sul mio computer ma da allora è stato sostituito. Supponendo ora che vorrei installare questo pacchetto specifico, yumdownloader python-libs-2.7.5-12*direi No Match for argument python-libs-2.7.5-12* Nothing to download. Quello che sto cercando di dire è che una volta arrivato un nuovo pacchetto, quello vecchio non sarebbe più accessibile da yum. È possibile installare solo l'ultimo pacchetto o la versione iniziale, ma non le versioni intermedie.
Domanda Overflow

2
@QuestionOverflow - In quello scenario penso che devi usare yum downgrade ...se il pacchetto era già installato e stai tentando di tornarci più tardi. Nel mio QI stavo tentando di mostrare come si selezionasse a mano una versione particolare di un pacchetto che non era stato ancora installato. docs.fedoraproject.org/en-US/Fedora/14/html/…
slm

No, non funziona anche durante l'aggiornamento a un pacchetto specifico. Ho sperimentato questo con una nuova installazione solo pochi giorni fa. Puoi solo aggiornare all'ultimo pacchetto e non qualsiasi versione desideri.
Domanda Overflow

6

Un'altra opzione, è possibile scaricare il rpmfile quindi istruire yuma fare un localinstall:

yum localinstall /path/to/package.rpm

Un buon posto per ottenere i pacchetti necessari è rpmfind.com e cercare il nome del pacchetto.


Esiste un URL che contiene la maggior parte, se non tutte, le versioni dei file rpm?
Domanda Overflow del

@QuestionOverflow: rpmfind.net
cuonglm,

4
C'è anche yum --downloadonly <package>, seguito anche da yum localinstall <path to package>. Puoi anche usare anche l'utilità yumdownloader <package>.
slm

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.