내가하려고 할 때
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
하지만 예상대로 작동하지 않습니다.
답변
이것은 내가 사용한 스크립트입니다.
(댓글에서 @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
답변
누군가에서 달성하고 싶다면 Dockerfile
아래와 같이 사용하십시오.
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -y install tzdata
답변
이에 대한 모든 크레딧은 @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
답변
최근 Cingulata FHE 라이브러리를 구축하는 Dockerfile에서 다음 솔루션을 찾았습니다 .
ln -snf /usr/share/zoneinfo/$(curl https://ipapi.co/timezone) /etc/localtime
기본적으로 ipapi.co에서 제공하는 API를 사용하여 시간대 정보를 검색합니다. 이렇게하면 대화 상자를 건너 뛰고 기본값 (UTC)을 사용하는 대신 시간대가 자동으로 올바르게 구성됩니다.
답변
내가 한 방법은 다음과 같습니다.
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
처음 두 개의 echo 문은 지리적 영역 메뉴 및 도시 / 지역 메뉴에 대한 선택 번호가 포함 된 텍스트 파일을 만듭니다. 이 파일은 apt-get 설치 명령에 대한 입력을 제공하는 데 사용됩니다. tzdata 패키지는 사용자 입력을 요청하지 않고 설치됩니다. 시간대는 일반적으로받는 프롬프트에 대한 응답으로 1과 1을 입력 한 것처럼 아프리카 / 아비 장으로 설정됩니다. 그런 다음 마지막 두 명령으로 시간대를 원하는대로 변경합니다.
1과 1 대신 원하는 지리적 영역과 도시 / 지역에 대한 실제 숫자를 사용할 수 있지만 그 숫자가 변경 될 수있는 것 같습니다.