apt-get
예/아니오 메시지를 강제로 표시하는 방법이 있나요 ? 옵션 이 있지만 없거나 유사한 옵션이 --force-yes
있는 것 같습니다 . --force-prompt
모든 종속성이 설치된 패키지를 설치하려고 하면 예/아니요 프롬프트가 표시되지 않고 설치가 시작됩니다. 잠재적인 종속성이 미리 설치되었는지 알 수 없기 때문에 종속성이 존재하는지, 어떤 종속성이 설치될지 확인하려는 경우 이는 문제가 될 수 있습니다.
노트:"apt-get install"은 언제 계속할지 여부를 확인하도록 요청합니까?프롬프트가 표시되는 표준 조건을 설명하므로 다소 관련이 있습니다. 강제로 하는 방법을 알고 싶습니다.
답변1
현재 apt-get 구현에서는 이를 수행할 수 없으므로 기능 요청을 제출하고 관리자에게 호소해야 합니다. apt-get의 현재 동작은 설치된 패키지 목록이 설치될 패키지 목록과 동일하고 다른 패키지가 업그레이드 또는 중단의 영향을 받지 않도록 명시적으로 요청하는 경우,apt-get은 사용자가 무엇을 할지 이미 결정했다고 가정합니다., 패키지를 실제로 설치하지 않고 어떤 일이 일어날지 확실하지 않거나 분석하고 싶다면 다음을 사용할 수 있습니다.코스타스가 추천하는의 -s, --simulate, --just-print, --dry-run, --recon, --no-act
.
설치할 패키지의 버전(이 경우 버그)을 분석하고 실제로 설치하기 전에 경고할 수 있는 apt-listbugs와 같은 다른 도구가 있습니다.
답변2
yes
이 명령은 설치할 때만 가정합니다.팩(명령줄에서 시작) 및모든 종속성시스템은 이미 필수 패키지를 제외하고는 아무것도 설치할 필요가 없습니다.
즉, "볼 것이 없으면(추가 패키지 없음) 팁도 없습니다(묻는 것이 없음)"입니다.
테스트 목적으로 키를 사용할 수 있습니다-s, --simulate, --just-print, --dry-run, --recon, --no-act
답변3
오래된 질문인 것 같습니다. 하지만 지금은 비슷한 상황입니다.대개나는 무언가를 사용 sudo aptitude install -P PACKAGE_NAME
하고 설치하기 전에 항상 묻습니다. 그러나 현재 Debian의 기본 패키지 관리자에는 apt|apt-get
이 기능이 없습니다. 물론, 여전히 설치 aptitude
하고 사용할 수 있습니다... 하지만 설치하기 전에 물어볼 작은 sh/bash 래퍼 함수/스크립트를 작성했습니다 apt-get
. 정말 원시적이어서 터미널에 함수로 작성했습니다.
$ f () { sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf'; read -p 'Do You want to continue (y/N): ' ans; case $ans in [yY] | [yY][eE][sS]) sudo apt-get -y install "$@";; *);; esac; }
이제 좀 더 명확하게 설명하자면 다음과 같습니다.
f () {
# Do filtered simulation - without lines contains 'Inst' and 'Conf'
sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf';
# Interact with user - If You want to proceed and install package(s),
# simply put 'y' or any other combination of 'yes' answer and tap ENTER.
# Otherwise the answer will be always not to proceed.
read -p 'Do You want to continue (y/N): ' ans;
case $ans in
[yY] | [yY][eE][sS])
# Because we said 'yes' I put -y to proceed with installation
# without additional question 'yes/no' from apt-get
sudo apt-get -y install "$@";
;;
*)
# For any other answer, we just do nothing. That means we do not install
# listed packages.
;;
esac
}
이 기능을 sh/bash 스크립트로 사용하려면 스크립트 파일( my_apt-get.sh
예: 내용이 포함된 스크립트 파일)을 생성하세요(참고: 목록에는 더 짧게 만들기 위한 주석이 포함되어 있지 않습니다 ;-)).
#!/bin/sh
f () {
sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf';
read -p 'Do You want to continue (y/N): ' ans;
case $ans in
[yY] | [yY][eE][sS])
sudo apt-get -y install "$@";
;;
*)
;;
esac
}
f "$@"
그런 다음 예를 들어 ~/bin/
실행 가능하게 만드십시오 $ chmod u+x ~/bin/my_apt-get.sh
. 디렉토리가 변수 ~/bin
에 포함되어 있으면 PATH
다음을 사용하여 간단히 수행할 수 있습니다.
$ my_apt-get.sh PACKAGE_NAME(S)_TO INSTALL
참고:
- 이 코드는 을 사용합니다
sudo
. 계정을 사용하는 경우root
조정이 필요할 수 있습니다. - 코드가 셸 자동 완성을 지원하지 않습니다.
- 코드가 쉘 모드(예: "!", "*", "?", ...)에서 어떻게 작동하는지 모릅니다.