स्वचालित dpkg-reconfigure tzdata


60

मैं कठपुतली का उपयोग कर रहा हूँ डेबियन सर्वर के एक समूह को प्रशासित करने के लिए। मुझे क्लस्टर पर प्रत्येक मशीन का समय क्षेत्र बदलने की आवश्यकता है। ऐसा करने के लिए उचित डेबियन तरीका है dpkg-reconfigure tzdata। लेकिन मैं केवल इसे बदल सकता हूं यदि मैं संवाद का उपयोग करता हूं। क्या शेल से इसे स्वचालित करने का कोई तरीका है, इसलिए मैं इसे आसान बनाने के लिए एक Exec लिख सकता हूं?

यदि नहीं, तो मुझे लगता है कि अगला सबसे अच्छा तरीका शायद कठपुतली वितरण /etc/timezoneऔर /etc/localtimeक्लस्टर भर में सही डेटा के साथ होगा।

किसी भी इनपुट की सराहना की!


ध्यान दें कि 2017 से वर्तमान में स्वीकृत उत्तर गलत है । सही उत्तर यह है
डैन डैस्कलेस्क्यू

जवाबों:


92

आपको फ्रंटएंड को `गैर-सक्रिय 'के रूप में निर्दिष्ट करना होगा और यह आपकी वर्तमान सेटिंग्स को बचाएगा।

dpkg-reconfigure वर्तमान प्रणाली सेटिंग्स को सुसमाचार के रूप में ले जाएगा, इसलिए बस अपना समय क्षेत्र बदल दें जिस तरह से आप सामान्य रूप से करेंगे और इसे गैर-संवादात्मक ध्वज के साथ चलाएंगे

उदाहरण के लिए मुझे "यूरोप / डबलिन" में बदलने के लिए जहाँ मैं हूँ:

# echo "Europe/Dublin" > /etc/timezone    
# dpkg-reconfigure -f noninteractive tzdata

स्पष्ट रूप से यह आपको कठपुतली / cengine का उपयोग करने की अनुमति देता है क्योंकि आप / etc / timezone भी वितरित करना पसंद करते हैं।


5
अनुमति बदलने के विकल्प के रूप में, आप ऐसा कुछ कर सकते हैं। echo 'Europe/Dublin' | sudo tee /etc/timezone > /dev/null
गोरेलिव

3
पूर्णता के लिए, sudo bash -c 'echo "Europe/Dublin" > /etc/timezone'
सूडो के

6
सचेत! नए उबंटू / डेबियन संस्करण अब इस तरह से काम नहीं करते हैं। व्यवहार बदल गया। Bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1554806
gertvdijk

21

चूंकि स्वीकृत उत्तर अब काम नहीं करता है (डेबियन जेसी, अप्रैल 2017), @ gertvdijk की टिप्पणी लिंक से संशोधित एक दृष्टिकोण अब काम करने के लिए प्रकट होता है:

sudo ln -fs /usr/share/zoneinfo/Europe/Dublin /etc/localtime
sudo dpkg-reconfigure -f noninteractive tzdata

1
यह आजकल स्वीकृत उत्तर होना चाहिए।
डैन डैस्कलेस्क्यू

महान, यह एक इलाज काम करता है
शिशु

5

आपको कॉन्फ़िगरेशन पूर्व निर्धारित करने के लिए डिबेंक-सेट-चयन का उपयोग करने में सक्षम होना चाहिए । डिबेंफ़-बर्तनों को स्थापित करें और इसे debconf-get-selections | grep tzdataठीक से कॉन्फ़िगर करने के लिए सही तरीके से कॉन्फ़िगर किए गए सिस्टम पर चलाएं ।


1
डिबेंक आधारित चीजों के लिए, यह काम करना चाहिए। लेकिन tzdata / etc / timezone से कॉन्फिगरेशन को तरजीह देता है। तो यह पहले से स्थापित (घरघराहट) प्रणाली पर काम नहीं करता है।
एलरनड जूल 18'14

3

आप (अब अयोग्य ) कठपुतली विकी ( संग्रह ) की रेसिपी का उपयोग कर सकते हैं, जो /etc/localtimeउचित जोनिनफो फाइल के साथ प्रतिस्थापित करता है /usr/share/zoneinfo: -

class timezone {
    package { "tzdata":
        ensure => installed
    }
}

class timezone::central inherits timezone {
    file { "/etc/localtime":
        require => Package["tzdata"],
        source => "file:///usr/share/zoneinfo/US/Central",
    }
}

class timezone::eastern inherits timezone {
    file { "/etc/localtime":
        require => Package["tzdata"],
        source => "file:///usr/share/zoneinfo/US/Eastern"
    }
}

class timezone::pacific inherits timezone {
    file { "/etc/localtime":
        require => Package["tzdata"],
        source => "file:///usr/share/zoneinfo/US/Pacific"
    }
}

class timezone::mountain inherits timezone {
    file { "/etc/localtime":
        require => Package["tzdata"],
        source =>
             "file:///usr/share/zoneinfo/US/Mountain"
    }
}

मुझे यकीन नहीं है कि अगर dpkg-reconfigure कुछ अतिरिक्त करता है, लेकिन मैंने उपरोक्त नुस्खा का उपयोग किया है और यह पूरी तरह से काम करता है।


-3

इसकी बहुत सरल और केवल एक कमांड टाइप करने और सरल सवालों के जवाब देने की आवश्यकता है।
तो भागो:

/usr/bin/tzselect

1
आदमी tzselect: "ध्यान दें कि tzselect वास्तव में आपके लिए समय क्षेत्र नहीं बदलेगा। इसे प्राप्त करने के लिए 'dpkg-reconfigure tzdata' का उपयोग करें।"
स्पिंकस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.