그것을 분해하자.
우선, apt-get install
(그리고 대부분의 다른 apt-get
주장들도) 작동 하는 방법에 대한 몇 가지 참고 사항 :
여러 패키지 이름을 입력 할 수 있습니다.
sudo apt-get install foobar spamegg
패키지 이름은 실제로 정규 표현식 (ERE) (확인 확장되는 man 7 regex
패키지 이름이 그래서) 패턴 foo.bar
이로 시작하는 문자열을 포함하는 패키지 이름 의미 foo
와 끝 bar
사이의 임의의 단일 문자 foo
와 bar
. 가능성 f.*r
이있는 문자열이 포함 된 모든 패키지 이름 의미 f
와 r
문자의 수와 그 사이에 아무것도 즉. 전체 패키지 이름을 일치 시키려면 시작 및 종료 토큰을 사용하십시오 (예 :) ^foo.bar$
. 정규식 토큰을 문자 그대로 취급하려면 \
예를 들어 문자 그대로 취급하기 위해 토큰을 이스케이프 foo.bar
해야합니다.
sudo apt-get install 'foo\.bar'
여기서 작은 따옴표는 패턴을 글 로빙 패턴으로 쉘 해석을 방지하기위한 것입니다.이 경우에는 필요하지 않지만, 예를 들어 foo.*bar
현재 디렉토리에 파일 이름이 eg 인 경우 패턴에 필요합니다 foo.bar
.
패키지 이름을 고려해야합니다. 패턴과 일치하는 패키지가 있으면 패턴이 문자 그대로 처리되고 정규식 해석이 수행되지 않습니다. 예를 들어, 패키지 패턴 의 경우 정규식 토큰과 상관없이 문자 그대로 g++
패키지와 일치합니다 . 정의 된 저장소에 이름이 지정된 패키지가 없으면 ERE 패턴으로 취급됩니다.g++
+
g++
이제 다음 명령을 내 렸습니다.
sudo apt-get install g++ 5.0
이것은 다음을 의미합니다.
패키지 g++
와 함께 제공된 두 가지 패턴을 설치하려고합니다.5.0
g++
g++
위에서 언급 한 리터럴 메타 패키지와 일치
나머지 부분 5.0
에는 정규식 토큰, .
즉 단일 문자가 있습니다. 따라서 이것은를 포함하는 모든 패키지 이름과 일치합니다 5<any_character>0
. 따라서 일치하는 모든 패키지가 설치 virtualbox-5.0
되도록 선택되었으며 프로세스에서도 선택되었습니다.
아마도 당신은 g++
version 을 설치하고 싶을 5
것이므로 다음과 같이하면 됩니다 (이 답변에서 이미 언급했습니다 ); 메타 g++-5
패키지는 g++
버전 5 의 최신 마이너 릴리스 패키지를 나타냅니다 .
sudo apt-get install g++-5
구성된 저장소 내에서 패키지를 검색하려면 다음 apt-cache
과 같이 ERE를 사용하십시오 apt-get
.
apt-cache search 'g\+\+-[0-9]+'
정규식으로 바꾸지 않으려면을 사용 less
하여 다소 큰 목록을 아래로 스크롤하십시오.
apt-cache search g++ | less
또한 확실하지 않은 것을 설치하기 전에 -y
( --assume-yes
) 옵션을 사용하지 말고 먼저 -s
( --simulate
/ --dry-run
)로 테스트하십시오 .
sudo apt-get install --dry-run foobar
apt-get
는 사용자에게 확인을 요청하므로n
VirtualBox 설치를 삽입 하고 피할 수 있습니다 ... 또한 Ubuntu의 저장소가 확인되므로 처음 설치할 수있는 맬웨어 패키지가 없어야합니다. 당신이 임의있는 PPA를 추가 할 경우 이런 일이 발생하지만, 수의 왜냐하면 당신이 신뢰할 수없는 소스에서 응용 프로그램을 설치하는 우분투 말했다.