Apakah ada cara untuk mengunduh semua dependensi dengan yumdownloader, walaupun sudah diinstal?
Saya mencoba membuat repo lokal dan hanya ingin memasukkan paket yang kami butuhkan.
yum
repository
Luke
sumber
sumber
--requires
--resolve
tidak bekerja secara rekursif untuk deps.--recursive
opsi ke perintah repoquery untuk membuatnya bekerja secara rekursif.yum-utils
proyek hulu . Alasan mengapa ia mengunduh lebih banyak paket dari yang diharapkan adalah karena fungsirpmUtils.arch.getArchList()
mengembalikan semua arsitektur yang kompatibel untuk yang diberikan. Ini termasuk misalnyanoarch
arsitektur yang mungkin dibutuhkan olehx86_64
paket. Anda dapat memeriksa sumbernya: yum.baseurl.org/gitweb?p=yum.git;a=blob;f=rpmUtils/…Untuk informasi semua orang,
yumdownloader
jangan lakukan pekerjaan itu. Bagi siapa pun yang memiliki pengalaman dalam manajemen paket dengan `yum, adalah wajar untuk mengharapkan bahwa perintah-baris berikut akan mengunduh RPM paket dan semua ketergantungannya secara rekursif:Tapi ternyata tidak. Mungkin itu mencetak dependensi tingkat pertama atau yang belum diinstal. Saya tidak yakin.
Berikut adalah salah satu metode yang bekerja pada CentOS 6.5. Ikuti langkah-langkah untuk menginstal plugin unduh hanya
yum
seperti yang diberikan oleh Red Hat . Pada dasarnya, pada CentOS 6.x, lakukan:Kemudian gunakan plugin dalam kombinasi dengan
--installroot
sakelaryum
. Ini mencegahyum
dari menyelesaikan dan kemudian melewatkan dependensi yang sudah diinstal pada sistem.Anda akan mengunduh RPM paket,
<package>
dan semua dependensinya di direktori<rpm_dir>
,. Contoh, dengan Git:sumber
sudo yum install yum-plugin-downloadonly.noarch
mengatakanNo package yum-plugin-downloadonly.noarch available.
apa yang harus dilakukan?yum search yumdownloader
kembaliyum-utils.noarch
Cannot find a valid baseurl for repo: base/$releasever/x86_64
ketika saya menambahkan--installroot
bendera.Cannot find a valid baseurl...
masalah pada Centos 7 dengan solusi pada tautan ini : Tambahkan--releasever=/
parameterSaya menyadari utasnya sudah tua, tetapi jika ada orang yang menemukan ini, Anda dapat menggunakan yum untuk menyelesaikan perilaku yang diinginkan.
Pertama instal plugin unduh saja (instruksi untuk RHEL): (RHEL5)
(RHEL6)
Selanjutnya jalankan perintah sebagai berikut:
Jika Anda mengabaikan
--downloaddir
yum akan secara otomatis diunduh ke/var/cache/yum
Jadi kecuali Anda perlu menggunakan yumdownloader secara khusus, saya pikir ini akan menjadi cara paling sederhana untuk mencapai tujuan.
sumber
Jika Anda dari masa depan (Fedora 23+), di mana yum diganti dengan dnf, Anda mungkin menemukan skrip bash ini bermanfaat.
rpmDownloader:
rpmResolver:
sumber
Saya menemukan bahwa dalam praktek membangun repo seperti ini sulit untuk dipertahankan. Kami membangun repo ini karena:
Masalah yang bisa kami temui adalah:
Pada akhirnya solusi yang lebih baik untuk masalah kami adalah dengan mem-proxy repo resmi dan menyimpan paket yang kami gunakan. Ini bekerja dengan baik karena:
Kami menggunakan Nginx dan dukungan proxy bawaan.
sumber
Membangun jawaban Luke dan komentarnya ...
Pada tulisan ini
repotrack
akan cocok dengan semua arsitektur berikut ketikax86_64
ditentukan:x86_64
,athlon
,i686
,i586
,i486
,i386
, dannoarch
.Untuk tujuan saya, saya hanya tertarik pada
x86_64
dannoarch
paket, dan saya tahu bahwa distribusi saya tidak memilikiathlon
paket.Perintah berikut mendapatkan daftar URL paket, memfilter
i?86
arsitektur, dan mencetak nama paket saat diunduh:Catatan yang
repotrack
tidak memperingatkan Anda jika tidak dapat menemukan paket yang memenuhi ketergantungan pada repo Anda yang diaktifkan. Diam-diam melewatkannya.sumber
Juga coba
misalnya:
Sumber: https://www.thegeekdiary.com/downloading-rpm-packages-with-dependencies-yumdownloader-vs-yum-downloadonly-vs-repoquery/
sumber