나는 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]
더 이상 or 에 대해 걱정할 필요가 없지만 Press [ENTER] to continue or ctrl-c to cancel adding it
문제는 wireshark
다음과 같은 대화형 프롬프트에 응답해야 한다는 것입니다.
그러한 강제 개입을 피하는 방법은 무엇입니까?
답변1
구성데브 컨퍼런스데이터 베이스:
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