मैं अपने मुख्य सिस्टम में लागू करने से पहले अपडेट का परीक्षण करने के लिए, VM में एक मंचन वातावरण स्थापित करने का प्रयास कर रहा हूं।
ऐसा करने के लिए, मैंने VM में डेबियन व्हीज़ी (मुख्य प्रणाली पर समान) की एक बुनियादी स्थापना की है, फिर VM के भीतर से रूट के रूप में चला गया:
# dpkg --clear-selections
# dpkg --add-architecture i386
# apt-get update
# ssh me@main-system 'dpkg --get-selections | grep -v deinstall' | \
dpkg --set-selections
I386 वास्तुकला दुर्भाग्य से मेरे मामले में आवश्यक है; प्रणाली amd64 देशी है।
समस्या dpkg --set-selections
VM में चलाने के साथ है । मेरे पास कुछ पैकेज हैं, जिन्हें विशेष हैंडलिंग की आवश्यकता होती है (वे वास्तव में मुख्य कारण है कि मैं पहली जगह में एक मंचन का माहौल क्यों चाहता हूं) लेकिन जब मैं ऊपर अंतिम कमांड चलाता हूं, तो मुझे आउटपुट की एक गजियन लाइनें मिलती हैं:
dpkg: warning: package not in database at line NNN: package-name
उन पैकेजों के लिए जो वास्तव में आधार प्रणाली में उपलब्ध होने चाहिए। उदाहरणों में शामिल हैं xterm
, yelp
और zip
।
अब मेरे सवाल के लिए:
पैकेज चयन सूची को एक डेबियन सिस्टम से दूसरे (समान डेबियन रिलीज स्तर मानकर, व्हीजी में) और फिर बाद में उन परिवर्तनों को लागू करने के लिए विशिष्ट प्रक्रिया क्या है ? लक्ष्य यह है कि दोनों के पास एक ही पैकेज की सूची है, आदर्श रूप में ऐसा है कि diff
दोनों के आउटपुट के बीच dpkg --get-selections
या dpkg --list
दोनों में कोई अंतर नहीं दिखाई देता है।
grep -v deinstall
भाग से लिया गया है करने के बाद निकाले जाने से रोकने के संकुलdpkg --set-selections
उबंटू पूछें पर अधिक।
मैंने VM में स्रोत को मुख्य प्रणाली के समान ही बदल दिया है, यह भी स्थापित कर रहा है apt-transport-https
:
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
--सेट-चयन आउटपुट को देखते हुए, मैं देख रहा हूं:
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
...
पंक्ति संख्या विषम दिखती है, और इसके परिणाम --गट-चयन का संबंधित भाग है:
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
ध्यान दें कि बीच में acl
और aglfn
हैं acpi-support-base
, acpid
और adduser
जिसके लिए कोई त्रुटि नहीं बताई जा रही है । ऐसा लगता है कि जिन पैकेजों के लिए त्रुटियां बताई जा रही हैं , वे या तो उनके un
अनुसार हैं या उनके बारे में बिल्कुल भी पता नहीं है ( )। मुझे पता है कि कुछ स्थानीय रूप से स्थापित पैकेज हैं, लेकिन कई नहीं हैं। जब तक सूची से बहुत नीचे नहीं आ जाता है (लाइन - the -get-selections आउटपुट में 342)।dpkg -l
dpkg -l
dpkg-query: no packages found matching ...
i386
gcc-4.7-base:i386 install
dpkg --get-selections
dpkg --set-selections
/var/lib/dpkg/Packages
(जो और भी लंबी है) उपयोगी हो सकती है, भी - यह टूटी हुई पैकेज फ़ाइल का एक लक्षण हो सकता है।
dpkg --get-selections … | … dpkg --set-selections
पैकेज चयनों को दोहराने का तरीका है। यदि यह आपके लिए विफल हो रहा है, तो आपको अधिक जानकारी प्रदान करने की आवश्यकता है क्योंकि क्यों। अपने सिस्टम, आउटपुट सेdpkg --get-selections
और पूर्ण प्रतिलेख दोनों स्रोतों पर अपना पूरा सेट पोस्ट करेंdpkg --get-selections
(हो सकता है कि हम क्या काम करता है और क्या नहीं, यह देखकर एक पैटर्न की व्याख्या कर सकता है)। यदि मुख्य प्रणाली amd64 या i386 है? यदि आप i386 आर्किटेक्चर को नहीं जोड़ते हैं तो क्या यह काम करता है?