कैसे रेपो से डेबियन की एक अप्राप्य स्थापित में नए विन्यास फ़ाइलों को स्वीकार करने योग्य बनाने के लिए


21

मैं एक पैकेज के अनअटेंडेड इंस्टॉलेशन के लिए एक स्क्रिप्ट लिख रहा हूं जो हमारे रेपो में है, यह डेबियन के चिह्नित कॉन्फिग फाइल्स में से एक के साथ एक सॉफ्टवेयर पैकेज है। क्या कोई विकल्प है जिसे मैं पास कर सकता apt-get/ सकती हूं aptitudeताकि वह नई कॉन्फिग फाइलों को स्वीकार करे?

मूल रूप से मुझे apt/ के aptitudeबराबर की आवश्यकता है dpkg --force-confnew

apt-getवाई के साथ स्थापित करते समय मुझे निम्नलिखित प्रश्न का उत्तर देना होगा


कॉन्फ़िगरेशन फ़ाइल `` / ऑप्ट / आवेदन / आत्मविश्वास / XXX.conf` '

==> File on system created by you or by a script.
==> File also in package provided by package maintainer.

What would you like to do about it ?  Your options are:
Y or I  : install the package maintainer's version
N or O  : keep your currently-installed version
  D     : show the differences between the versions
  Z     : background this process to examine the 

The default action is to keep your current version.

अतिरिक्त जानकारी:

इसके अलावा, मैं sudoकमांड निष्पादित करने के लिए एक पाइप में पासवर्ड पास कर रहा हूं

echo "mysudopass"|sudo -S apt-get mypackage

यह संस्थापन में एक त्रुटि को चिह्नित कर रहा है जब अधिष्ठापन संवादात्मक इंटरेक्टिव चरण में है।

मैं उबंटू 10.04
उपयुक्त संस्करण पर हूं : उपयुक्त 0.7.25.3

मैं क्यों उपयोग नहीं कर सकता dpkg: इन डेबियन को रेपो से स्थापित किया जाना है और मेरी मशीन पर स्थानीय डेबियन नहीं हैं


जवाबों:


22

आप इस तरह से dpkgपैरामीटर पास कर सकते हैंapt-get

apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew install pkgname1 pkgname2 ...

साथ --force-confdefअगर पुराने config फ़ाइलों को अभी भी मौजूद हैं, वे ओवरराइड नहीं मिलेगा। तो आप शायद इसका उपयोग नहीं करेंगे, मैं सिर्फ दूसरों के लिए इसका दस्तावेजीकरण कर रहा हूं।

sudoयदि आप उपयोगकर्ता के लिए प्रामाणिक विकल्प को नकारते हैं या NOPASSWDविशिष्ट प्रविष्टि में टैग जोड़ते हैं तो पासवर्ड नहीं मांगेंगे । जैसे

someuser ALL = NOPASSWD: /usr/bin/apt-get

7

आप निम्नलिखित की कोशिश कर सकते हैं:

export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install whatever-2

लेकिन ध्यान दें कि इसके निहितार्थ हैं, जैसे खाली डिफ़ॉल्ट पासवर्ड (शायद आप कठपुतली, चीज, कपड़े ... जैसी कुछ तैनाती / कॉन्फिग टूल चाहेंगे?)।

पासवर्ड-कम इनवोकेशन की अनुमति देने के बारे में sudoers (5) देखें sudo


3

क्या करने के लिए वैकल्पिक रूप से forcefsck सुझाव दिया मैं तो आप हर समय इन मुश्किल से लिखने विकल्प जोड़ने के लिए आवश्यक नहीं हैं आप अपार्ट सेटिंग्स में इस ऐड सुझाव देते हैं। इसके अलावा, यदि आपके पास ये सेटअप है तो अप्राप्य उन्नयन के लिए यह उपयोगी होगा।

/etc/apt/apt.conf.d/71debconfनिम्नलिखित सामग्री रखने के लिए फ़ाइल बनाएँ :

Dpkg::Options {
  "--force-confnew";
};

नोट (ज्योफ से): यह परिवर्तन एक वैश्विक परिवर्तन होगा। यदि आपके पास सिस्टम पर अन्य पैकेज हैं जिन्हें आप अनअटेंडेड अपग्रेड प्राप्त करना चाहते हैं, लेकिन मैन्युअल रूप से कॉन्फ़िगर भी किया गया है, तो यह उचित समाधान नहीं होगा।


यह एक अच्छा विकल्प हो सकता है, हालांकि यह नोट करना महत्वपूर्ण है कि यह एक वैश्विक परिवर्तन होगा। यदि आपके पास सिस्टम पर अन्य पैकेज हैं जिन्हें आप अनअटेंडेड अपग्रेड प्राप्त करना चाहते हैं, लेकिन कॉन्फ़िगर भी किया है, तो यह उचित समाधान नहीं होगा।
ज्योफ

2

अन्य उत्तरों के अलावा, आपको पर्यावरण को UCF_FORCE_CONFFNEW = 1 भी सेट करना पड़ सकता है ।

डेबियन स्ट्रेच में ईजी ओप्शश ucf का उपयोग करता है (डिबेंकफ का नहीं) इसमें openssh-server/openssh-7.4p1/debian/openssh-server.postinstकॉन्फिग फाइल के बारे में पूछना है। (आप देख सकते हैं openssh-server.postinstका उपयोग करके dgetखिलाफ http://security.debian.org/debian-security/pool/updates/main/o/openssh/openssh_7.4p1-10+deb9u4.dsc )

हमें debconf preseeding के उदार उपयोगकर्ता होने के अलावा इस पृष्ठ पर सभी ट्रिक्स का उपयोग करना होगा

हमने हालांकि कुछ समय के लिए रोक दिया export DEBIAN_FRONTEND=noninteractiveक्योंकि हम जानना चाहते हैं कि क्या हम कुछ चूक गए (जो महत्वपूर्ण हो सकता है)। हमारा उपयोग मामला ऑपरेशन शुरू करने वाला ऑपरेटर है। उन्नयन गैर-इंटरैक्टिव होने की उम्मीद है, लेकिन ऑपरेटर कुछ गलत होने पर उपस्थित होता है और एक संवाद स्वयं प्रस्तुत करता है। आपकी स्थिति अलग हो सकती है।

लेकिन export DEBIAN_FRONTEND=noninteractiveक्या आपका लौकिक स्लेजहैमर है।

बस सावधान रहें: सेटिंग -o Dpkg::Options::=--force-confnewऔर / या UCF_FORCE_CONFFNEW=1इसका मतलब है कि इंस्टॉल किए गए पैकेजों से सभी कॉन्फ़िगरेशन फाइलें ऊपर की तरफ वापस आती हैं। तो जैसे, के मामले में openssh-server, आपका /etc/ssh/sshd_configकारखाना सेटिंग्स पर रीसेट हो जाएगा। और जैसे PermitRootLogin=yesको हटा दिया जाएगा। लेकिन निश्चित रूप से आप इसका उपयोग नहीं करते हैं, इसलिए आप ठीक रहेंगे! ;-)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.