Bagaimana saya bisa menginstruksikan yum untuk menginstal versi tertentu dari paket X?

226

Jika ada dua (atau lebih) versi RPM tertentu yang tersedia di repositori YUM, bagaimana saya bisa menginstruksikan yumuntuk menginstal versi yang saya inginkan?

Melihat melalui layanan Koji build saya perhatikan ada beberapa versi.

    ss # 1

slm
sumber

Jawaban:

310

Untuk melihat versi tertentu apa yang tersedia untuk Anda melalui yumAnda dapat menggunakan --showduplicatessaklar. Ini memberi Anda daftar seperti "versi paket nama. Versi arsitektur":

$ 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

Sejauh memasang versi tertentu? Anda dapat menambahkan info versi ke nama paket, menghapus nama arsitektur, seperti:

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

Sebagai contoh dalam hal ini jika saya ingin menginstal versi yang lebih lama, 2.4.6-6 Saya akan melakukan yang berikut:

$ sudo yum install httpd-2.4.6-6

Anda juga dapat memasukkan info rilis saat menentukan paket. Dalam hal ini karena saya berurusan dengan Fedora 20 (F20) info rilis akan menjadi "fc20", dan info arsitektur juga.

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

repoquery

Jika Anda tidak yakin bahwa Anda membangun argumen dengan benar, Anda juga dapat berkonsultasi dengannya repoquery.

$ 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

mengunduh & menginstal

Anda juga dapat menggunakan salah satu opsi berikut untuk mengunduh RPM tertentu dari web, dan kemudian gunakan yumuntuk menginstalnya.

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

Dan kemudian instal seperti ini:

$ sudo yum localinstall <path to rpm>

Bagaimana jika saya ingin mengunduh semua yang dibutuhkan paket X?

$ yumdownloader --resolve <package>

Contoh

$ 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

Perhatikan itu sedang melakukan pemeriksaan dependensi, dan kemudian unduh bagian yang hilang. Lihat jawaban saya yang mencakup lebih detail di sini: Bagaimana cara mengunduh file dari repo, dan menginstalnya nanti tanpa koneksi internet? .

Referensi

slm
sumber
1
Saya tidak berpikir itu berfungsi untuk paket-paket antara versi terbaru yang terletak @updatesdan versi awal untuk OS yang terletak @fedora. Misalnya jika Anda mencoba menginstal httpd-2.4.8-1, yumakan mengatakan paket tidak tersedia.
Pertanyaan Overflow
@QuestionOverflow - tidak mengikuti. Versi itu tidak ditampilkan sebagai tersedia di repo.
slm
1
Biarkan saya coba lagi dengan contoh nyata dari yum log saya. python-libs-2.7.5-12.fc20.x86_64pernah diinstal pada komputer saya tetapi sejak itu telah diganti. Dengan asumsi sekarang saya ingin menginstal paket spesifik ini, yumdownloader python-libs-2.7.5-12*akan mengatakan No Match for argument python-libs-2.7.5-12* Nothing to download. Yang ingin saya katakan adalah bahwa begitu paket baru tiba, yang lama tidak akan lagi dapat diakses dari yum. Anda hanya dapat menginstal paket terbaru atau versi awal, tetapi bukan versi di antaranya.
Pertanyaan Overflow
2
@QuestionOverflow - Dalam skenario itu saya pikir Anda harus menggunakan yum downgrade ...jika paket sudah diinstal dan Anda mencoba untuk kembali lagi nanti. Dalam QI saya sedang berusaha menunjukkan bagaimana seseorang akan memilih versi tertentu dari paket yang belum diinstal. docs.fedoraproject.org/en-US/Fedora/14/html/…
slm
Tidak, itu tidak berfungsi bahkan ketika meningkatkan ke paket tertentu. Saya telah melakukan percobaan dengan instalasi baru beberapa hari yang lalu. Anda hanya dapat memperbarui ke paket terbaru dan bukan versi apa pun yang Anda inginkan.
Pertanyaan Overflow
6

Opsi lain, Anda dapat mengunduh rpmfile kemudian menginstruksikan yumuntuk melakukan localinstall:

yum localinstall /path/to/package.rpm

Tempat yang baik untuk mendapatkan paket yang Anda butuhkan adalah rpmfind.com dan cari nama paket tersebut.

cuonglm
sumber
Apakah ada URL yang berisi sebagian besar jika tidak semua versi file rpm?
Pertanyaan Overflow
@QuestionOverflow: rpmfind.net
cuonglm
4
Ada juga yum --downloadonly <package>, diikuti yum localinstall <path to package>juga. Anda juga dapat menggunakan utilitas ini yumdownloader <package>.
slm
0

Anda juga dapat menggunakan perintah opsi:

yum install --nogpgcheck pckg-name-version   
Guillermo Castellon
sumber