Apt-get autoremove üzerinden apt-get remove komutunu ne zaman kullanırsınız?


17

Anladığım kadarıyla apt-get removepaketleri kaldırır ve apt-get autoremovebelirli bir pakete bağımlılığı sağlamak için kurulan paketleri kaldırır . Örneğin, LibreOffice'i yüklediysem ve Java diyelim bağımlılıkları varsa ve komutu çalıştırdığımda kurulumun bir parçası olarak yüklesem apt-get libreoffice, neden komutu apt-get remove libreofficeizliyorum apt-get autoremove? Komutu çalıştıramadım apt-get autoremove libreofficemı? Veya birleşimidir apt-get removeve apt-get autoremovefarklı bir amaç için?

Yanıtlar:


12

Bağımlılık izleyicisine ne kadar güvendiğinize bağlıdır. Neredeyse her zaman doğru olsa da, özellikle depoda olmayan bir geliştirici veya ileri düzey kullanıcı yazılımı yüklüyorsanız, bağımlılığın devam etmesini istediğiniz zamanlar vardır.

Yazılımı her zaman istisnasız apt-get yoluyla yüklerseniz ve tüm bağımlılıkların doğru olduğuna güvenirseniz (genellikle oldukları gibi), o zaman apt-get autoremoveaz miktarda sürücü alanı kullanabilir ve potansiyel güvenlik deliklerine daha az maruz kalarak artık ihtiyacı olan paketleri olmayan paketleri kaldırır.

Ancak yazılımı manuel olarak kurarsanız veya yazılım geliştirirseniz veya olası bir bağımlılık hatasıyla uğraşmak istemiyorsanız, potansiyel olarak kullanılmayan paketleri temizlemek için otomatik kaldırmayı kullanmamak muhtemelen daha güvenli bir seçimdir. Arada sırada kullansanız da kullanmasanız apt-get autoremoveda, yazılımı kullanarak her zamanapt-get remove Package

Örneğin, kurarsam AwesomePackage, ona bağlı olabilir AwesomeLibraryve bu nedenle AwesomeLibraryotomatik olarak bir bağımlılık olarak yüklenir . Ben kaldırdığınızda AwesomePackagesürece başka hiçbir paket olduğu gibi, autoremove kullanarak AwesomeLibraryo sıra kaldırılacak bir dependancy olarak. Ama SuperPackageaynı zamanda eğer gerekiyorsa AwesomeLibraryveya AwesomeLibraryotomatik olarak bir bağımlılık ( apt-get install AwesomeLibrary) olarak gelmek yerine kendimi açıkça kurmuş olsaydım , otomatik çalıştırma ondan kurtulamazdı.

Bunun varsayılan olmamasının nedeni AwesomeLibrary, kullanılmayan sisteme sahip olmanın çok küçük bir sorun olmasıdır. Neredeyse hiç sorun yaratmaz ve çoğu bağımlılık fazla yer kaplamaz. İstisnalar vardır, ancak bir bağımlılığın kaldırıldığı zamanlar, bir sorunun çözüleceği veya önleneceği zamanların sayısından fazla soruna neden olacaktır.


Üzgünüm Myrddin Emrys. Beni orada kaybettin. Öyleyse ne dediğini anlayayım. Örneğin, apt-get kullanarak libreoffice yüklersem, zaten yüklü olmadığımı varsayarak bir sürü bağımlılık yüklerdi. Şimdi libreoffice kurtulmak için karar verirseniz, ben koşmak varsayalımapt-get remove libreoffice
PeanutsMonkey

Yüklü bağımlılıkları devam ettirmek istersem doğru mu? Başka bir program tarafından kullanılmadığı varsayılarak hem libreoffice hem de onunla ilişkili bağımlılıklardan kurtulmak istersem, onu alır mıyım apt-get autoremovelibreoffice? Bu doğru mu?
PeanutsMonkey

Bu kesinlikle doğru @PeanutsMonkey. Autoremove, artık bir şey için gerekli olmadıkları ve ayrıca ayrı olarak yüklenmedikleri takdirde, adlandırılan paketin bağlı olduğu diğer paketleri de kaldıracaktır .
Myrddin Emrys

Aslında, bu kesinlikle doğru değil; Cevabımda bazı yanlış sözdizimi vardı (@cooper'ın işaret ettiği gibi). Bunu yukarıdaki cevapta düzelttim. apt-get autoremoveayrı bir komut apt-get remove Package, ilk yanlış bilgi için özür dilerim.
Myrddin Emrys

Teşekkürler Myrddin Emrys. Bir n00b olduğum için üzgünüm. Bunu söylediğinde There are exceptions, but the times when removing a dependancy will cause problems outnumber the times when it will solve or prevent a problem. Tam olarak ne demek istiyorsun?
PeanutsMonkey

12

Sen açıklamasını bulabilirsiniz kaldır , autoremove , tasfiye , temiz ve autoclean yanı sıra apt-get için man sayfalarını sözdizimi: man apt-get.

Eğer okuduktan sonra hala emin değilseniz (Ben) açıklığa kavuşturmak için en iyi yolu denemektir.

Aşağıda vim için tam bağımlılık ağacına bir örnek verilmiştir :

vim-bağımlılık ağacı

Şunlarla alabilirsiniz:

apt-rdepends -d vim > vim.dot
dotty vim.dot

Ayrıca, anında bağımlılıkların bir listesini de alabilirsiniz apt-cache depends( daha fazla bilgi için bkz. Paketler arasındaki ilişkileri bildirme ):

$ apt-cache depends vim
vim
  Depends: vim-common
  Depends: vim-runtime
  Depends: libacl1
  Depends: libc6
  Depends: libgpm2
  Depends: libselinux1
  Depends: libtinfo5
  Suggests: <ctags>
    exuberant-ctags
  Suggests: vim-doc
  Suggests: vim-scripts

Yani vim bir dizi pakete bağlı gibi görünüyor , onu kurmaya çalışalım apt-get installve ne olacağını görelim:

$ sudo apt-get install vim
...
The following extra packages will be installed:
  vim-common vim-runtime
Suggested packages:
  ctags vim-doc vim-scripts
The following NEW packages will be installed:
  vim vim-common vim-runtime
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
After this operation, 25.1 MB of additional disk space will be used.
Do you want to continue [Y/n]? n

Olsun amacıyla vim işe ihtiyacımız -Vim ortak ve vim-çalışma zamanı paketleri ve apt-getbunun ilgilenir. Bunu ile doğrulayabiliriz dpkg -s pkg...( man dpkgdurumlar hakkında daha fazla bilgi için bkz .):

$ sudo dpkg -s libc6
Package: libc6
Status: install ok installed        // we already have it, no need to install

$ sudo dpkg -s vim-common
Package: vim-common
Status: deinstall ok config-files   // we don't have it, have to install

Biz neyi kontrol gibi vim bağlıdır, biz de başka şeyler aynı paketlerinde bağlıdır neyi kontrol edebilirsiniz vim kullanarak apt-cache rdepends. Diğer şeylerin arasında vim görmeliyiz :

$ apt-cache rdepends vim-common
vim-common
Reverse Depends:
  vim-latexsuite
  vim-addon-manager
  vim-tiny
  vim-nox
  vim-gtk
  vim-gnome
 |vim-dbg
  vim-athena
  vim                               // there it is

Kuruluma devam edelim. Biz yükledikten sonra vim biz arasındaki farkı yaşayabilirsiniz kaldır ve autoremove . Önce kaldırmayı deneyelim :

$ sudo apt-get remove vim
...
The following packages will be REMOVED:
  vim
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 1,922 kB disk space will be freed.
Do you want to continue [Y/n]? n

apt-get removedaha sonra vim'i kaldıracaktı, ancak bağımlılıkları onları geride bırakmayacaktı . Şimdi vimin bağımlılıklarından birini kaldırmaya çalışalım :

$ sudo apt-get remove vim-runtime
...
The following packages will be REMOVED:
  vim vim-runtime
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 24.8 MB disk space will be freed.
Do you want to continue [Y/n]? n

Bu, vim-runtime bağımlılığını ve ona bağlı olan paketi , yani vim'i kaldıracaktır . Merakın dışında, vim'in bağımlılık ağacında daha düşük bir bağımlılığı kaldırırsak ne olacağını görelim :

$ sudo apt-get remove libgpm2
...
The following packages were automatically installed and are no longer required:
  libgtkglext1 libqtassistantclient4 libtiff-tools libtiff5 python-qt4
  python-sip python-sqlalchemy python-sqlalchemy-ext
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  anki cheese gimp gimp-gmic gimp-plugin-registry gnome-control-center      // !
  gnome-media gnome-video-effects gstreamer0.10-plugins-good libaa1         // !
  libcheese-gtk21 libcheese3 libgpm2 mplayer quodlibet vim vlc w3m          // !
0 upgraded, 0 newly installed, 18 to remove and 0 not upgraded.
After this operation, 63.1 MB disk space will be freed.
Do you want to continue [Y/n]? n

Vim ve birçok güzellik çıkarır!

apt-get remove vimO zaman devam edelim . Bunu yaptıktan sonra kalanlarımız olmalı. Şimdi otomatik kaldırmayı denersek şunu görebiliriz:

$ sudo apt-get autoremove
...
The following packages will be REMOVED:
  vim-common vim-runtime
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 23.2 MB disk space will be freed.
Do you want to continue [Y/n]? y

Bunlar, apt-get removebaşka hiçbir şeye ihtiyaç duymasa da geride kalan iki paket .

Apt-get 0.9.7.9 ile denendi.


4

Buna göre: http://ubuntuforums.org/showthread.php?t=996053 otomatik çalıştırma, diğer programların ihtiyaç duymadığı tüm paketleri kaldıracaktır. 'Apt-get autoremove libreoffice' değil, 'apt-get autoremove' yapardınız. Ayrıca gereksiz paketlerin kaldırılması sadece biraz disk alanı boşaltmakla kalmaz, aynı zamanda sisteminizin 'saldırı yüzeyini' azaltır.


Kullanılmayan kütüphanelerin bir saldırı vektörü olabileceğini görebiliyorum, ancak yanlış çıkarmanın önemli acısına (bir kereden fazla olduğunu gördüm) göre benim için çok küçük bir sorun gibi görünüyor. Bununla birlikte, kullanımla ilgili bilgi için teşekkür ederim ... Otomatik olarak kaldırmayı yanlış tanımladım (kendim kullanmıyorum, bu yüzden fark etmedim), düzeltme için teşekkür ederim.
Myrddin Emrys

3

removebelirtilen programı silerken, autoremoveartık kullanılmayan bağımlılıkları içerecektir.

Ayrıca, sürücü alanını boşaltmak isterseniz, kullanışlı ve güvenli bir komut ...

sudo apt-get clean

/ Var / cache / apt / archives içindeki yetenek önbelleğini kaldırır


Böyle bir n00b olduğum için üzgünüm ama bunu tam olarak takip etmiyorum. Komutu çalıştırırsam, apt-get remove libreofficelibreoffice'i kaldıracağını düşünüyorum. Bu doğru mu? Ancak komutu çalıştırırsam, apt-get autoremove libreofficesadece libreoffice'i değil, bağımlılıklarını da ortadan kaldırır mıydı?
PeanutsMonkey

Bu doğru. Diyelim ki yükledim neverballve neverballdenilen bir pakete bağlıyım libisfun. Ben apt-get remove neverballo zaman sadece neverballpaketi kaldıracak . Ben ise apt-get autoremove neverballo zaman kaldıracak neverballve libisfuneğer libisfunherhangi bir başka uygulamaya bağımlı değildir.
kobaltz
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.