apt-get install을 사용할 때 '예'로 자동 응답


356

apt-get install"[y / N] 계속 하시겠습니까?"에 "예"라고 대답 할 수있는 방법이 있습니까?

답변:



175

문제 :

apt-get --yes install $something

패키지 서명 소유자의 공개 키가 키 링 또는 기타 조건에없는 경우 수동 확인을 요청한다는 것입니다. 확인을 요구하지 않도록하려면 다음을 수행하십시오.

apt-get --yes --force-yes install $something

이러한 설정을 영구적으로 유지하려면 /etc/apt/apt.conf.d/90forceyes와 같이 /etc/apt/apt.conf.d/에 다음 내용으로 파일을 만듭니다.

APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";

3
다양성 +1 모두 -y지루해졌다. (더 자세한 답변입니다.)
Dennis Williamson

1
" '예, 내가 말한대로하세요!'라는 문구를 계속 입력하려면"이라고 표시 될 때도 작동합니까? 그렇지 않으면 해결 방법이 무엇입니까? 내 chrooted 데비안 이미지에서 sysvinit를 systemd로 바꾸려고 할 때이 문제가 발생합니다.
Lennart Rolland

13
지금까지 사용하지 마십시오 --force-yes:로 에이 관련 실이 응답debian-devel 제안 --force-yes시스템을 사용하지 못하게 될 수 있습니다. (답변은 실제로 OP에 명시된 문제를 해결하기 때문에 하향 조정되지는 않지만 어쨌든 대답에 큰 빨간색 경고를 추가합니다.)
kostix

7
APT :: Get :: 가정-예 "true"; 도커 컨테이너의 설치에서 중단을 피하는 데 도움이되었습니다.
Mehdi Sadeghi

3
force-yes는 더 이상 사용되지 않습니다. tracker.mender.io/browse/CFE-2360
rrawat

53

대화식 프롬프트가 표시 될 때 기본 응답으로 자동 이동하려면 다음을 사용할 수 있습니다. DEBIAN_FRONTEND=noninteractive

단일 설치 :

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]

예 :

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix

모든 업데이트 :

sudo DEBIAN_FRONTEND=noninteractive apt-get -y update 

및로 더 미세한 옵션 을 설정할 수 있습니다 .-o Dpkg::Options::="--force-confdef"-o Dpkg::Options::="--force-confold"

예 :

apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"

또는

apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

대화식 프롬프트의 예 :

여기에 이미지 설명을 입력하십시오

흥미로운 내용 : 데비안 패키지 무인 설치 수행


1
좋은 대답입니다. 로도 -y서비스를 다시 시작할 것인지 묻는 메시지가 계속 표시됩니다. 모든 프롬프트를 완전히 제거하려면 이것이 필요했습니다.
wisbucky

14
APT::Get::Assume-Yes "true";

APT::Get::force-yes "true";

이것은 적어도 /etc/apt/apt.conf의견 이 있어야 합니다. 우분투가 항상 마이크로 소프트의 허가를 요구한다는 점을 걱정한다.

"확실합니까?", 물론 확신합니다. 나는 단순히 키보드를 타이핑하고 행복하게 클릭하는 훈련 된 원숭이가 아닙니다.

다음에 문은 "당신은 정말로 나가고 싶습니까?"라고 물을 것입니다.
오븐에서 "요리하겠습니까?"라고 묻습니다.
자동차가 "브레이크를 하시겠습니까?"라고 물을 것입니다.
소화기가 "불을 끄시겠습니까?"라고 묻습니다.
미안 데이브, 당신이 그렇게 할 수 없습니다.
HAL9000은 수축을 사용할 수 있지만 데이터는 사용할 수 없거나 사용할 수 없습니다.


3
HAL9000과 dpkg의 허가 요청과의 차이점은 HAL은 "아니오, 기간"이라고 말한 반면 "예, 말대로하십시오"는 시스템을 완전히 완전하게 중단하려는 경우에만 나타납니다. 그것이 당신이 원하는 것이라면, 계속하십시오. 그러나이 경우 경고를하는 것이 합리적입니다.
Wouter Verhelst


7
apt-get -y update
apt-get -y install [package]

2
+1인데 왜 update권한이 필요한가요?
amyassin

@amyassin apt-get update명령은 루트가 소유 한 시스템 파일 인 로컬 패키지 목록 (인덱스)을 업데이트하므로 루트 권한이 필요합니다.
jjmontes

3

일반적으로 매뉴얼의 옵션이 잘 작동합니다

apt-get -y --force-yes install package

성공하지 못하면 yes명령을 사용해보십시오 .

yes | apt-get -y --force-yes install package

내 방랑 한 쉘 프로비저닝 스크립트와 함께 이것을 사용했다

추신 : 비 대화 형을 원하지만 일반적으로 아니요를 지정하면 다음을 시도 할 수 있습니다.

yes no | apt-get install package

1

새로운 ( well ) apt별칭은 -y( --yes) 스위치도 사용합니다.

sudo apt -y upgrade

1

항상 -y 인수를 원하면 줄을 추가하는 것이 좋습니다.

alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands

.bashrc에. 이것은 설명에서 알 수 있듯이 모든 apt-get 명령에 -y 인수를 자동으로 추가하므로 모든 다운로드를 승인합니다.


참고 : 이것은 .bashrc를 되돌리고 쉘을 다시 시작할 때까지 그대로 유지됩니다.


1

특히 wireshark를 설치할 때 스크립트에서 기본값이 아닌 것을 선택하는 방법을 찾고 있었고 다음과 같이 tmux를 사용하여 쉘과 상호 작용했습니다.

# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.