적성 대 apt-get : 권장되는 도구 (일명“오른쪽”)는 무엇입니까?


94

얼마 전에 나는 그것이 aptitude데비안 기반 시스템에 설치하기 위해 선호되는 도구 라는 것을 읽었습니다 . 그러나 데비안 기반 시스템을 관리하는 방법을 검색 할 때 적성을 언급하는 경우는 거의 없습니다. 대부분의 사람들이 선호하는 것 같습니다 apt-get. 데비안 위키 페이지에서도 마찬가지입니다!

따라서 나는 무언가를 놓쳤는 지 궁금합니다. 어떤 도구를 사용해야합니까?


흥미롭게도 우분투는 더 이상 aptitude기본적으로 설치되지 않습니다 .
기계 달팽이

2
나에게 가장 중요한 차이점은 문서를 철저히 읽은 후에 적성을 통해 패키지 소스를 얻는 방법을 찾을 수 없다는 것입니다. apt-get source package-name그것을 할 것이지만, 적성과 동등한 것을 보지 못했습니다
EricR

2
한 가지는 aptitude search package-name적성에서 작동합니다. 또 다른 aptitude why package-name것도 유용하지만에 없습니다 apt-get. 또한 명령 줄이 aptitude에 비해 약간 정리되어 apt-get있습니다. 그러나 알다시피, aptitude build-dep package-name없습니다 aptitude source package-name.
Anders

답변:


73

aptitudeapt-get많은 작업에 동일하게 작동하지만, 이러한 분포 업그레이드 (같은 가장 까다로운 경우를 위해 apt-get dist-upgradeaptitude full-upgrade), 서로 다른 규칙을 가지고 있고, 적성의 규칙이 항상 거의가 동의 실제로 더 낫다.

당신이 더 설명서를 참조 이유 apt-get이상은 aptitude주로 관성입니다 : aptitude대한 APT에 권장되는 프런트 엔드되지 않았습니다 모든 것을 한, 기존 문서의 너무 많은 부분이 업데이트되지 않은, 그리고 장점을 인식하는 많은 사람들이 있습니다 aptitude이상은 apt-get그러나 apt-get반사적으로 사용하십시오 .

나는 최근에 내가 일반적으로 따르는 점에있어 apt로모그래퍼 i아니라 -내가 입력 할 때.

포스트 스크립트 규칙에서 사용 주 apt-getaptitude휴 버트 댓글에서 지적으로, 데비안 레니에서 권장하는 업그레이드 경로가 지금 사용 - 목표를 이동 apt-get하지 aptitude. 이것은 apt-get현재 패키지에 대해보다 적은 상태를 추적 한다는 사실을 반영 aptitude하므로 APT 상태가 "깨끗하지 않은"것에 대해 걱정할 필요가 없으며 apt-get규칙이 예전보다 똑똑하기 때문입니다. 난 아직도 사용하는 것이 좋습니다 aptitude이상 apt-get하지만, 더 미묘한 추천입니다


6
또한 aptitude를 사용하면 가능한 충돌 해결 방법을 쉽게 찾아 볼 수 있지만 apt-get을 사용하면 일반적으로 가능한 한 가지 방법 만 표시되며이를 수락하거나 직접 해결해야합니다 (dpkg를 사용하는 fe).
liori

20
apt-get더 메모리 효율적이라는 장점이 있습니다. 이것은 대부분의 사용자에게 눈에 띄지 않을 것입니다. 32MB의 RAM으로 전체 데비안 설치에서 패키지를 업그레이드하려고 시도하기 전까지는 실제로 알지 못했습니다. aptitude실행 당 약 1 시간 동안 스와핑이 발생했습니다. apt-get이 훨씬 빨랐습니다.
직관

4
공식 데비안 스퀴즈 문서 aptitude는 이전 업그레이드를 지원했지만 레니에서 업그레이드를 위해 사용하지 말라고 명시 적으로 명시 했기 때문에 이것이 관성 일 뿐이라고 생각하지 않습니다 ...
Hubert Kario

@HubertKario-그렇습니다. 내 답변을 업데이트했습니다.
찰스 스튜어트

나는 실제로 무언가 apt-getaptitude할 수 있지만 거의 항상 오류 (Ubuntu 서버 12.10, 14.04에서의 경험)를 throw 한다고 말할 수 있습니다. 나는 아직도 어떻게 apt-get이 여전히 존재하는지 이해하지 못한다.
Totty.js

20

aptitude시스템에 이미 설치된 검색의 프로그램을 표시하는 것이 편리합니다 (의 도움으로 grep).

aptitude search flash | grep ^i

실제로 aptitude의 검색은 grep문맥 검색을 지원하므로 파이프를 통해 얻는 것보다 훨씬 강력 합니다.

예를 들어, 설치된 패키지 이름에 'flash'가있는 모든 패키지를 찾습니다.

aptitude search '~iflash'

"짧은 형식"과 동등한 "긴 형식" ~i:

aptitude search '?installed(flash)'

검색 패턴은 기본적으로 무료입니다 (고정되지 않음). 앵커하려면 앵커 패턴 ' ^'(문자열의 시작) 및 / 또는 ' $'(문자열의 끝 ) 을 사용해야 합니다.

이름이 'ttf'또는 'font'로 시작하는 모든 패키지를 찾으려면 다음을 수행하십시오.

aptitude search '(^ttf|^font)'

(참고 : aptitude올바른 정규식이 '^(ttf|font)'제대로 작동하지 않기 때문에의 버그에 대한 해결 방법입니다. 이름이 'ttf'로 시작하거나 'font'를 포함 하는 패키지를 찾습니다 .)

다른 멋진 aptitude기능들 :

설명에 '무선'이있는 이름으로 'firmware'가있는 모든 패키지를 표시하십시오.

aptitude search 'firmware ~dwireless'

또는 긴 형식 :

aptitude search '?and(?name(firmware),?description(wireless))'

(참고 : 짧은 형식으로 공백으로 구분 된 인수는 따옴표 안에 AND로 표시됩니다. 별도의 argv [] 명령 행 인수로 전달되면 OR로 표시됩니다.)

p   atmel-firmware       - Firmware for Atmel at76c50x wireless networking chips.
p   firmware-atheros     - Binary firmware for Atheros wireless cards
...
p   libertas-firmware    - Firmware for Marvell's libertas wireless chip series
p   zd1211-firmware      - Firmware images for the zd1211rw wireless driver

~U 현재 버전에서 업그레이드 할 수있는 모든 패키지가 새 버전으로 표시됩니다.

# aptitude update ; aptitude versions '~U'
Package virtualbox-4.1:            
i   4.1.18-78361~Debian~squeeze                       100
p   4.1.20-80170~Debian~squeeze     <NULL>            500

'gcc-multilib'를 권장하는 패키지 표시

$ aptitude search '~DRecommends:gcc-multilib'
i   libc6-dev-i386   - Embedded GNU C Library: 32-bit development libraries for AMD64

'fuse-utils'를 설치해야하는 이유를 설명하십시오.

$ aptitude why fuse-utils
i   xorg           Depends    xterm | x-terminal-emulator
pi  gnome-terminal Provides   x-terminal-emulator
pi  gnome-terminal Recommends gvfs
pi  gvfs           Depends    libgdu0 (>= 2.29.90)
pi  libgdu0        Depends    udisks (< 1.1.0)
pi  udisks         Recommends ntfsprogs
pi  ntfsprogs      Depends    fuse-utils (> 2.5.0)

(이 예제는 모든 "Recommends"패키지를 설치 한 Squeeze (?) 이후의 기발한 결과를 보여줍니다. gnome-terminal을 설치하면 ntfsprogs 및 fuse-utils, 예를 들어 adad를 설치하게됩니다. 대부분의 사람들은 터미널 관점과 기본 제공 NTFS 통합이 아니라 지정하지 않은 경우 선택 사항입니다.)

"mail-transport-agent"서비스를 제공하는 모든 패키지를 찾으십시오.

$ aptitude search '?provides(mail-transport-agent)'
p   citadel-mta          - complete and feature-rich groupware server (mail transport agent)
...
p   nullmailer           - simple relay-only mail transport agent
p   postfix              - High-performance mail transport agent
i   sendmail-bin         - powerful, efficient, and scalable Mail Transport Agent
p   ssmtp                - extremely simple MTA to get mail off the system to a mail hub
p   xmail                - advanced, fast and reliable ESMTP/POP3 mail server

종속성에 의해 필수 또는 자동 설치되지 않은 설치된 모든 패키지 이름을 표시하십시오.

$ aptitude search '~i!(~E|~M)' -F '%p'

불행히도,이 자료는 문서화가 잘되어 있지 않고 찾기가 어렵지만 여기 에 '적정도'관리자로부터 가장 좋은 참조가 있습니다.


4
검색 기능은 다음을 apt-get통해 제공 됩니다apt-cache search NAME
EricR

@EricR 사실이지만 검색 기능을 찾지 못했습니다
niceman

4

패키지 관리에 관한 데비안 GNU / 리눅스 FAQ에 따르면 , 적성은 apt-get보다 복잡하며 덜 복잡한 패키지 관리 도구 인 apt-get 및 dpkg에 의존합니다.

따라서 더 간단한 요구에 대해서는 더 간단한 도구를 사용할 수 있지만 더 복잡한 요구에 대해서는 더 정교한 도구 (적당도)에 의존 할 수 있습니다.

데비안 FAQ에서 인용 한 바에 따르면 : "aptitude는 dselect와 apt-get의 기능뿐만 아니라 두 프로그램에서 볼 수없는 많은 추가 기능을 제공합니다."


3

aptitude는 자동 태그와의 종속성으로 인해 설치된 위치에 패키지를 표시합니다. 이제 패키지를 제거하거나 제거하면 제거 또는 제거하려는 패키지와 함께 더 이상 사용되지 않는 자동 설치 패키지가 자동으로 제거됩니다.

이것이 개인적으로 적성이 항상 적절하다고 생각하는 주된 이유입니다.


인용이 필요했지만 이는 큰 차이가 될 것입니다.
Kzqai


실제로도 apt-get마찬가지입니다 apt-get autoremove <package-name>. 모두 apt-getaptitude마크 자동 설치 패키지
Legionair

그러나 aptitude사용될 때마다 자동 패키지를 정리하십시오. 하지만 apt-get당신은 명시 적으로 시작해야합니다.
Anders

2

올바른 도구가 없으므로 현재 작업에 가장 편리한 도구에 따라 두 가지를 혼합하여 사용할 수 있습니다. 적성은 테스트 / 사용자를위한 훌륭한 도구이지만 하나의 안정에서 다음 안정으로 dist-upgrade하는 데 덜 신뢰할 수있는 경향이 있습니다. 내 기사 apt-get, aptitude,… 올바른 패키지 관리자를 선택 하십시오를 참조하십시오 .

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