Bazıları apt-get güncellemesinin ne yaptığını ve ne zaman kullanmam gerektiğini açıklayabilir mi?
apt-get update
Güncelleştirilmiş dizinleri dağıtımın paket depolarından indirir, kullanılabilir tüm paketleri ve kesin sürümlerini listeler.
Ubuntu ve Debian gibi yaygın dağıtımlar genellikle paket tekliflerinde muhafazakar ve geriye dönük olarak uyumludur, bu nedenle sürümler zamanla çok fazla değişmez; güvenlik güncelleştirmeleri veya hata düzeltmeleri nedeniyle değişeceklerdir. Örneğin, mysql 'den' 5.7.18
e yükseltilebilir 5.7.19
ancak ' den yükseltilemez 6.x
.
Paket dizini nerede saklanır? Veritabanında mı? Bir dosyada mı?
Genellikle içindeki bir veya daha fazla dosyada saklanır /var/lib/apt
. Docker bağlamında bu dosyalar görüntünün içindedir. Dockerfile dosyasını oluştururken, yeni oluşturulan görüntü olarak oluşturulan ve kalıcı olan yeni dosya sistemi katmanlarında depolanırlar.
Önbelleği güncellemeden apt-get yüklemesi yaparsam ne olur?
Artık mevcut olmayan paket sürümlerini indirmeyi deneyebilirsiniz. Bu, sanal makinelerde oldukça yaygındır, ancak dağıtım havuzları temel görüntü oluşturulduktan sonra yeni paketler yayınladıysa da konteynerlerin içinde mümkündür. Dağıtım koruyucular ve Dockerfile koruyucular arasında dağıtımdan aşağı akış yönünde olan ve sayıca daha büyük olabilen bir koordinasyon olmayabilir. Yalnızca bir Debian deposu var, ancak binlerce jessie
tabanlı kapsayıcı görüntüsü ve Dockerfile var.
Ayrıca, ubuntu one gibi bazı yukarı akış görüntüleri , görüntüyü daha küçük hale getirmek ve eski dosyaları önlemek için indirilen dizini kaldırır . Bu nedenle, temel bir görüntünün en son dizinle birlikte gönderilmesi için değil, temel bir görüntünün üzerine inşa edilirken güncellenmiş bir dizinin indirilmesi beklenir.
Uzak paketin artık mevcut olmaması ve bağlantının kopması ihtimali var mı?
Kesinlikle, çünkü dizinde saklanan sürümleri çok hassas olduğu için 5.7.19
(basitleştirme; daha benzer 5.7.19-0ubuntu1
).
Deb depoları hakkında üzerinde mutabık kalınmış bazı politikalar var mı? Örneğin, bir havuz paketin yalnızca son sürümünü mi yoksa tam tersine belirli bir dağıtım sürümü için mevcut tüm sürümleri mi içermelidir?
Bir güncelleştirme hazır olduğunda eski küçük sürümlerin hızlı bir şekilde kaldırılması yaygındır; Bence ikili dosyalar onlarca megabayt ağırlığında, desteklenen tüm sürümleri ve mimarileri ile çarpılabilir sunucularda yer kazanmak için olduğunu varsayalım. Bu nedenle, mesela mysql-5.7.18
daha sonra sabitlemek genellikle imkansızdır apt-get install
; Yakında kadar mysql-5.7.19
dağıtımında bırakıldığında önceki bir kaldırıldı alacak.
Docker için adil olmak gerekirse, bu determinizm apt-get update
her dağıtımın paket yönetiminin bir parçası olarak ortaya çıkan bir konudur. Bir EC2 veya Vagrant sanal makinesi tekrarlanabilir bir şekilde oluşturmaya çalışırken aynı sorunu yaşarsınız.
Bazı sistem yöneticileri , orijinal depoları yansıtmak ve belirli bir sürümü sabitlemek için Aptly gibi hizmetleri kullanır , ancak güncelleştirmeleri sınamak ve yaptığınız şeyi değiştirmek için sık sık çalıştırılan ayrı bir işleminiz yoksa, güvenlik güncelleştirmelerini kaçırmak riskiyle karşı karşıya kalırsınız. sabitleniyor.