Apt-get package स्थापित करने के लिए डिफ़ॉल्ट उत्तर पासिंग प्रश्न?


27

मैं नए सर्वरों के लिए एक कॉन्फ़िगरेशन स्क्रिप्ट लिखने की कोशिश कर रहा हूं, और पहला कदम आवश्यक पैकेजों की एक श्रृंखला स्थापित करना है, जैसे कि MySQL, phpMyAdmin, आदि का उपयोग करना apt-get install, हालाँकि, जब dpkg उन्हें कॉन्फ़िगर करने की कोशिश करता है तो यह आपसे पूछता है। कुछ विकल्प, जैसे कि MySQL रूट पासवर्ड, phpMyAdmin पासवर्ड, किस सर्वर का उपयोग करना है, आदि।

चूँकि मैं इस लिपि को सहकर्मियों को देने जा रहा हूँ, जो होनहारों को पढ़ने की संभावना नहीं है, और मेरी इच्छा बस इसे शुरू करने और दूर जाने की है, मैं जानना चाहता हूँ कि "डिफ़ॉल्ट" उत्तरों की एक श्रृंखला में कैसे पास किया जाए / मूल्यों का उपयोग करने के लिए। इसमें उपयोगकर्ता नाम / पासवर्ड / कमांड लाइन पर दिए गए अन्य गतिशील मूल्य शामिल हो सकते हैं।

-

मुझे लगता है कि किसी स्क्रिप्ट में पासवर्ड होना एक सुरक्षा समस्या है, लेकिन मैं इसे अनदेखा करने को तैयार हूं, विशेष रूप से संकुल को स्थापित करने के अधिक सामान्य अर्थों में जो इस का जवाब होगा।

जवाबों:


44

डीबॉन्फ की कॉन्फ़िगरेशन प्रीसेडिंग का उपयोग करें।

उन मूल्यों को प्राप्त करने के लिए एक परीक्षण स्थापित करें जो आप चाहते हैं:

root@test1:~# apt-get install mysql-server

.. और इंस्टॉल के दौरान संकेत दिए जाने पर रूट पासवर्ड सेट करें।

फिर आप यह जांच कर सकते हैं कि डिबॉन्फ सेटिंग्स क्या दिखती हैं जो आपने अभी स्थापित की हैं (आपको स्थापित करने की आवश्यकता हो सकती है debconf-utils):

root@test1:~# debconf-get-selections | grep mysql-server
mysql-server-5.5        mysql-server/root_password_again        password
mysql-server-5.5        mysql-server/root_password      password
mysql-server-5.5        mysql-server/error_setting_password     error
mysql-server-5.5        mysql-server-5.5/postrm_remove_databases        boolean false
mysql-server-5.5        mysql-server-5.5/start_on_boot  boolean true
mysql-server-5.5        mysql-server-5.5/nis_warning    note
mysql-server-5.5        mysql-server-5.5/really_downgrade       boolean false
mysql-server-5.5        mysql-server/password_mismatch  error
mysql-server-5.5        mysql-server/no_upgrade_when_using_ndb  error

वहाँ कुछ शोर है, लेकिन महत्वपूर्ण हिस्सा पासवर्ड सेटिंग्स है।

फिर, एक नई स्थापना के लिए, आप पहले से ही पासवर्ड सेट करके पूरी तरह से संकेतों से बच सकते हैं:

root@test2:~# echo "mysql-server-5.5 mysql-server/root_password_again password Som3Passw0rd" | debconf-set-selections
root@test2:~# echo "mysql-server-5.5 mysql-server/root_password password Som3Passw0rd" | debconf-set-selections
root@test2:~# apt-get install mysql-server

उस इंस्टॉल के दौरान कोई संकेत नहीं देता है।


10
sudo apt-get install debconf-utilsजैसा आवश्यक हो।
एंड्रयू

यह वैसा ही दिखता है जैसा मैं देख रहा था, धन्यवाद! मैं इसे शीघ्र ही आज़माऊँगा।
तर्का

PhpMyAdmin के साथ एक ज्ञात त्रुटि के अलावा एक पूर्व वरीयता प्राप्त MySQL रूट पासवर्ड को स्वीकार नहीं करना, यह पूरी तरह से काम करता है!
तर्का

1
बस सोच रहा था, क्या पैकेज को स्थापित किए बिना पैकेज सिस्टम से संभव डीबॉन्फ सेटिंग्स प्राप्त करने का एक तरीका है?
stefan.at.wpf 21

17
export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install _packages_

क्या आपके पास $ DEBIAN_FRONTEND पढ़ने का संदर्भ है?
एंड्रयू

यह लंबे समय से डेबियन का एक हिस्सा रहा है जो मुझे लगता है कि केवल इयान वास्तव में आपको बता सकता है जब इसे जोड़ा गया था।
माइकल हैम्पटन

1
@Andrew यह द्वारा पढ़ा है debconf , जो वास्तव में सवाल से संबंधित है।
मॉर्गन

@ एम्गॉरवेन आह, मैं dpkg से पहले बहुत गहरा नहीं गया हूं।
एंड्रयू

AFAIK, यह समाधान केवल आपको संकेत छोड़ने और सभी उत्तरों को डिफ़ॉल्ट स्वीकार करने की अनुमति देता है। यदि आप एक गैर-डिफ़ॉल्ट उत्तर सेट करना चाहते हैं, तो आपको एक और समाधान का उपयोग करना होगा, जैसे कि debconf-set-selectionsविधि।
मेस्टेलियन

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