dpkg otomatikleştirmek tzdata yeniden yapılandırmak


60

Bir küme debian sunucusu yönetmek için kukla kullanıyorum. Kümedeki her makinenin saat dilimini değiştirmem gerekiyor. Bunu yapmanın doğru debian yolu kullanmaktır dpkg-reconfigure tzdata. Ama ben sadece diyaloğu kullanırsam değiştirebilirim. Bunu kabuktan otomatikleştirmenin bir yolu var mı, böylece bunu kolaylaştırmak için bir Exec yazabilirim?

Eğer değilse, bir sonraki en iyi yolu muhtemelen kukla dağıtmak için olacağını düşünüyorum /etc/timezoneve /etc/localtimeküme çapında doğru verilerle.

Herhangi bir giriş takdir!


Şu anda kabul edilen cevabın 2017'den beri yanlış olduğunu unutmayın . Doğru cevap bu .
Dan Dascalescu

Yanıtlar:


92

Ön ucu “etkileşimli olmayan” olarak belirtmeniz gerekir ve geçerli ayarlarınızı kaydeder.

dpkg-reconfigure, geçerli sistem ayarlarını müjde olarak alır, bu nedenle saat diliminizi normalde yaptığınız gibi değiştirin ve etkileşimli olmayan bayrakla çalıştırın

örneğin benim olduğum yerde "Europe / Dublin" olarak değiştirmem için:

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

Açıkçası bu, / etc / timezone da dağıttığınız gibi kukla / cfengine kullanmanıza izin verir.


5
değişen izinlere bir alternatif olarak, böyle bir şey yapabilirsiniz. echo 'Europe/Dublin' | sudo tee /etc/timezone > /dev/null
genelleştirici

3
Tamamlanması için sudo ile yankılanmanın başka bir yolu dasudo bash -c 'echo "Europe/Dublin" > /etc/timezone'
MartyMacGyver

6
Önüne bak! Daha yeni Ubuntu / Debian sürümleri artık bu şekilde çalışmıyor. Davranış değişti. bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1554806
gertvdijk

21

Yana kabul cevap artık (Debian Jessie 2017 Nisan), @ gertvdijk en değiştirilmiş bir yaklaşım çalışır açıklama bağlantısını şimdi işi yapmak için görünür:

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

1
Bugünlerde kabul edilen cevap bu olmalı.
Dan Dascalescu

Harika, bu bir tedavi çalışır
infomaniac

5

Yapılandırmayı önceden ayarlamak için debconf-set-selection kullanabilmelisiniz. Debconf-utils programını kurun ve debconf-get-selections | grep tzdataneyin ayarlanacağını bulmak için uygun şekilde yapılandırılmış bir sistemde çalıştırın .


1
Debconf tabanlı şeyler için bu işe yaramalı. Ancak tzdata, config / etc / timezone dizininden tercih etmeyi tercih eder. Yani bu zaten kurulu (wheezy) sistemde çalışmıyor.
Elrond

3

Tarifi, şu anda kullanılmayacak şekilde uygun zoneinfo dosyasıyla değiştirilen (şimdi iptal edilmiş) Kukla Wiki'den ( arşiv ) de kullanabilirsiniz : -/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 uygulamasının fazladan bir şey yapıp yapmadığından emin değilim, ancak yukarıdaki tarifi kullandım ve mükemmel çalışıyor.


-3

Çok basit ve sadece bir komut yazıp basit soruları cevaplamanız gerekiyor.
o zaman koş:

/usr/bin/tzselect

1
man tzselect: "tzselect'in gerçekte sizin için saat dilimini değiştirmeyeceğini unutmayın. Bunu yapmak için 'dpkg-reconfigure tzdata'yı kullanın."
spinkus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.