apt-get install tzdatanoninteractive


106

私がしようとすると

apt-get install -y tzdata

タイムゾーンを選択するためのコマンドラインオプションが表示されます。これをスクリプトで使用してセットアップを実行しようとしていますが、ユーザー入力なしでapt-getを実行するにはどうすればよいですか?

できるtzdataを再構成することを知っています

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

ただし、インストールするときは、適切なタイムゾーンが設定されていなくても完全に実行する必要があるため、いつでも再構成できます。

私は試した

echo 5 | apt-get install -y tzdata

しかし、期待どおりに機能していません。

回答:


171

これは私が使用したスクリプトです

(コメントからの@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をインストールしないとデフォルトのタイムゾーンを設定できません。EOFを渡すと、デフォルトでUTCになります。それを実行して、必要に応じて後でユーザーに更新させてはどうでしょうか。または、TZ環境変数を設定して、tzdataにそれを検索させます。
theferrit 3219

3
こうln -fs /usr/share/zoneinfo/America/New_York /etc/localtimeする前にステップすることはDEBIAN_FRONTEND=noninteractive apt-get install -y tzdata、私はこれをW / OAプロンプトをインストールするために得ることができる唯一の方法でした。
fncomp

同じことが私にも当てはまります。これが機能する唯一の方法は、lnステートメントを最初に配置することでした。@PYA。
jpruiz1 1419年

79

でそれを達成したい場合はDockerfile、以下のように使用してください。

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

3
これは、単一の行として行うことができます。変数は、のために設定されなければならない部分。これは、前の場合セットを動作しないための一部。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

注文の変更を反映するように元の回答を編集しました。
sebisnow

5

最近、CingulataFHEライブラリを構築しているDockerfileで次の解決策を見つけました。

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

最初の2つのechoステートメントは、地理的エリアメニューと都市/地域メニューの選択番号を含むテキストファイルを作成します。このファイルは、apt-getinstallコマンドへの入力を提供するために使用されます。tzdataパッケージは、ユーザー入力を要求せずにインストールされます。タイムゾーンは、通常表示されるプロンプトに応答して1と1を入力した場合と同様に、アフリカ/アビジャンに設定されます。次に、最後の2つのコマンドでタイムゾーンを必要なものに変更します。

1と1の代わりに、必要な地理的領域と都市/地域の実際の数値を使用できますが、これらの数値は変更される可能性があるようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.