apt-get autoremove를 통해 언제 apt-get remove를 사용 하시겠습니까?


16

apt-get remove패키지 apt-get autoremove를 제거하고 주어진 패키지에 대한 종속성을 충족시키기 위해 설치된 패키지를 제거 한다는 것을 이해 합니다. 예를 들어 LibreOffice를 설치하고 Java에 의존하고 명령을 실행할 때 설치의 일부로 설치 한 경우 apt-get libreoffice왜 명령을 실행 한 apt-get remove libreoffice다음에 apt-get autoremove? 단순히 명령을 실행할 수 apt-get autoremove libreoffice없습니까? 또는의 조합 apt-get removeapt-get autoremove다른 목적은?

답변:


11

의존성 추적기를 얼마나 신뢰하는지에 달려 있습니다. 거의 항상 올바른 반면, 특히 저장소에없는 소프트웨어를 설치하는 개발자 또는 고급 사용자 인 경우 종속성을 유지하려는 경우가 있습니다.

예외없이 항상 apt-get을 통해 소프트웨어를 설치하고 모든 종속성이 올바른지 (평상시와 다름) 신뢰하는 경우 apt-get autoremove소량의 드라이브 공간을 사용 하고 확보함으로써 잠재적 인 보안 허점에 대한 노출을 줄일 수 있습니다 더 이상 필요한 패키지가없는 패키지를 제거합니다.

그러나 소프트웨어를 수동으로 설치하거나 소프트웨어를 개발하거나 가능한 종속성 오류를 처리하지 않으려는 경우 autoremove를 사용하여 잠재적으로 사용되지 않는 패키지를 지우지 않는 것이 더 안전한 선택 일 수 있습니다. apt-get autoremove매번 사용하는지 여부에 관계없이 항상 다음을 사용하여 소프트웨어를 제거합니다.apt-get remove Package

예를 들어, 설치하면에 AwesomePackage의존 할 수 AwesomeLibrary있으므로 의존성AwesomeLibrary 으로 자동 설치됩니다 . 다른 패키지 에 의존성 이없는 한 자동 제거를 사용하여 제거하면 제거됩니다. 그러나 또한을 필요 로하거나 의존성 ( ) 으로 자동으로 들어오는 대신 명시 적으로 직접 설치 했다면 autoremove는 그것을 제거하지 못합니다.AwesomePackageAwesomeLibrarySuperPackageAwesomeLibraryAwesomeLibraryapt-get install AwesomeLibrary

이것이 기본값이 아닌 이유 AwesomeLibrary는 시스템에서 사용하지 않는 것이 매우 사소한 문제이기 때문입니다. 거의 문제를 일으키지 않으며 대부분의 종속성은 많은 공간을 차지하지 않습니다. 예외가 있지만 종속성을 제거 할 때 문제를 해결하거나 예방할 수있는 횟수보다 문제가 발생할 수 있습니다.


죄송합니다. Myrddin Emrys. 넌 날 잃었 어 당신이 한 말을 이해하려고 노력하겠습니다. 예를 들어 apt-get을 사용하여 libreoffice를 설치하면 이미 설치되어 있지 않다고 가정하여 모든 종속성을 설치합니다. 이제 libreoffice를 제거하기로 결정하면 다음을 실행한다고 가정합니다.apt-get remove libreoffice
PeanutsMonkey

내가 설치 한 의존성을 유지하려면 그게 맞습니까? 다른 프로그램에서 사용하지 않았다고 가정하여 libreoffice와 관련 종속성을 모두 제거하려면 명령을 실행하십시오 apt-get autoremovelibreoffice. 그 맞습니까?
PeanutsMonkey

@PeanutsMonkey는 절대적으로 정확합니다. Autoremove는 명명 된 패키지가 더 이상 필요하지 않고 목적에 따라 별도로 설치되지 않은 경우 명명 된 패키지가 종속 된 다른 패키지 도 제거 합니다 .
Myrddin Emrys

실제로, 그것은 절대적으로 정확하지 않습니다. 내 대답에 잘못된 구문이 있습니다 (@cooper가 지적한대로). 위의 답변에서 이것을 수정했습니다. apt-get autoremove와 별도의 명령으로 apt-get remove Package초기 잘못된 정보에 대해 사과드립니다.
Myrddin Emrys

감사합니다 Myrddin Emrys. 내가 n00b라면 죄송합니다. 당신이 그렇게 말할 때 There are exceptions, but the times when removing a dependancy will cause problems outnumber the times when it will solve or prevent a problem. 정확하게 무슨 뜻입니까?
PeanutsMonkey

12

apt-get :의 맨 페이지에서 구문뿐만 아니라 remove , autoremove , purge , cleanautoclean에 대한 설명을 찾을 수 있습니다 man apt-get.

그래도 그것을 읽은 후에 확실하지 않은 경우 (나는) 그것을 명확히하는 가장 좋은 방법은 그것을 시험해 보는 것입니다.

다음은 vim 에 대한 전체 종속성 트리의 예입니다 .

vim 의존성 트리

당신은 그것을 얻을 수 있습니다 :

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

다음을 사용하여 즉각적인 종속성 목록을 얻을 수도 있습니다 apt-cache depends(자세한 내용 은 패키지 간 관계 선언 참조 ).

$ 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

vim 은 많은 패키지에 의존 하는 것처럼 보입니다. 함께 설치하고 apt-get install어떤 일이 일어나는지 봅시다 .

$ 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

얻기 위하여 정력 일에 우리가 필요 -정력 일반VIM-런타임 패키지 및 apt-get그 처리됩니다. 우리는 그것을 확인할 수 있습니다 dpkg -s pkg...( man dpkg상태에 대한 자세한 정보는 참조 ) :

$ 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

우리가 무엇을 확인 것처럼 정력 에 따라, 우리는 또한 다른 것들과 동일한 패키지에 따라 확인할 수 있습니다 정력 사용 apt-cache rdepends. 우리는 다른 것들 중에서도 vim을 보아야합니다 .

$ 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

설치를 계속합시다. vim 을 설치하면 removeautoremove 의 차이를 경험할 수 있습니다 . 먼저 제거해 봅시다 :

$ 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 remove그런 다음 vim 을 제거 하지만 종속성을 남기지 않습니다 . 이제 vim 의 의존성 중 하나를 제거하려고합니다 :

$ 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

이것은 의존성 vim-runtime 의존 하는 패키지 , 즉 vim을 제거 합니다. 호기심에서 vim 의 의존성 트리 에서 낮은 의존성을 제거하면 어떻게 될지 봅시다 :

$ 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과 많은 케이크를 제거 할 것입니다!

계속 진행하겠습니다 apt-get remove vim. 우리가 한 후에 남은 음식이있을 것입니다. 이제 자동 제거를 시도 하면 다음을 볼 수 있습니다.

$ 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

이것들은 apt-get remove다른 것이 필요하지 않더라도 남겨진 두 패키지 입니다.

apt-get 0.9.7.9로 실험했습니다.


4

이것에 따르면 : http://ubuntuforums.org/showthread.php?t=996053 autoremove는 다른 프로그램이 필요하지 않은 모든 패키지를 제거합니다. 'apt-get autoremove libreoffice'가 아닌 'apt-get autoremove'를 수행합니다. 또한 불필요한 패키지를 제거하면 디스크 공간이 약간 확보 될뿐만 아니라 시스템의 "공격 영역"이 줄어 듭니다.


사용하지 않은 라이브러리가 공격 벡터가 될 수 있지만 부적절한 제거의 심각한 고통과 관련하여 매우 작은 문제 인 것 같습니다 (이는 두 번 이상 발생했습니다). 그러나 사용법에 대한 정보를 주셔서 감사합니다 ... 실제로 autoremove를 잘못 설명하고 있습니다 (내가 직접 사용하지 않으므로 인식하지 못함). 수정 주셔서 감사합니다.
Myrddin Emrys

3

remove지정된 프로그램을 삭제하지만 autoremove더 이상 사용되지 않는 종속성을 포함합니다.

또한 드라이브 공간을 확보하려면 유용하고 안전한 명령이 있습니다.

sudo apt-get clean

/ var / cache / apt / archives에서 적성 캐시를 제거합니다.


그런 n00b 인 것에 대해 죄송하지만 나는 그것을 따르지 않습니다. 따라서 명령을 실행하면 apt-get remove libreoffice간단히 libreoffice를 제거합니다. 맞습니까? 그러나 명령을 실행하면 apt-get autoremove libreofficelibreoffice뿐만 아니라 그 종속성도 제거됩니까?
PeanutsMonkey

맞습니다. 그래서 내가 설치할 것을 가정 해 봅시다 neverballneverball라는 패키지에 따라 달라집니다 libisfun. 그렇다면 패키지 apt-get remove neverball만 제거 neverball합니다. 내가하면 apt-get autoremove neverball그것은 제거 neverball하고 libisfun경우는 libisfun다른 응용 프로그램에 의존하지 않습니다.
kobaltz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.