Saya memiliki satu server dengan konektivitas bersih, di mana saya dapat menggunakan "yum install $ PACKAGE".
Saya ingin beberapa perintah yum, yum cache-rpms $PACKAGE $DIRECTORY
seperti agar semua file RPM yang diperlukan akan diunduh ke $ DIRECTORY, yang juga akan memiliki file ( Install.sh
) yang menyatakan urutan untuk menginstal RPM ini, pada banyak server lain tanpa konektivitas bersih.
Install.sh
bahkan mungkin skrip shell, yang memiliki perilaku yang sama seperti yum install $PACKAGE
, kecuali bahwa itu tidak akan menggunakan jaringan, tetapi hanya akan digunakan $DIRECTORY
.
Mungkin?
Saya mencari solusi umum di mana yum dan RPM tersedia, tetapi untuk spesifisitas: Ada pada set server CENTOS 6.7.
Jawaban:
Berikut adalah contoh spesifik menggunakan "httpd" sebagai paket untuk mengunduh dan menginstal. Proses ini diuji pada CentOS6 dan CentOS7.
Instal barang-barang yang Anda butuhkan dan buat tempat untuk meletakkan RPM yang diunduh:
Unduh RPM. Ini menggunakan trik installroot yang disarankan di sini untuk memaksa unduhan penuh semua dependensi karena tidak ada yang diinstal di root kosong itu. Yum akan membuat beberapa metadata di sana, tetapi kita akan membuang semuanya. Perhatikan bahwa untuk CentOS7
releasever
akan menjadi "7".Ya, itu versi kecilnya. Anda seharusnya melihat ukuran unduhan repo penuh!
Hasilkan metadata yang diperlukan untuk mengubah tumpukan RPM baru kami menjadi repo YUM dan membersihkan hal-hal yang tidak lagi kami butuhkan:
Konfigurasikan direktori unduhan sebagai repo. Perhatikan bahwa untuk CentOS7, gpgkey akan dinamai "7" bukan "6":
Untuk memeriksa dependensi yang hilang:
Saya belum tahu mengapa pada CentOS7 ini melaporkan hal-hal seperti
libssl.so.10(libssl.so.10)(64bit)
hilang darihttpd-tools
kapanopenssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(penyedia perpustakaan itu) jelas ada di direktori. Namun, jika Anda melihat sesuatu yang jelas hilang, ini mungkin kesempatan baik untuk kembali dan menambahkannya menggunakanyum install --downloadonly
metode yang sama di atas.Saat offline atau setelah menyalin
/var/tmp/httpd
direktori repo ke server lain atur repo di sana:Semoga tidak ada dependensi yang hilang!
sumber
Sepertinya Anda menanyakan
yumdownloader
yang termuat dalam paketyum-utils
. Sudah ada beberapa pertanyaan dan jawaban tentang ini, lihat mis. Unduh semua dependensi dengan yumdownloader, bahkan jika sudah diinstal? atau Bagaimana cara menemukan paket URL dengan Yum?yumdownloader
akan mengunduh paket, meskipun tidak akan menghasilkan fileInstall.sh
karena pesanan dapat ditentukan oleh yum sendiri, sehingga Anda dapat menginstal paket pada kotak target melaluiyum install ./*rpm
folder dengan paket yang Anda unduh (yang perlu menyertakan semua dependensi dibandingkan dengan instalasi dasar - lihat tautan pertama di atas mengenairepotrack
)sumber
Saya membutuhkannya beberapa kali, jadi saya otomatis menjawab @Steve Bonds. Pastikan Anda mendefinisikan
PKG
sebagai paket untuk menginstal pada kedua mesin (Penafian: untuk CentOS 7. Untuk CentOS 6, ubah--releasever
danCentOS-7
tempatkan.mesin online
di mesin offline:
sumber
-y
perintah terakhir untuk mengonfirmasi pemasangan paket ketika dijalankan di latar belakang.