apt-get과 aptitude의 차이점은 무엇입니까?


56

소프트웨어를 설치하기 위해 최소 설치로 두 개의 다른 프로그램이있는 이유를 알 수 없습니다. 그들은 같은 일을하지 않습니까? 큰 차이가 있습니까? 나는 apt-get보다 적성을 사용하기 위해 모든 곳을 읽었지만 여전히 차이점을 모른다.

답변:


48

aptitude는 apt-get / apt-cache와 마찬가지로 dpkg의 래퍼이지만 검색 / 설치 / 제거 / 쿼리를위한 원 스톱 상점 도구입니다. 적절하지 않은 몇 가지 예는 다음과 같습니다.

$ aptitude why libc6
i   w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.

$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2), 
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs 
 on the system. This package includes shared versions of the standard 
 C library and the standard math library, as well as many others.

10
말할 것도없이 : $ aptitude changelog bash
pgs

aptitude최신 버전조차도 apt할 수 없다는 것을 알고있는 다른 속임수 : 설치된 이름이나 설명이있는 aptitude search '~i linux'패키지를 검색합니다 linux. aptitude search '~o'더 이상 사용되지 않는 패키지 (더 이상 저장소에서 제공하지 않는 설치된 패키지)를 나열합니다. aptitude search '!~M ~i'자동 설치로 표시되지 않은 패키지를 표시합니다. aptitude search '~i lib.*-dev'쇼는 개발 라이브러리를 설치하고 교체 할 수 searchmarkauto또는 unmarkauto이러한 패키지는 자동 또는 수동으로 설치 표시 할 수 있습니다.
Mikko Rantalainen

44
mikeage@linode ~$ aptitude -h | tail -n 1
              This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
                   This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
    There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course. 

19

현재 데비안 설치 프로그램 에서 사용되며 릴리스 노트에서 권장 되는 공식 도구 는 aptitude입니다.

적성은 (모든 매개 변수없이 실행)를 저주 인터페이스와 거의 모든 것을 할 수있는 명령 줄 인터페이스를 제공합니다 apt-cache/이 apt-get수행합니다. 또한 여러 솔루션을 탐색 할 수있는 더 나은 종속성 해결 프로그램이 있습니다. 명령 행 버전을 사용하는 경우에도 제안 된 솔루션과 상호 작용하고 추가 주문 또는 힌트 (예 : 다른 패키지에서 권장하는 패키지 설치 또는 제거)를 제공 할 수 있습니다.

그러나 적성은 libapt 라이브러리 (dpkg의 직접 래퍼가 아님)를 기반으로 apt하므로 패키지에 따라 다르 므로 apt-get없이 apt-get (apt 패키지에도 있음)을 설치할 수 없습니다.

$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get

apt / dpkg / aptitude의 상호 작용 방식에 대한 자세한 내용은 Daniel Burrows (aptitude의 주요 저자)가 작성한 다이어그램을 확인하십시오 . 다른 다이어그램은 다양한 패키지 관리 도구에 의해 저장된 정보를 제공 합니다 . apt 및 dpkg 상태 파일의 맵 .

당신은 또한 나의 기사 apt-get, aptitude를 읽을 수있다 .…


7

aptitude의도적으로 설치 한 패키지와 종속성을 충족시키기 위해 자동으로 설치된 패키지를 기억합니다. 적절한 패키지를 제거하면 시스템을 깔끔하게 유지하기 위해 자동으로 설치된 패키지를 제거합니다. apt-get그렇게 똑똑하지 않습니다.

aptitude다른 버전의 패키지와 함께 다른 리포지토리를 사용하면 빠르게 필수 도구가됩니다. backports.org 또는 debian-multimedia.org 와 같은 비공식 저장소를 사용한다고 가정하십시오 . 그런 다음 aptitude특정 패키지의 세부 정보 페이지 하단에 사용 가능한 버전 번호가 표시되고 하나를 선택할 수 있습니다.

비공식 저장소의 사용으로 인해 프로그램이 충돌하는 상황이 발생 하면 상단에 "Broken : ..."이 표시됩니다. 당신은 입력 할 수 있습니다 리터 ~ B (제한 / 플래그 / 부서) 및 단지 서로 충돌 패키지의 목록을 얻을. 충돌을 수동으로 훨씬 쉽게 해결합니다.

또한 " l"를 사용 하여 패키지 목록을 제한 할 수 있습니다 . " openoffice "로 시작하는 패키지를 찾은 다음 ""를 누르고 l" ^openoffice"(정규 표현식)를 입력하면 해당 패키지 만 표시됩니다. 메뉴에서 "플랫 패키지 목록" 을 선택하면 목표를 빠르게 달성 할 수 있습니다.

전체 핸드북은 매우 커서 더 많은 필터와 가능성을 제공합니다. 당신이 그것들을 알지 못하더라도 aptitude편리한 대체품이며 다음 apt-get과 같은 일반적인 매개 변수와 함께 사용할 수 있습니다.

aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)

2
실제로 anny-get은 Lenny 기준으로 명시 적으로 요청한 항목의 종속성으로 만 설치된 패키지를 추적합니다. 나는 적성을 직접 사용하지만 apt-get autoremove이제는 제거 된 패키지의 종속성으로 설치된 패키지를 제거합니다.
Telemachus 2016 년

당신은 또한 바로 사용할 수 있습니다 Nowdays apt그것은 재료의 혼합물 할 수 apt-getapt-cache수행하는 데 사용합니다. 예를 들어, 이름이나 설명에 apt search foo포함 foo된 패키지를 나열합니다 . 사용 가능한 경우 apt install foo호출 된 패키지를 설치 하고 현재 설치된 버전 및 사용 가능한 모든 버전의 패키지를 나열합니다 . fooapt policy foofoo
Mikko Rantalainen

aptitude여전히보다 더 많은 작업을 수행 할 수 apt있지만 보통은 apt훨씬 더 빨리 종종있다.
Mikko Rantalainen

5

aptitude인수없이 실행할 때 예쁜 콘솔 UI를 제공하는 것 외에도 다양한 apt-*명령 (및 dselect)을 하나의 유틸리티로 결합 합니다.

apt-get을 사용하여 패키지를 검색하고 설치하려면 다음을 수행하십시오.

apt-cache search somepkg
apt-get install somepkg

.. 그러나 적성과 같은 명령입니다 :

aptitude search somepkg
aptitude install somepkg

aptitudeaptitude changelog somepkg패키지를 유지 하는 등의 추가 기능 (업그레이드 중지)과 같은 추가 기능이 있습니다. 다른 명령 / 메소드를 통해 달성 할 수없는 것은 더 통합되고 사용하기에 좋습니다.


3
너무 나쁘면 "apt-cache policy"에 해당하는 것이 없습니다.
hayalci 2016

4

패키지를 설치할 때 다른 패키지 (종속성)가 필요한 경우에도 다운로드 및 설치됩니다. aptitude는 설치 시점에 설치된 패키지와 함께 제공되는 패키지를 추적하므로 후자의 aptitude를 제거하면 다른 (현재는 사용되지 않은) "분리 된"종속성의 제거를 요청합니다. "기본"패키지를 제거하면 apt-get은 시스템에 자동으로 보관합니다.

최신 버전의 apt-get은 비슷한 기능을 가지고 있습니다 : http://www.psychocats.net/ubuntu/aptitude


aptitude또는 apt실제로 특정 패키지의 종속성으로 설치된 패키지 목록을 유지하지 않습니다. 패키지가 수동 또는 자동으로 설치되었는지 추적합니다. 패키지가 자동으로 설치 표시하고 다른 패키지 따라 다름없는 또는 추천 된 경우, 그것은 제거됩니다 apt autoremoveaptitude dist-upgrade.
Mikko Rantalainen

3

가장 큰 차이점은 적성 (Atitude)은 적절한 도구가 스크립팅 작업에 더 적합한 대화식으로 설계되었다는 것입니다. apttitude가 제공하는 것과 동일한 결과를 얻기 위해 더 많은 노력으로 후자, 즉 apt 도구를 대화식으로 사용할 수 있습니다. 어떤 이유로 하나의 도구 만 사용해야하는 경우 패키지 관리에 얼마나 많은 노력을 기울여야하는지 결정해야합니다.


1

적성의 가장 큰 장점 중 하나는 의존성을 계산하는 능력입니다. 첫째, 그것은 스스로의 개입없이 복잡한 상호 의존성을 처리 할 수 ​​있으며, 종종 apt-get이 실패합니다. 그러나 솔루션이 마음에 들지 않으면 (솔루션이 얼마나 좋은지 보여주기 위해 자체 솔루션의 점수를 매길 것입니다) 갈등을 해결하기 위해 다른 솔루션을 제안하도록 요청할 수 있습니다.

정말 멋진 패키지 관리를 수행합니다.


1

가장 큰 차이점은 매개 변수가없는 "적당"유형입니다.

그것은 당신에게 텍스트 기반의 사용자 인터페이스를 제공하고, keybord를 사용하여 검색 / 탐색 등을 할 수 있습니다. 의존성, 역 의존성, 사용 가능한 모든 버전의 패키지에 대한 정보를 볼 수 있으며 해당 화면에서 패키지 관리자 작업을 수행 할 수 있습니다.

"g"를 눌러 변경 사항을 검토하고 필요한 경우 패키지 추가 및 제거를 수정하고 보류중인 모든 작업을 적용 할 수 있습니다.

ssh 연결 또는 일반 구형 터미널을 통한 훌륭한 시각적 패키지 관리 방법입니다.

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