Saya ingin mengatur mesin virtual baru dengan beberapa paket tertentu (nama dan versi), yang disediakan.
Misalnya apache2 dalam versi 2.2.20-1ubuntu1
dengan semua dependensi. Bahkan jika ada versi baru dari paket ini di server yang satu ini harus diinstal.
Solusinya harus bekerja / skala dengan beberapa (n) "pengaturan". Mesin virtual lain mungkin membutuhkan versi apache2 yang lebih lama.
Saat ini saya tahu beberapa kemungkinan yang menginstal paket yang tepat, tetapi jangan skala yang baik:
- Salin semua yang diperlukan
*.deb
untuk setiap mesin virtual secara manual dan masukkan:dpkg -i
... -> Bisa bekerja, tetapi sangat rentan kesalahan. (Skrip manual dll.) - Buat dan gunakan repositori Ubuntu baru untuk setiap pengaturan. -> Tidak berfungsi karena saya akan membutuhkan n repositori.
- Atur mesin sekali dan salin VM / buat snapshot. -> Tidak berfungsi karena saya perlu menyimpan n VMs.
Masalah saya bisa dilabeli sebagai manajemen tambalan, tetapi saya tidak ingin memperbarui paket saya ke versi saat ini. Tujuan saya adalah menginstal paket lama.
sumber
apt
"Untuk memeriksa versi mana yang tersedia, Anda dapat memeriksa melalui:
Jika tidak berfungsi, pertimbangkan untuk menjalankan
sudo apt-get update
sebelum memperbarui daftar paket.Kemudian salin versi atau gunakan sintaks berikut:
Untuk memeriksa versi mana yang telah Anda instal, jalankan:
sumber
=2.2\*
opsi sebagai cara untuk menggunakan wildcard untuk memilih subversi yang tersedia. Itulah yang ingin saya ketahui tetapi tidak tahu bagaimana bertanya :)dpkg -l <packageName>
, nomor versi terkadang terpotong. Untuk menghindarinya, gunakanCOLUMNS=100 dpkg -l <packageName>
N: Unable to locate package ^apache2
sudo apt-get update
dulu. Pastikan Anda telah mengonfigurasi sumber Apt yang tepat.Saya akan memperluas jawaban sebelumnya dengan perintah versi berguna lainnya dalam
apt
keluarga. Untuk melihat versi mana yang tersedia, jalankanapt-cache policy
:Kemudian, seperti yang disebutkan di tempat lain, instal versi tertentu dengan
apt-get
:Anda sekarang dapat melihat versi mana yang telah Anda instal dengan menjalankan
apt-cache policy
lagi:Jika Anda tidak ingin versi yang lebih baru diinstal pada pembaruan, sematkan paket dengan
apt-mark
:Katakanlah versi apache2 baru ditambahkan ke indeks paket dan mesin Anda disinkronkan dengan
apt-get update
. Anda akan melihat ini ketika Anda menjalankan berikutnyaapt-get upgrade
:sumber
Secara praktis, ini tidak mungkin karena versi lama tidak disimpan dalam arsip, jadi kecuali Anda memiliki salinan versi lama yang diletakkan di suatu tempat, Anda tidak dapat menginstalnya. Anda harus bertanya pada diri sendiri mengapa Anda ingin menginstal versi yang lebih lama. Pada rilis yang stabil, alasan utama untuk merilis versi baru adalah untuk memperbaiki kerentanan keamanan, dan Anda tidak ingin menjalankan server yang rentan bukan?
sumber
Seperti yang dijelaskan psusi, versi lama tidak disimpan di repositori ubuntu, tetapi tampaknya Anda masih dapat menemukannya di launchpad. Jadi, Anda buka (ganti trusty dan amd64 dengan versi dan arsitektur ubuntu Anda):
https://launchpad.net/ubuntu/trusty/amd64/apache2
dan pilih versi yang Anda inginkan. Kemudian Anda mengunduh deb sebagai file dan menginstal dengan:
Sekali lagi, ganti nama file ke file Anda. Ini membosankan jika Anda harus menurunkan banyak paket, tetapi lebih baik daripada tidak sama sekali jika Anda putus asa.
sumber