왜 sudo apt-get install XXXX가 때때로 확인을 요청 하는가?


29

호기심을 위해, 때로는 apt-get install software_name터미널을 통해 소프트웨어를 설치하는 동안 "예 또는 아니오"유형의 확인 메시지가 표시되지만 항상 그런 것은 아닙니다.

sudo 비밀번호 프롬프트를 의미하지는 않지만 "XXX KB를 다운로드하여 구성 하시겠습니까?"라는 메시지가 표시됩니다. (또는 비슷한 것)

왜?


2
기본적으로 인수에 언급 된 패키지 이외의 패키지를 설치해야하는 경우 요청합니다.
muru

답변:


24

일반적으로 설치하려는 소프트웨어에 따라 제안되거나 권장되는 패키지가 있는지 묻습니다. 또한 프로그램 크기 나 다운로드하는 리포지토리의 보안에 따라 달라질 수 있습니다.


나는 같은 동기를 생각했다. 그러나 나는 대답을 확보하고 싶다
Strae

예,이 답변은 맞습니다. -y메시지를 표시하지 않으려는 경우 플래그를 사용하여 (무엇을 자동화하려는 경우 유용) 추가 할 수 있습니다 .
Umang

@ Umang : 힌트 주셔서 감사하지만, 지금은 아무것도 자동화 할 필요가 없습니다, 그냥 호기심이었다;)
Strae

12

apt-get install new-package 주어진 패키지의 종속성을 설치하는 경우에만 확인을 요청합니다.

지정한 단일 패키지 만 추가로 설치하지 않으면 이미 입력 한 패키지를 "확인"했으므로 조용하게 유지됩니다.
그러나 일부 의존성 패키지가 있으면 마음이 바뀌고 설치를 중지하려고 할 수 있습니다 (예 : 이전에 문제가 발생했기 때문에). y / n을 묻는 메시지가 표시됩니다.

이제 수행 할 작업을 보려면 설치 명령을 드라 이런 / 시뮬레이션 할 수 있습니다. -s인수 에를 추가하여이 스위치를 설정합니다 . 예 : 단일 패키지 설치sudoku

bytecommander@AlkaliMetal:~$ sudo apt-get install sudoku -s
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sudoku
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Inst sudoku (1.0.1-5 Ubuntu:14.10/utopic [i386])
Conf sudoku (1.0.1-5 Ubuntu:14.10/utopic [i386])

확인 메시지가 표시되는 것처럼 어떻게되는지, 다운로드 크기는 표시되지 않습니다.

따라서 다른 스위치를 사용할 수 있습니다 --print-uris. 같은 예 :

bytecommander@AlkaliMetal:~$ sudo apt-get install sudoku --print-uris
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sudoku
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 28.4 kB of archives.
After this operation, 106 kB of additional disk space will be used.
'http://ftp.uni-stuttgart.de/ubuntu/pool/universe/s/sudoku/sudoku_1.0.1-5_i386.deb' sudoku_1.0.1-5_i386.deb 28426 MD5Sum:ecd0e3cd4fc1e4e4edfe6c59d1c54847

--print-uris스위치는 실제 설치를 차단하지만 다운로드 및 설치 크기와 패키지에 대한 추가 정보 (웹 주소 및 md5sum이)를 표시하지 않습니다.
주의 : 마십시오 사용하지 --print-uris -s 함께. 그것은 -s단지 보일 것 입니다.
또한 -y출력을 처리하려면 스위치가없는 일반 설치와 동일한 규칙에 따라 확인 메시지가 표시되므로 스위치를 추가해야합니다 (= 모든 질문에 예라고 가정).


이제 다른 모든 내용을 읽을 필요없이 다운로드 및 설치된 파일 크기 정보 만 필터링하려면 다음 명령을 사용하여이 작업을 수행 할 수 있습니다 (@terdon의 도움을 주셔서 감사합니다). 다시 예를 들면 sudoku다음 과 같습니다.

bytecommander@AlkaliMetal:~$ LANG=C sudo apt-get -y --print-uris install sudoku | grep -Po '^(Need to|After this).*?\K[0-9.]+[ a-zA-Z]+? '
28.4 kB
106 kB

출력의 첫 번째 줄은 다운로드 크기이고 두 번째 줄은 설치에 필요한 공간을 나타냅니다.

이 명령은 입력하기가 어렵고 기억하기도 어렵 기 때문에 다음과 같은 스크립트 파일에 다음을 복사하십시오 apt-get-install-checker.sh.

#! /bin/bash

LANG=C sudo apt-get install -y --print-uris $* |
grep -Po '^(Need to|After this).*?\K[0-9.]+[ a-zA-Z]+? ' |
sed '1,1s/^/Download size: /;2,2s/^/Installed size: /'

chmod +x apt-install-checker.sh실행하기 전에 잊지 마십시오 !

출력 예 :

bytecommander@AlkaliMetal:~/bin$ ./apt-install-checker.sh sudoku
Download size: 28.4 kB 
Installed size: 106 kB 

스크립트는 아직 개발 중입니다! 계획된 기능 : 설치를 수행 할 것인지 묻고 계속해서 실행해야합니다. 어쩌면 내일 내 마음에 들어오는 다른 멋진 도구들 ...


그러나 매번 물어 보는 방법이 있습니까? 프로그램의 실제 코드를 변경하더라도.

@Toroidal 프로그램 코드 변경은 여기의 범위를 약간 벗어납니다. 환경 설정을 변경하는 방법을 알아 내려면 apt또는 apt-get의 맨 페이지를 파헤쳐 야 할 수도 있습니다 .
토마스 워드

9

내가 이해하는 것에서 apt-get은 설치할 추가 종속성이있는 경우에만 확인을 요청합니다. 모든 패키지에 대해 기본적으로 확인을 강제 할 수있는 방법이 없습니다.

그러나 적성을 사용할 때 설치 명령을 강제로 확인하는 것이 가능합니다.

echo 'Aptitude::CmdLine::Always-Prompt "true";' | sudo tee -a /etc/apt/apt.conf.d/05aptitude

또는 aptitude특정 실행에 대한 프롬프트를 표시하려면을 사용하십시오 aptitude -P.
Eliah Kagan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.