Güncellemeleri ana sistemime uygulamadan önce test etmek için bir sanal makinede bir hazırlama ortamı kurmaya çalışıyorum.
Bunu yapmak için, VM'de Debian Wheezy'nin (ana sistemde olduğu gibi) temel bir kurulumunu yaptım, sonra VM'den kök olarak çalıştım:
# dpkg --clear-selections
# dpkg --add-architecture i386
# apt-get update
# ssh me@main-system 'dpkg --get-selections | grep -v deinstall' | \
dpkg --set-selections
Benim durumumda maalesef i386 mimarisine ihtiyaç var; sistem amd64 yereldir.
Sorun dpkg --set-selections
VM'de çalıştırma ile ilgilidir . Özel işleme gerektiren bazı paketlerim var (bunlar aslında ilk aşamada bir hazırlama ortamı istemememin ana nedeni), ancak yukarıdaki son komutu çalıştırdığımda, yaklaşık bir gazilyon satır çıktısı alıyorum:
dpkg: warning: package not in database at line NNN: package-name
temel sistemde gerçekten bulunması gereken paketler için. Örnekler arasında xterm
, yelp
ve zip
.
Şimdi sorum için:
Paket seçim listesini bir Debian sisteminden diğerine aktarmak için (Wheezy'de aynı Debian sürüm seviyesini varsayarak) ve daha sonra bu değişiklikleri uygulamak için özel süreç nedir ? Amaç, her ikisinin de aynı kurulu paket listesine sahip olması, ideal olarak, ikisinin diff
çıktıları arasında dpkg --get-selections
veya arasında bir değişiklik yapmanın dpkg --list
hiçbir fark göstermemesi.
grep -v deinstall
Bölüm ödünç yaptıktan sonra kaldırılmakta engelle paketleridpkg --set-selections
Ask Ubuntu üzerine bitti.
VM'deki kaynağı ana sistemdeki ile aynı olacak şekilde değiştirdim, ayrıca apt-transport-https
şunları da yükledim :
deb https://ftp-stud.hs-esslingen.de/debian/ wheezy main non-free
deb-src https://ftp-stud.hs-esslingen.de/debian/ wheezy main non-free
deb https://ftp-stud.hs-esslingen.de/debian/ wheezy-updates main non-free
deb-src https://ftp-stud.hs-esslingen.de/debian/ wheezy-updates main non-free
deb [arch=amd64] http://archive.zfsonlinux.org/debian wheezy main
--Set-selections çıktısına bakıyorum:
dpkg: warning: package not in database at line 1: a2ps
dpkg: warning: package not in database at line 1: abiword
dpkg: warning: package not in database at line 1: abiword-common
dpkg: warning: package not in database at line 1: abiword-plugin-grammar
dpkg: warning: package not in database at line 1: abiword-plugin-mathview
dpkg: warning: package not in database at line 1: accountsservice
dpkg: warning: package not in database at line 1: acl
dpkg: warning: package not in database at line 4: aglfn
dpkg: warning: package not in database at line 4: aisleriot
dpkg: warning: package not in database at line 4: alacarte
dpkg: warning: package not in database at line 4: alien
...
Satır numaraları tuhaf görünüyordu ve --get-selection çıktısının karşılık gelen kısmı:
a2ps install
abiword install
abiword-common install
abiword-plugin-grammar install
abiword-plugin-mathview install
accountsservice install
acl install
acpi-support-base install
acpid install
adduser install
aglfn install
aisleriot install
alacarte install
alien install
Arasındaki o Bildirim acl
ve aglfn
vardır acpi-support-base
, acpid
ve adduser
bunun için hiç hata rapor edilmektedir . Hataların bildirildiği paketler, bunlara un
göre dpkg -l
ya dpkg -l
da hiç bir fikre sahip değildir ( dpkg-query: no packages found matching ...
). Yerel olarak kurulu bazı paketler olduğunu biliyorum, ama çok değil. listede çok daha aşağıya i386
kadar (--get-selection çıktısındaki 342 satırı) görülmez .gcc-4.7-base:i386 install
dpkg --get-selections
(ve ben dpkg --set-selections
transkript demek olduğunu varsayalım ?)? Sadece birincisi 3.600 satırdan fazla ve 100 KB civarında.
/var/lib/dpkg/Packages
(Daha da uzun olan) bir kopyası da yararlı olabilir - bu bozuk bir Paket dosyasının belirtisi olabilir.
dpkg --get-selections … | … dpkg --set-selections
paket seçimlerini çoğaltma yoludur. Bu sizin için başarısız olursa, nedenine ilişkin daha fazla bilgi vermeniz gerekecektir. Kaynaklarınızın tamamını her iki sistemde, çıktıdpkg --get-selections
ve tam transkripttedpkg --get-selections
yayınlayın (belki neyin işe yarayıp neyin yaramadığını görerek bir desen ayırt edebiliriz). Ana sistem amd64 veya i386 ise? İ386 mimarisini eklemezseniz çalışır mı?