sourcetip

apt-get install tzdata 비인터랙티브

fileupload 2023. 4. 28. 21:15
반응형

apt-get install tzdata 비인터랙티브

내가 하려고 할 때

apt-get install -y tzdata

시간대 선택을 위한 명령줄 옵션이 표시됩니다.스크립트에서 이것을 사용하여 설정하려고 하는데 사용자 입력 없이 apt-get을 실행하려면 어떻게 해야 합니까?

나는 내가 할 수 있는 tz 데이터를 재구성하는 것을 알고 있습니다.

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

그러나 설치할 때 올바른 표준 시간대를 설정하지 않더라도 완전히 실행하려면 언제든지 다시 구성할 수 있습니다.

나는 노력했다.

echo 5 | apt-get install -y tzdata

하지만 예상대로 작동하지 않습니다.

이것은 제가 사용한 스크립트입니다.

(댓글에서 @elquimista의 입력으로 업데이트된 버전)

#!/bin/bash

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

잘 작동하는 것 같습니다.

라이너 하나로:

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

만약 누군가가 그것을 성취하기를 원한다면.Dockerfile아래와 같이 사용합니다.

RUN DEBIAN_FRONTEND=noninteractive apt-get -y install tzdata

심볼릭 링크를 직접 사용하지 않고 구성을 한 번만 실행하려면 다음 명령을 사용하는 것이 좋습니다.

echo 'tzdata tzdata/Areas select Europe' | debconf-set-selections
echo 'tzdata tzdata/Zones/Europe select Paris' | debconf-set-selections
DEBIAN_FRONTEND="noninteractive" apt install -y tzdata

최근 Cingulata FHE 라이브러리를 구축하는 Docker 파일에서 다음 솔루션을 찾았습니다.

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

기본적으로 ipapi.co 에서 제공하는 API를 사용하여 시간대 정보를 검색합니다.그러면 대화 상자를 건너뛰고 기본값(UTC)을 사용하는 대신 표준 시간대가 자동으로 구성됩니다.

이에 대한 모든 크레딧은 @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

제가 한 방법은 다음과 같습니다.

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 명령에 대한 입력을 제공하는 데 사용됩니다.사용자 입력을 요청하지 않고 tz데이터 패키지가 설치됩니다.표준 시간대는 일반적으로 표시되는 메시지에 따라 1과 1을 입력한 것처럼 아프리카/아비잔으로 설정됩니다.그런 다음 마지막 두 명령으로 시간대를 원하는 대로 변경합니다.

1번과 1번 대신에, 당신이 원하는 지리적 지역과 시/지역의 실제 숫자를 사용할 수 있지만, 제가 보기에는 그 숫자들이 바뀔 수 있습니다.

제게 효과가 있었던 것은 다음과 같습니다.

from ubuntu:bionic
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y tzdata

RUN unlink /etc/localtime
RUN ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

댓글을 읽고 TZ 환경변수를 사용하기 위해 아래의 두 단계를 수행했습니다.

  • 도커 파일에 다음을 추가했습니다.
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata && apt-get clean
  • 도커 CMD 스크립트에 다음을 추가했습니다.
    if [ ! -z "${TZ}" ]; then
        echo "${TZ}" > /etc/timezone
        dpkg-reconfigure -f noninteractive tzdata
    fi

이것은 저에게 효과가 있었고 컨테이너를 시작할 때 시간대를 설정할 수 있었습니다.

언급URL : https://stackoverflow.com/questions/44331836/apt-get-install-tzdata-noninteractive

반응형