'-'(빼기 / 하이픈)으로 apt-get 설치하면 패키지가 제거됩니다.


22

패키지 ( nautilus-terminal)를 찾고 있었고 우연히 이것을했습니다.

$ sudo apt-get install nautilus-
Reading package lists... Done                                                                                                                                                                                                 
Building dependency tree                                                                                                                                                                                                      
Reading state information... Done                                                                                                                                                                                             
The following packages were automatically installed and are no longer required:                                                                                                                                               
  apturl apturl-common libgail-3-0 linux-headers-4.4.0-57 linux-headers-4.4.0-57-generic linux-image-4.4.0-57-generic linux-image-extra-4.4.0-57-generic                                                                      
Use 'sudo apt autoremove' to remove them.                                                                                                                                                                                     
The following packages will be REMOVED:                                                                                                                                                                                       
  gnome-session-flashback nautilus nautilus-sendto nautilus-share ubuntu-desktop                                                                                                                                              
0 upgraded, 0 newly installed, 5 to remove and 69 not upgraded.                                                                                                                                                               
After this operation, 2 031 kB disk space will be freed.                                                                                                                                                                      
Do you want to continue? [Y/n] ^[[^C                                                                                                                                                                                          

자동 완성에 실패한 간단한 대시보다 제거가 잘못 입력하기가 훨씬 어렵 기 때문에 매우 위험합니다.

이것과 동등 apt-get remove합니까? 그에 대한 문서를 찾을 수 없습니다. 편집 : 맨 페이지를 내려다 보는 것을 제외하고 ...


1
왜 그보다 더 위험한 apt-get remove가요? Apt-get은 수행 할 작업을 알려주고 확인을 요청합니다.
marcelm

3
@marcelm remove은 실패한 자동 완성으로 인한 간단한 대시보다 잘못 입력 하기 가 훨씬 어렵 기 때문 입니다.
stebu92

@ stebu92 완벽한 말로, 마음에 들지 않으면 추가하고 있습니다.
Ondra Žižka

적어도 Y / N을 사용할 때 y / N으로 변경해야한다고 생각합니다 -.
Ondra Žižka

어쩌면 내가 잘못 해석하고 있지만 이것은 질문보다 더 많은 불만 / 불만처럼 보입니다. 이 글을 게시 한 결과 답변을 얻고 자하는 질문은 무엇입니까?
thomasrutter

답변:


28

보낸 사람 man apt-get:

설치하다
   설치 후 원하는 하나 이상의 패키지가 뒤 따릅니다.
   설치 또는 업그레이드. 각 패키지는 패키지 이름이며
   정규화 된 파일 이름 (예 : 데비안 시스템에서
   apt-utils는 제공된 인수가 아니라
   apt-utils_1.2.10_amd64.deb). 필요한 모든 패키지
   설치용으로 지정된 패키지도 검색되고
   설치되었습니다. /etc/apt/sources.list 파일은
   원하는 패키지. 패키지 이름에 하이픈이 추가 된 경우
   중간에 공간이없는 경우 식별 된 패키지가 있으면 제거됩니다.
   설치되어 있습니다. 마찬가지로 더하기 부호를 사용하여
   설치할 패키지. 후자의 기능은 무시하는 데 사용될 수 있습니다
   apt-get의 갈등 해결 시스템에 의해 내려진 결정.

따라서 OP는 일을해야한다 : sudo apt install nautilus && sudo apt install nautilus-terminalOP가 함께 겪었던 곳 remove: 다른 명령 sudo apt install nautilus-terminal경우 NO가 선택되었다?
George Udosen

3
이 기능의 이론적 근거는 때로는 이미 설치된 패키지와 충돌하는 패키지를 설치하려고하지만 다른 패키지에는 패키지 중 하나가 필요하므로 두 작업이 모두 같은 실행에 있어야한다는 것입니다. 예 apt install sysvinit-core systemd-sysv-( Essential init 패키지에 필요) 또는 apt install msmtp postfix-(많은 패키지가 MTA에 따라 다름)
Simon Richter

1
apt -s install upstart-sysv16.04에서 @SimonRichter를 시도 apt하면 systemd-sysv충돌하므로 자동으로 제거됩니다 . 저두 요 msmtp-mta하고 postifx. apt제거 할 잘못된 패키지를 선택할 수있는보다 복잡한 예가 필요할 수 있습니다 .
muru

내 눈을 고정 해줘서 고마워 apt-get remove foo+foo 를 설치합니다.
Ondra Žižka

그것은 일종의 깔끔한 기능입니다. : D
Andrea Lazzarotto

0

다음 두 가지는 동일합니다.

# apt-get remove nautilus
# apt-get install nautilus-

따라서 하나만 설치하거나 제거하는 경우 실제로 다른 것을 선택해야 할 이유가 없으므로 remove명령을 사용할 수도 있습니다.

"빼기"연산자가 편리한 곳은 하나의 패키지를 제거 하고 동일한 작업으로 다른 패키지를 설치하려는 경우입니다 .

# apt-get install php5-cgi libapache2-mod-php5- 

더 나은 예를 생각할 수는 없지만 하나를 제거하고 별도의 작업으로 다른 것을 추가하면 불필요한 설치 또는 제거가 추가로 발생할 수 있지만, 단일 작업으로 둘 다 수행하면 즉시 일부 종속성을 충족시켜 만들 수있는 상황이 있습니다. 전체적으로 간단한 작업.

마이너스를 추가하면 실수로 실수로 무언가를 제거하기가 더 쉬운 지 여부는 무엇보다 먼저 명령 행에서 실수로 시스템에 손상을 입히는 것이 얼마나 쉬운지를 참조 합니다 . 그것은 당신을 자신을 보호하기 위해 만들어지지 않았으며 시스템을 강화시킬 수있는 수십억 가지의 더 간단한 명령이 있습니다. 그러나 두 번째로,이 경우에는 수행 할 작업을 정확하게 알려주고 실제로하고 싶다는 것을 확인합니다. 이것은 위험이 낮습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.