apt-get install tzdata noninteractive

100

Ketika saya mencoba

apt-get install -y tzdata

opsi baris perintah untuk memilih zona waktu muncul. Saya mencoba menggunakan ini dalam skrip untuk melakukan beberapa penyiapan, bagaimana cara membuat apt-get berjalan tanpa input pengguna?

Saya tahu untuk mengkonfigurasi ulang tzdata yang dapat saya lakukan

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

Tetapi ketika menginstal saya membutuhkannya untuk berjalan sepenuhnya meskipun itu tidak mengatur zona waktu yang tepat, saya selalu dapat mengkonfigurasinya ulang.

Saya mencoba

echo 5 | apt-get install -y tzdata

tetapi tidak berfungsi seperti yang diharapkan.

PYA
sumber

Jawaban:

170

Ini adalah skrip yang saya gunakan

(Versi Diperbarui dengan masukan dari @elquimista dari komentar)

#!/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

Sepertinya bekerja dengan baik.

Sebagai satu liner:

DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
PYA
sumber
44
Jika Anda DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
setuju
4
Ini sangat menyakitkan. Saya tidak dapat menginstal tzdata tanpa itu meminta saya untuk mengatur zona waktu default saya (konfigurasi prompt selama instalasi paket? Ide siapa ini?), Dan saya tidak dapat mengatur zona waktu default tanpa menginstal tzdata terlebih dahulu. Ini sudah default ke UTC jika Anda lulus di EOF. Mengapa tidak lakukan saja dan biarkan pengguna memperbarui nanti jika mereka mau. Atau biarkan saya mengatur variabel lingkungan TZ dan meminta tzdata mencarinya.
theferrit32
2
Melakukan ln -fs /usr/share/zoneinfo/America/New_York /etc/localtimelangkah sebelumnya DEBIAN_FRONTEND=noninteractive apt-get install -y tzdataadalah satu-satunya cara saya bisa mendapatkan ini untuk menginstal w / oa prompt.
fncomp
Hal yang sama berlaku untuk saya, satu-satunya cara ini berhasil adalah dengan menempatkan pernyataan ln terlebih dahulu. @Pya.
jpruiz114
75

Jika seseorang ingin mencapainya Dockerfile, gunakan seperti di bawah ini.

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -y install tzdata
Youngjae
sumber
2
Hal ini dapat dilakukan sebagai satu baris: RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ...The DEBIAN_FRONTENDvariabel harus ditetapkan untuk installbagian. Ini tidak berfungsi jika diatur sebelum &&untuk updatebagian tersebut.
Daniel Stevens
6

Semua kredit untuk ini harus diberikan ke @PYA tetapi urutan yang benar harus:

ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
export DEBIAN_FRONTEND=noninteractive
apt-get install -y tzdata
dpkg-reconfigure --frontend noninteractive tzdata
jpruiz114
sumber
Saya mengedit jawaban asli untuk mencerminkan perubahan pesanan.
sebisnow
5

Saya baru-baru ini menemukan solusi berikut di Dockerfile yang membangun pustaka Cingulata FHE:

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

Ini pada dasarnya menggunakan API yang disediakan oleh ipapi.co untuk mengambil informasi zona waktu. Ini secara otomatis mengkonfigurasi zona waktu dengan benar daripada melewatkan dialog dan menggunakan default (UTC).

Patrick
sumber
1

Inilah cara saya melakukannya:

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

Dua pernyataan echo pertama membuat file teks yang berisi nomor pilihan untuk menu area geografis dan menu kota / kawasan. File ini kemudian digunakan untuk memberikan masukan ke perintah apt-get install. Paket tzdata akan diinstal tanpa meminta masukan dari pengguna. Zona waktu akan disetel ke Afrika / Abidjan seolah-olah Anda memasukkan 1 dan 1 sebagai tanggapan atas petunjuk yang biasanya Anda dapatkan. Kemudian saya mengubah zona waktu sesuai keinginan dengan dua perintah terakhir.

Alih-alih 1 dan 1, Anda dapat menggunakan angka sebenarnya untuk wilayah geografis dan kota / kawasan yang Anda inginkan, tetapi menurut saya angka-angka itu bisa berubah.

Mike Maready
sumber