apt-get install टजडाटा नॉनटेरेंक्टिव


109

जब मैं करने की कोशिश करता हूं

apt-get install -y tzdata

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

मुझे पता है कि मैं जो टज़्डेट कर सकता हूं उसे फिर से कॉन्फ़िगर करना है

echo "America/New_York" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata

लेकिन जब इसे स्थापित करने की आवश्यकता होती है तो मैं इसे पूरी तरह से चला सकता हूं, भले ही यह सही टाइमज़ोन सेट न करे, मैं हमेशा इसे फिर से कॉन्फ़िगर कर सकता हूं।

मैंने कोशिश की

echo 5 | apt-get install -y tzdata

लेकिन यह अपेक्षा के अनुरूप काम नहीं कर रहा है।

जवाबों:


174

यह मेरे द्वारा इस्तेमाल की गई स्क्रिप्ट है

(टिप्पणी से @elquimista से इनपुट के साथ अद्यतन संस्करण)

#!/bin/bash
export DEBIAN_FRONTEND=noninteractive

ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
apt-get install -y tzdata
dpkg-reconfigure --frontend noninteractive tzdata

ठीक काम करने लगता है।

एक लाइनर के रूप में:

DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata

45
यदि आप UTC के साथ ठीक हैं, तो यहाँ एक लाइनर है:DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
elquimista

4
यह एक ऐसा दर्द है। मैं अपनी डिफ़ॉल्ट टाइमज़ोन सेट करने के लिए मुझे संकेत दिए बिना tzdata स्थापित नहीं कर सकता (पैकेज स्थापना के दौरान कॉन्फ़िगरेशन प्रॉम्प्ट? जिसका विचार यह था?), और मैं पहली बार tzdata स्थापित किए बिना डिफ़ॉल्ट टाइमज़ोन सेट नहीं कर सकता। यदि आप ईओएफ में पास करते हैं तो यह पहले से ही यूटीसी को चूकता है। ऐसा क्यों नहीं करते हैं और यदि चाहते हैं तो उपयोगकर्ता को बाद में अपडेट करने दें। या मुझे टीबी वातावरण चर सेट करने और उस के लिए tzdata देखो है।
theferrit32

3
ऐसा करने से ln -fs /usr/share/zoneinfo/America/New_York /etc/localtimeकदम से पहले DEBIAN_FRONTEND=noninteractive apt-get install -y tzdataएक ही रास्ता है कि मैं इस w / oa शीघ्र स्थापित करने के लिए मिल सकता था।
fncomp

वही मेरे लिए जाता है, जिस तरह से यह काम किया गया था पहले ln स्टेटमेंट रखकर। @PYA।
jruiz114

81

यदि कोई इसे प्राप्त करना चाहता है Dockerfile, तो नीचे के रूप में उपयोग करें।

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -y install tzdata

4
यह एक पंक्ति के रूप में किया जा सकता है: चर के लिए सेट किया जाना चाहिए हिस्सा। भाग के लिए सेट करने से पहले यह काम नहीं करता है । RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ...DEBIAN_FRONTENDinstall&&update
डैनियल स्टीवंस

6

इसके लिए सारा श्रेय @PYA को जाना चाहिए लेकिन सही क्रम होना चाहिए:

ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
export DEBIAN_FRONTEND=noninteractive
apt-get install -y tzdata
dpkg-reconfigure --frontend noninteractive tzdata

मैंने क्रम परिवर्तन को दर्शाने के लिए मूल उत्तर को संपादित किया।
6

5

मैं हाल ही में एक Dockerfile में निम्नलिखित समाधान के निर्माण पाया है Cingulata FHE पुस्तकालय:

ln -snf /usr/share/zoneinfo/$(curl https://ipapi.co/timezone) /etc/localtime

यह मूल रूप से ipapi.co द्वारा प्रदान की गई API का उपयोग टाइमजोन की जानकारी प्राप्त करने के लिए करता है। यह स्वचालित रूप से संवाद को छोड़ने और डिफ़ॉल्ट (UTC) का उपयोग करने के बजाय समयक्षेत्र को ठीक से कॉन्फ़िगर करता है।


2

यहाँ देखें कि मैंने यह कैसे किया:

echo 1 > input.txt
echo 1 >> input.txt
apt-get install -y tzdata < input.txt
ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
echo America/Los_Angeles > /etc/timezone

पहले दो इको स्टेटमेंट एक टेक्स्ट फाइल बनाते हैं जिसमें भौगोलिक क्षेत्र मेनू और शहर / क्षेत्र मेनू के लिए चयन संख्याएं होती हैं। इस फ़ाइल का उपयोग apt-get install कमांड को इनपुट प्रदान करने के लिए किया जाता है। किसी भी उपयोगकर्ता इनपुट के बिना tzdata पैकेज स्थापित किया जाएगा। समयक्षेत्र अफ्रीका / आबिदजान के लिए निर्धारित किया जाएगा जैसे कि आप उन संकेतों के जवाब में 1 और 1 दर्ज करते हैं जो आपको सामान्य रूप से मिलते हैं। फिर मैं अंतिम दो आदेशों के साथ जो मैं चाहता हूं उसके लिए समय-क्षेत्र को बदल दें।

1 और 1 के बजाय, आप भौगोलिक क्षेत्र और शहर / क्षेत्र के लिए वास्तविक संख्या का उपयोग कर सकते हैं जो आप चाहते हैं, लेकिन यह मुझे लगता है कि वे संख्या बदल सकते हैं।

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