“apt-get”과“attitude”의 실제 차이점은 무엇입니까? (“wajig”는 어떻습니까?)


256

나는 그 모두를 알고 apt-getaptitude데비안에 명령 라인 패키지 관리 인터페이스는 다른 옵션으로 리눅스를 유도,하지만 난 여전히 다소 혼란 스러워요. 후드 아래에서 동일한 APT 시스템을 사용하고 있지 않습니까?

왜 데비안이 이러한 병렬 도구를 유지합니까? (보너스 질문 : 지구상에서 wajig무엇 입니까?)


나는 그것이 당신의 질문에 대한 정답이 아니라는 것을 알고 있지만 왜 시냅스를 시도 할 수 없습니까? 그것의 사용자는 열렬히 의존하고 자동으로 의존성을 다운로드하고 설치합니다. 시스템에 그놈이 없습니까?
Hemant

나는 편견이 있지만 우분투 SE 사이트 의이 질문 은 관련 있다고 생각 합니다 .
David Z


@Wim이 질문의 wajig 부분 때문에 나는 다른 방법 대신에이 질문에 244를 병합하기로 결정했습니다.
xenoterracide

1
다음 버전의 우분투에서 기본 설치에서 적성을 제거 할 수 있다는 점은 주목할 가치가 있습니다. (나중에 apt-get을 사용하여 항상 설치할 수는 있지만)
Rob Cowell

답변:


223

가장 분명한 차이점은 aptitude터미널 메뉴 인터페이스 (터미널의 시냅틱과 유사)를 제공하지만 apt-get그렇지는 않습니다.

각각의 명령 줄 인터페이스 만 고려하면 인터페이스는 매우 비슷하며 대부분 어떤 인터페이스를 사용하든 상관 없습니다. 최신 버전 모두 수동으로 설치 한 패키지와 종속성으로 설치된 패키지를 추적하므로 자동 제거가 가능합니다. 사실, 나는 최근에 두 도구가 수동으로 설치된 패키지와 자동으로 설치된 패키지의 동일한 데이터베이스를 실제로 공유하도록 업데이트되었다고 생각합니다. 따라서 apt-get으로 무언가를 설치 한 다음 적성을 제거하려는 경우가 대부분입니다. 과거.

몇 가지 사소한 차이점이 있습니다.

  • apttitude는 자동으로 적합한 패키지를 제거하지만 apt-get은 별도의 명령을 필요로합니다.
  • 업그레이드dist-upgrade 명령의 이름이 각각 safe-upgradefull-upgrade 보다 정확한 이름으로 변경되었습니다 .
  • aptitude는 실제로 apt-get뿐만 아니라 apt-cache 및 apt-mark와 같은 일부 보조 도구의 기능을 수행합니다.
  • aptitude는 검색을 위해 약간 다른 쿼리 구문을 가지고 있습니다 (apt-cache와 비교)
  • aptitude에는 수동으로 설치된 패키지가 수행하려는 작업을 방해하는 이유 를 알려주 는 whywhy-not 명령 이 있습니다.
  • 수행하려는 작업 (패키지 설치, 제거, 업데이트)이 충돌을 일으키는 경우 적성이 여러 가지 해결 방법을 제안 할 수 있습니다. apt-get은 "죄송합니다. Dave, 죄송합니다. 그렇게 할 수 없습니다."

다른 작은 차이점이 있지만, 제가 생각할 수있는 가장 중요한 차이점입니다.

간단히 말해, 적성은 Synaptic 및 기타 상위 레벨 패키지 관리자 프론트 엔드 범주에 더 적절하게 속합니다. apt-get과 유사한 명령 행 인터페이스도 있습니다.

보너스 라운드 : wajig 란 무엇입니까?

apt-cache 및 apt-mark와 같은 "companion"도구를 언급 한 것을 기억하십니까? 글쎄, 그것들이 많이 있고, 많이 사용하면 어떤 명령이 어떤 명령을 제공하는지 기억하지 못할 수 있습니다. wajig는 그 문제에 대한 해결책 중 하나입니다. 그것은 본질적으로 모든 도구를 감싸는 디스패처입니다. 필요한 경우 sudo도 적용됩니다. 당신이 말할 때 wajig install foo, wajig는 "좋아,라고 install에 의해 제공됩니다 apt-get및 관리자 권한이 필요합니다"하고 실행합니다 sudo apt-get install foo. 당신이 말할 때 wajig search foo, wajig는 "좋아,라고 search에 의해 제공됩니다 apt-cache및 관리자 권한을 필요로하지 않는다"하고 실행합니다 apt-cache search foo. apt-get, apt-mark, apt-cache 및 기타 대신 wajig를 사용하면이 문제가 발생하지 않습니다.

$ apt-get search foo
E: Invalid operation search

wajig가 어떤 작업을 수행하고 있는지, 특정 명령을 구현하는 데 사용하는 도구 --simulate, --teaching모드 및 모드 를 알고 싶다면

내가 자주 사용하는 두 가지 wajig 명령은 wajig listfiles fooand wajig whichpkg /usr/bin/foo입니다.


내가 적성과 함께 한 큰 문제는 패키지 이름 (예 : aptitude install linux-im탭)에서 탭 완성을 얻는 데 오랜 시간이 걸리지 만 apt-get에는 매우 빠르다는 것입니다. apt-get 가족에는 적성 부족한 캐싱이있는 것 같습니다.
levesque

12
aptitude또한 매우 강력한 검색 패턴aptitude search 과 함께 사용할 수 있는 멋진 기능 이 있습니다 . 당신은 있습니다 . ncurses (터미널 메뉴) 인터페이스를 사용하여 부분 업그레이드와 같은 복잡한 패키지 작업준비하고 , 한 패키지를 제거하고, 다른 패키지를 고정하고, 이것을 업그레이드하고, 업그레이드 하여 단일 작업으로 실행할 수 있습니다 ... 아, 그리고 그것은 대화식 충돌 해결 프로그램 . aptitude reinstall
Totor

3
@Totor 거룩한 암소, 적성의 ncurses 인터페이스를 사용하여 명령을 준비하면 적에게 적시에 판매되었습니다! (수년 동안 생각하는 적성은 가치가 있지만 근육 기억에서 apt-get을 입력)
TJ Ellis

2
... 그리고 aptitude또한이 aptitude download package-name패키지 뎁 파일을 받으실 수 있습니다!
Totor

2
그것은 아닌 내가 발견 한 일이 aptitude있지만,에 apt-get, 그입니다 apt-get --compile source package-name. apt-get build-dep package-name존재하지만 그게 aptitude build-dep package-name더 나은 일 이라고 생각합니다 .
Anders

71

나는 종종 내 자신을 궁금해했다. Wikipedia 는 주요 특징은 적성에는 전체 화면 텍스트 모드 (저주) 인터페이스가 있다는 것입니다. 대부분의 apt-get명령 인수를 aptitude자체적으로 사용할 수 있다는 사실 은 apt-get사용자가 보다 쉽게 이동할 수 있도록하기위한 디자인 결정일뿐입니다 aptitude.

나는 결코 사용하지 wajig않았지만 문서는 deb파일 (파일이 실행될 때)을 전달하는지 패키지 이름 ( 대신 실행될 때 dpkg)을 전달하는지 알 수있는 스크립트 일 뿐이라고 제안합니다 . 당신이 그것을 시도하고 그것이 무엇인지 볼 수 있습니까?aptapt-get

물론 실제 차이점은 다음과 같습니다.

gaurav@fern:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
gaurav@fern:~$ aptitude moo
There are no Easter Eggs in this program.

52
아니! aptitude더 있습니다. 에 무한 -v플래그 를 넣는 것을 잊었습니다 moo. (당신은 올라갈 수 있습니다 -vvvvvv)
Umang

12
모든 중요한 슈퍼 암소 힘, 잊지 마세요 apt-get가지고 있지만 aptitude하지 않습니다. ( --help둘 다 시도 )
derobert

lmao. ), 즉 라이언의 대답은 훨씬 더 정교 @에도 불구하고, 읽을 수있는 재미있는 대답
마이클 Trouw

26

aptitude는 데비안에서 패키지 설치 및 패키지 또는 시스템 업그레이드를 위해 콘솔에서 패키지 관리를 위해 선호하는 프로그램입니다.

다음은 apt-get에 대한 도구 및 기능에 대한 개요입니다. http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

그래서 내 충고는 단지 적성을 설치하는 것입니다 :)


2
릴리즈 노트는 apt-get을 지금 짜내 업그레이드 적성 이상 권장 말한다.
jrdioko

1
그렇습니다. 그렇지 않으면 동일한 것으로 간주되지만 aptitude검색 및 전체 화면 모드와 같은 고급 기능이 많이 apt-get있습니다.
Anders

어떤 이유로 든 적성을 사용하여 emacs를 설치하고 보지 않고 gdm을 제거했습니다! 따라서 지금은 apt-get을 사용하지만 적성에 매우 궁금합니다.
TomFirth

20

aptitude명시 적으로 요청 된 패키지와 종속성으로 인해 설치된 패키지를 기억합니다. 더 이상 필요하지 않은 경우 명시 적으로 요청되지 않은 패키지를 자동으로 설치 제거합니다.

apt-get 명시 적으로 요청 된 패키지와 해당 종속성을 동일하게 취급합니다.

보다 나은 사용 aptitude은 시스템을 깨끗하게 유지하는 데 도움이됩니다.


4
이것은 사실이지만 apt-get에는 apt-get autoremove종속성으로 만 설치된 패키지를 제거 하는 명령 이 있다는 것을 알고 있습니다. 이 기능이 언제 추가되었는지는 모르겠지만 한 웹 사이트에서 Debian Lenny (2010 년 6 월)에서 발생했을 수 있다고 제안합니다.
Gaurav

8
apt-get autoremove종속성으로 만 설치된 패키지를 제거하지 않고 분리 된 종속성을 제거합니다. 이는 미묘한 차이입니다. '리프'패키지가 의도적으로 설치되었는지 또는 종속성으로 설치되어 있는지를 알 수 없으므로 적성을 알고 제거 할 수 있습니다.
pjz

나는 팔렸다! 다른 좋은 점이 aptitude있지만 이것은 킬러 기능입니다.
iconoclast

12

apt-get다양한 컴패니언 도구뿐만 아니라의 각 명령 줄 호출보다 훨씬 적은 메모리를 사용 aptitude하며 약간 더 빠릅니다. 32MB의 램이있는 구식 펜티엄 씽크 패드에서 데비안 설치를 업그레이드하려고 시도 할 때까지 나는 이것을 몰랐습니다. 스왑 스 래싱을 실행하는 데 1 시간 또는 2 시간이 소요되며 apt-get, 완료되었습니다. aptitude더 오랜 시간을 생각하면 실패 할 것입니다.

이 구별은 현대 데스크탑 시스템과 비슷한 것에 거의 관련이 없습니다.


9

@Gaurav의 답변을 바탕으로 두 패키지 관리자의 부활절 달걀은 매우 재미 있습니다! :

siddhartha@siddhartha-dev:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

siddhartha@siddhartha-dev:~$ aptitude  moo
There are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -v moo
There really are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
siddhartha@siddhartha-dev:~$ aptitude -vvv moo
Stop it!
siddhartha@siddhartha-dev:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo
All right, you win.

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

등등.



7

http://pthree.org/2007/08/12/aptitude-vs-apt-get/ 에서 언급했듯이 aptitude명령 인터페이스를 사용하는 것이 훨씬 쉽습니다.

후드 아래에서 동일한 APT 시스템을 사용하고 있지 않습니까? 예.

기본 시스템은 아니다 apt,하지만 dpkg. 이 시스템은 RPM만큼이나 멍청하며 단일 패키지의 설치 및 관리 만 처리 할 수 ​​있습니다. 설치된 파일이 어떤 패키지에 속하는지 추적합니다.

apt모든 개별 패키지에 대한 리포지토리 다운로드, 종속성 추적 등을 처리 한 다음를 사용하여 설치합니다 dpkg. aptitude다른 인터페이스로 동일하게 수행합니다.


6

apt-get과 aptitude는 모두 APT 라이브러리에 의존합니다.

serverfault.com에서답변을 참조하십시오 .

데비안은 모 놀리 식 조직이 아니며, 의견이 다른 사람들이 있으며 적성 관리자는 apt-get에 단점이 있다고 판단하고 적성과 함께 더 나은 것을 만들고 싶었습니다. 복잡한 업그레이드 시나리오를위한 솔루션을 찾기위한 로직을 개선하고 콘솔을위한 GUI 등을 추가했습니다. apt-get 및 aptitude 이상이 있습니다. 내 기사 apt-get, aptitude,… 적합한 패키지 관리자를 선택하십시오 .


6

이것이 여전히 유지되는지 확실하지 않지만 데비안 개발자 인 Joey Hess는 항상 apt-get에 대한 적성을 옹호하는 데 사용했습니다. 물론 소프트웨어가 진화함에 따라 변화해야 할 것들. Apt-get은 이제 이전보다 종속성을 더 잘 처리합니다. 에서 http://lists.debian.org/debian-user/2004/04/msg03138.html

날짜 : 2004 년 4 월 20 일 화요일 22:27:12 -0400 보낸 사람 : Joey Hess

apt-get 또는 dselect 대신 적성을 사용해야하는 9 가지 이유.

  1. 적성은 apt-get처럼 보일 수 있습니다

    'aptitude update'또는 'aptitude upgrade'또는 'aptitude install'을 실행하면 몇 가지 기능이 향상되어 apt-get과 비슷하게 보이고 작동합니다. 따라서 학습 곡선이 없습니다.

    dselect 사용자 인 경우 학습 곡선은 분명히 문제 중 하나가 아닙니다.

  2. 적성 자동 설치 패키지 추적

    사용하지 않는 라이브러리를 정리하고 시스템에서 패키지를 지원하지 않아도됩니다. aptitude를 사용하여 모든 것을 설치하면 종속성으로 인해 가져온 패키지를 추적하고 더 이상 필요하지 않은 패키지를 제거합니다.

  3. 적법하게 추천을 처리

    apt-get의 오랜 실패는 Recommends 관계에 대한 지원이 부족했기 때문입니다. 데비안의 많은 패키지는 일반 사용자가 일반적으로 패키지와 함께 사용하는 소프트웨어를 가져 오기 위해 권장 사항에 의존하기 때문에 문제가됩니다. apt-get이 최근에 권장 패키지를 언급 ​​할 수있게되었지만 경고를 놓치기 쉽습니다.

    Aptitude는 기본적으로 권장 사항을 지원하며 제안도 지원하도록 구성 할 수 있습니다. 명령 행 모드에서 사용될 때 권장 패키지 설치도 지원합니다.

  4. 적성을 일반 사용자로 사용하고 시스템을 고수하지 마십시오.

    아마 당신은 일반 사용자로서 GUI 모드에서 적성을 실행할 수 있다는 것을 몰랐을 것입니다. 시험해보고 싶은 사항을 변경하십시오. 실제 혼란에 빠지면 'q'를 누르고 종료하면 변경 사항이 저장되지 않습니다. (Aptitude에서는 ctrl-u를 사용하여 변경을 취소 할 수도 있습니다.) 일반 사용자로 실행 중이기 때문에 적성을 지시 할 때까지 시스템을 호스 핑 할 수 없으며, 이때 루트 암호를 입력하라는 메시지가 표시됩니다.

  5. 적성에는 강력한 UI 및 검색 기능이 있습니다

    aptitude의 범주 형 브라우저와 이름, 설명, 관리자, 종속성 등으로 패키지를 검색하는 mutt 스타일 필터링 및 검색에 대한 뛰어난 지원간에 aptitude를 사용하기 전에 그 어느 때보 다 빠르게 패키지를 찾을 수 있어야합니다.

  6. 적성은 쓸모없는 소프트웨어를 쉽게 추적 할 수 있습니다

    데비안이 패키지 배포를 중단하면 apt는 경고없이 업그레이드없이 시스템에 패키지를 무한정 그대로 둡니다. 적성에는 해당 패키지가 "폐기되고 로컬에서 생성 된 패키지"섹션에 나열되어 있으므로 문제에 대한 정보를 얻고 이에 대해 무언가를 수행 할 수 있습니다.

  7. 적성에는 데비안 작업 시스템에 대한 인터페이스가 있습니다

    적성은 데비안의 작업 시스템을 사용하도록 설계되었습니다. 사용 가능한 작업을 찾아보고 설치할 작업을 선택한 다음 해당 작업을 파고 원하지 않는 작업의 일부를 선택 취소 할 수 있습니다. apt-get은 작업을 지원하지 않으며 tasksel과 같은 특수 목적 도구보다 적성을 선호합니다.

  8. 적성은 여러 소스를 지원합니다

    sources.list가 여러 버전의 패키지를 사용할 수 있도록 구성된 경우 aptitude를 사용하여 드릴 다운하여 사용 가능한 버전을보고 설치할 기본 버전이 아닌 버전을 선택할 수 있습니다. 패키지가 불안정한 경우 테스트중인 버전으로 롤백하십시오.

  9. 적성은 그 행동을 기록

    적성 로그 패키지는 / varlog / aptitude로 설치, 업그레이드 및 제거되며, 이는 어제 업그레이드 이후에 왜 문제가 발생했는지 또는 partiticlar 패키지를 제거했을 때 문제를 해결하는 데 유용 할 수 있습니다.

-부끄러워하는 조 참조

==================== 2010 년부터의 새로운 토론도 있습니다 https://superuser.com/questions/93437/aptitude-vs-apt-get-which- StackExchange에서 권장 되는 도구 중 하나입니다.

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