'-' ile apt-get install (eksi / kısa çizgi) paketleri kaldırır


22

Bazı paketler arıyordum ( nautilus-terminal) ve yanlışlıkla bunu yaptım:

$ 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                                                                                                                                                                                          

Bu oldukça tehlikelidir çünkü kaldırma işlemi yanlış yazılmış bir otomatik tamamlama işleminden basit bir tire işaretinden çok daha zordur.

Bu bir eşdeğer apt-get removemi? Bunun için herhangi bir belge bulamadım. Düzenleme: man sayfasına bakma hariç ...


1
Neden bu daha tehlikelidir apt-get remove? Apt-get, ne yapacağını bile söyler ve onay ister.
marcelm

3
@ marcelm remove, yanlış bir otomatik tamamlama işleminden basit bir tireye göre yanlış yazmaktan çok daha zor.
stebu92

@ stebu92 Mükemmel ifade, sakıncası yoksa bunu ekliyorum.
Ondra Žižka

En azından Y / n -kullanıldığında y / N olarak değiştirilmesi gerektiğini düşünüyorum .
Ondra Žižka

Belki yanlış yorumluyorum ama bu bir sorudan çok bir yakınma / şikayet gibi görünüyor. Bu soruyu göndermenin sonucu olarak bir cevap almayı umduğunuz soru nedir?
thomasrutter

Yanıtlar:


28

Kimden man apt-get:

kurmak
   kurulum için istenen bir veya daha fazla paket takip ediyor
   yükleme veya yükseltme. Her paket bir paket adıdır,
   tam nitelikli dosya adı (örneğin, bir Debian sisteminde,
   apt-utils, sağlanan argüman olur
   apt-utils_1.2.10_amd64.deb). Tüm gerekli paketler
   kurulum için belirtilen paketler de alınacak ve
   Kurulmuş. /Etc/apt/sources.list dosyası, konumu bulmak için kullanılır.
   İstenilen paketler. Paket adına bir tire eklenmişse (ile
   araya girme boşluğu yoktur)
   yüklü. Benzer şekilde, bir artı işaretini belirlemek için kullanılabilir.
   Yüklenecek paket. Bu son özellikler geçersiz kılmak için kullanılabilir
   apt-get'nin çatışma çözüm sistemi tarafından alınan kararlar.

Dolayısıyla OP yapıyor olmalı: sudo apt install nautilus && sudo apt install nautilus-terminalOP ile içinden nereye gittiğini remove: Başka komutu sudo apt install nautilus-terminaleğer HAYIR seçildi?
George Udosen

3
Bu özelliğin mantığı, bazen önceden kurulmuş bir paketle çakışan bir paket yüklemek istediğiniz, ancak bunlardan birinin başka bir paket için gerekli olduğu, bu nedenle her iki eylemin de aynı işlemde olması gerekir. Örneğin apt install sysvinit-core systemd-sysv-( Essential init paketi için gerekli olan ) veya apt install msmtp postfix-(bir MTA'ya bağlı çok sayıda paket).
Simon Richter

1
Çalışırken @SimonRichter apt -s install upstart-sysv16.04 üzerinde gösterir aptotomatik kaldıracaktır systemd-sysv(bunlar çatışma beri). Ditto msmtp-mtave postifx. aptÇıkarılacak yanlış paketi seçmek için daha karmaşık bir örnek gerekebilir .
muru

Kör gözlerimi tamir ettiğin için teşekkürler. Kaydetti apt-get remove foo+yüklemeler foo.
Ondra Žižka

Bu çok hoş bir özellik. : D
Andrea Lazzarotto,

0

Aşağıdaki iki aynı anlamına gelir:

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

Bu nedenle, yalnızca bir şeyi yüklüyorsanız veya kaldırıyorsanız, diğerini seçmek için hiçbir neden yoktur ve removekomut da kullanılabilir.

"Eksi" işlecinin kullanışlı olduğu yer, aynı paketi kullanarak bir paketi çıkarmak ve başka bir tane yüklemek istediğiniz durumlarda :

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

Daha iyi bir örnek düşünemedim, ancak ayrı operasyonlarda birini çıkarmanın ve başka işlemler eklemenin gereksiz yere gereksiz yere ilave edilmesini ya da kaldırılmasını tetikleyebileceği durumlar var, her ikisini de tek bir işlemde yaparken hemen bazı bağımlılıkları giderecek ve başarabilecek genel olarak daha basit bir işlem.

Eksi ekleyerek daha kolay yanlışlıkla istemeden bir şey kaldırmak yapar mı gelince, her şeyden önce bu komut satırında istemeden sisteme zarar oluşturmanın ne kadar kolay sevk zaten . Sizi kendinizden korumak için yapılmamıştır ve sisteminizi hortumlandırabilecek milyarlarca daha basit komutlar vardır. Fakat ikincisi, bu durumda size tam olarak ne yapacağınızı söyler ve gerçekten yapmak istediğinizi onaylar. Bu düşük riskli.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.