Unduh SEMUA rpms untuk suatu produk

8

Saya memiliki dua mesin CentOS, satu kotak 6.3 ( A ), dan satu lagi CentOS 6.1. ( B )

Kotak 6.3 dengan koneksi internet, 6.1 kotak tanpa koneksi internet.

Saya ingin mengunduh SEMUA ketergantungan produk pada Kotak A, lalu menyalinnya di Kotak B, dan menginstal produk.

Saya mencoba

yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*`
cd *~/downloadrepo*
createrepo .

Kemudian saya menonaktifkan semua repo (dengan --disablerepo), kecuali repo saya, dan menginstal produk pada mesin yang sama (Kotak A). Tidak ada kesalahan

  • yum install *product*

Sekarang ketika saya menyalin repo ini ke Kotak B, dan mencoba menginstal dengan perintah yang sama, ia mulai menginstal, tetapi kemudian memberikan banyak kesalahan seperti di bawah ini:

Galat: Ketergantungan yang Hilang: libldap-2.3.so.0 () (64bit) diperlukan oleh paket php-ldap-5.1.6-27.el5_5.3.x86_64 (diinstal)

Apakah ada cara saya dapat mencapai apa yang saya butuhkan?

MEMPERBARUI

Pada saat saya mulai bekerja dengan opsi yang disarankan oleh @rkosegi ( --releasever = versi ), saya diberi kotak baru dengan versi yang sama CentOS 6.1 ( C )

Saya mencoba perintah yang disebutkan di atas pada Kotak C, dan menyalin repo ke Kotak B. Masih gagal. Alasannya: meskipun kedua kotak 6.1, mereka tidak identik ( uname -r mengembalikan string yang berbeda).

Yum tidak mengunduh dependensi, jika sudah diinstal. Jadi repo saya tidak mengandung beberapa dependensi (termasuk OpenJDK). Jadi, ketika saya mencoba menginstal di Kotak B, gagal.

Cukup frustasi !!!

Namun kemudian saya menemukan perintah ' mereprack ' di sini .

cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .

Saya mendapat lebih banyak file daripada dengan yum, semoga akan melakukan trik.

Saya akan memperbarui, begitu saya mencoba menginstal.

MEMPERBARUI

Merepot perintah tidak bekerja untuk saya. Ketika saya mencoba menginstal dari repositori yang dibuat dengan 'mereprack', ada beberapa kesalahan berikut:

Error: Package: perl-CGI-3.51-127.el6.x86_64 (repo-local)
       Requires: perl = 4:5.10.1-127.el6
       Installed: 4:perl-5.10.1-119.el6_1.1.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           perl = 4:5.10.1-119.el6_1.1
Error: Package: audit-libs-python-2.2-2.el6.x86_64 (repo-local)
       Requires: audit-libs = 2.2-2.el6
       Installed: audit-libs-2.1.3-3.el6.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           audit-libs = 2.1.3-3.el6

Saya mencoba menghapus dua file ini dari folder, dan membangun kembali repositori dengan 'createrepo'. Itu memberi satu set kesalahan.

Tidak yakin opsi apa yang saya miliki saat ini ...

Atul Acharya
sumber
Tidak ada CentOS "6.1". itu hanya CentOS 6 yang terbaru saat RHEL 6.1 terpotong, mungkin dengan banyak pembaruan sejak itu.
vonbrand

Jawaban:

1

Jika Anda harus sering melakukan ini, Anda mungkin ingin meluangkan waktu untuk mengatur Spacewalk . Ini akan secara otomatis membuat repositori dan mengisinya dengan paket yang sesuai (atau, jika Anda mau, semuanya). Belum lagi segala sesuatu yang ...

Michael Hampton
sumber
0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

Anda perlu menginstruksikan yum untuk mengunduh dari repositori versi yang sama dengan mesin target (6.1)

Juga pastikan Anda perlu memastikan, bahwa mesin (6.3) yang akan melakukan unduhan belum menginstal beberapa dependensi yang hilang pada mesin target (6.1)

rkosegi
sumber
Itu tidak akan berhasil, karena akan mendapatkan paket yang diperlukan untuk menginstal pada sistem itu . Itu bisa menjadi set yang sangat berbeda dari yang diperlukan pada mesin tidak-jaringan (mungkin ketinggalan jaman).
vonbrand
0

Jika Anda tidak bisa mendapatkan mesin "bersih", Anda harus mencari bagian yang hilang secara manual dengan yum providesatau

Anda harus melalui RPM Anda yang sudah ada di repo Anda dan permintaan dependensi mereka: rpm -qp --requires RPM. Jika daftar itu muncul sesuatu yang baru belum menjadi bagian dari repo Anda, Anda harus menambahkannya.

Nils
sumber