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 ...
sumber
Jawaban:
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 ...
sumber
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)
sumber
Jika Anda tidak bisa mendapatkan mesin "bersih", Anda harus mencari bagian yang hilang secara manual dengan
yum provides
atauAnda 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.sumber