저는 Ubuntu PC에 필요한 모든 애플리케이션을 한 번에 설치하기 위해 쉘 스크립트를 작성하고 있습니다(산책하거나 다른 일을 할 수 있는 동안). -y
명령문 끝에 추가하는 대부분의 애플리케이션에서는 apt-get install
사용자 개입이 필요하지 않도록 잘 작동했습니다. 내 스크립트는 다음과 같습니다.
#!/bin/bash
add-apt-repository ppa:webupd8team/sublime-text-3 -y
apt-get update -y
apt-get upgrade -y
apt-get install synaptic -y
apt-get install wireshark -y
Do you want to continue? [Y/n]
더 이상 또는 에 대해 걱정할 필요가 없지만 Press [ENTER] to continue or ctrl-c to cancel adding it
문제는 에 있으며 wireshark
아래와 같이 대화형 프롬프트에 응답해야 합니다.
이 의무적인 개입을 어떻게 피할 수 있습니까?
답변1
구성debconf데이터 베이스:
echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
그런 다음 설치하십시오.와이어샤크:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark
다음의 출력을 억제할 수도 있습니다.적절한. 이 경우:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark > /dev/null
답변2
apt/dpkg 시스템에는 무인 또는 비대화형 설치를 제공하는 기능이 있습니다.
DEBIAN_FRONTEND
여기에는 변수를 플래그로 설정 noninteractive
하고 사용하는 작업이 포함됩니다 -y
. 예를 들어:
export DEBIAN_FRONTEND=noninteractive
apt-get -y install [packagename]
오류가 발생하면 실제로 비대화형 설치를 수행하고 있음을 q
보다 강력하게 확신시키기 위해 옵션 을 설정해야 할 수도 있습니다 . dpkg
DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename]
어떤 경우에는 동일한 스크립트/셸 프로세스에서 나중에 설치하는 일부 패키지에 대한 프롬프트를 따르는 것이 더 쉬울 수 있습니다. 이 경우 변수 내보내기를 취소할 수 있습니다 DEBIAN_FRONTEND
.
unset DEBIAN_FRONTEND
구성 옵션을 미리 설정하려면 debconf-utils
다음 명령을 사용하면 유용합니다 debconf-get-selections
.
sudo apt-get install debconf-utils