Bagaimana cara menginstal paket yang sama persis di komputer lain di openSUSE?

8

Komputer lain bisa juga mesin virtual. Saya tidak dapat membuat klon disk karena perbedaan dan pengaturan perangkat keras.

Saya memiliki komputer A, diinstal dan dijalankan, saya juga memiliki komputer B. Saya akan menginstal OS yang sama pada B, jadi saya akan mendapatkan sistem basis yang sama.

Maka dengan tangan saya akan menambahkan repositori yang sama seperti pada A.

Tetapi tahap terakhir adalah di luar saya - bagaimana cara menginstal paket yang sama seperti pada A? Perhatikan, bahwa versi harus sesuai, tidak hanya nama paket.

Tentu saja saya mencari cara otomatis, bukan instalasi secara manual satu per satu.

Akibatnya saya harus mendapatkan konfigurasi perangkat keras yang sama sekali berbeda, pengaturan bersih (tidak ada kata sandi lama, dll), tetapi pemilihan perangkat lunak yang identik.

Pertanyaan

Bagaimana cara melakukannya?

Latar Belakang

Paket (per versi) tersedia tetapi bukan yang terbaru. Intinya adalah membuat "salinan" dari sistem yang sedang berjalan, memutakhirkan paket pada komputer B (salinan), menguji apakah itu berfungsi, jika ya, kemudian memutakhirkan A. Dengan setiap versi OS baru saya terkena banyak bug regresi, dan Saya harus mengujinya lebih metodis, daripada tes hidup & panik.

openSUSE 11.4

Greenoldman
sumber
Apakah paket komputer A diperbarui ke terbaru dari repo? (Saya meminta itu karena dapat membuat jawaban lebih pendek dan hidup Anda lebih mudah).
Hanan N.
@Hanan N., tidak, itu akan lebih mudah saya tahu, itu sebabnya saya membuat titik tentang versi yang tepat.
greenoldman

Jawaban:

3

Sepertinya Anda harus membangun repositori Anda sendiri.

Masukkan RPM Anda di versi yang Anda inginkan ke dalam repositori itu. Kemudian aktifkan repositori ini di kedua mesin (sebagai sumber instalasi) dan instal paket.

Nils
sumber
Terima kasih, saya tidak menandai ini sebagai solusi (belum), karena mungkin seseorang akan datang dengan pendekatan lain - seperti, buat daftar (rpm -qa) dan instal paket-paket itu dalam versi yang diberikan pada mesin lain. Namun pendekatan Anda lebih baik (unduhan tunggal per paket).
greenoldman
2

Melihat OpenSuse menggunakan RPM, Anda dapat menggunakan rpmutilitas.

rpm -qaakan mencantumkan semua paket yang saat ini diinstal pada sistem Anda (daftar yang sangat panjang). Daftar termasuk nama paket, nomor versi dan arsitektur. Anda dapat menulis daftar ke file dan memberikan file zypper pada sistem baru.

Kemungkinan akan ada beberapa paket yang sudah diinstal secara default, tetapi zypper akan melewatkannya dan menginstal yang Anda butuhkan.

n0pe
sumber
Nah, Anda baru saja menyalin komentar saya sehingga kami setuju dalam gambaran besar, tetapi iblis ada di detail - bagaimana Anda memaksa zypper untuk tidak menginstal paket P, tetapi P-1.23, yaitu dengan versi yang diberikan? Karena ini sangat penting di sini (secara default output rpm TIDAK kompatibel dengan format input zypper).
greenoldman
Sebagai catatan, saya memposting ini sebelum Anda memposting komentar Anda atau Anda mempostingnya ketika saya sedang menulis jawaban saya. Sedangkan untuk zypper, ya Anda bisa menggunakan output rpm -qasebagai input untuk zypper. Ia memahami format paket dengan sangat baik. Saya belum diuji untuk melihat apakah itu mematuhi nomor versi, tetapi sangat tergantung pada apakah repositori memiliki versi yang lebih lama atau tidak. Jika repo tidak, maka tidak banyak yang dapat Anda lakukan.
n0pe
Anda bertentangan dengan diri Anda sendiri, "Saya belum menguji untuk melihat apakah itu mematuhi nomor versi" tetapi "Ini memahami format paket baik-baik saja". Jadi saya mengklarifikasi - tidak mendukung output rpm. Untuk menentukan versi Anda harus menambahkan quantifier, dan ini adalah bagian yang sulit, karena penamaan paket hanya konvensi, itu tidak dipaksakan oleh validator mana pun. Lihat: en.opensuse.org/SDB:Zypper_usage_11.3#Pilih_paket
greenoldman
1

Daftar pertama semua paket yang terinstal dan versi mereka dalam mesin Anda mencoba untuk menciptakan sebuah "clone" dari: rpm -qa > /tmp/rpm.list.txt.

Kemudian salin /tmp/rpm.list.txtke sistem yang Anda coba ubah menjadi "klon" dari sistem lain dan jalankan zypper dan zypper install $(cat /tmp/rpm.list.txt)berikan daftar paket yang baru saja Anda buat: (atau di mana pun Anda meletakkan file yang berisi daftar paket dari sistem sumber) ).

Sami Laine
sumber