"apt-get"과 "aptitude"의 실제 차이점은 무엇입니까? ("와지그"는 어때요?)

"apt-get"과 "aptitude"의 실제 차이점은 무엇입니까? ("와지그"는 어때요?)

나는 그것을 알고 있으며 apt-get둘 다 aptitudeDebian에서 파생된 Linux의 명령줄 패키지 관리 인터페이스이며 다른 옵션이 있지만 여전히 약간 혼란스럽습니다. 그 이면에는 동일한 APT 시스템을 사용하고 있는 것은 아닐까?

데비안은 왜 이러한 병렬 도구를 유지합니까? (보너스 질문: 정확히 무엇입니까?와지그? )

답변1

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

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

몇 가지 미묘한 차이점이 있습니다.

  • aptitude는 적합한 패키지를 자동으로 제거하는 반면 apt-get은 이를 수행하기 위해 별도의 명령이 필요합니다.
  • 명령은업그레이드그리고원격 업그레이드더 정확한 이름으로 이름이 변경되었습니다.보안 업그레이드그리고종합적인 업그레이드, 각각.
  • aptitude는 실제로 apt-get의 기능뿐만 아니라 apt-cache 및 apt-mark와 같은 일부 지원 도구도 수행합니다.
  • aptitude는 검색 쿼리 구문이 약간 다릅니다(apt-cache와 비교).
  • 자격그리고왜 안 돼명령은 무엇을 알려줍니까?수동 설치패키지가 수행하려는 작업을 차단하고 있습니다.
  • 수행하려는 작업(패키지 설치, 제거, 업데이트)으로 인해 충돌이 발생하는 경우 aptitude는 여러 가지 가능한 솔루션을 제안할 수 있습니다. apt-get은 "죄송합니다, Dave, 당신이 이 일을 하도록 허락할 수 없습니다."라고 말할 것입니다.

그 밖에도 몇 가지 미묘한 차이점이 있지만 이것이 제가 생각할 수 있는 가장 중요한 차이점입니다.

간단히 말해서 적성은 Synaptic 및 기타 상위 수준 패키지 관리자 프런트 엔드 범주에 더 잘 맞습니다. 또한 apt-get과 유사한 명령줄 인터페이스도 있습니다.

보너스 라운드: wajig가 무엇인가요?

apt-cache내가 와 같은 "동반자" 도구를 어떻게 언급했는지 기억하시나요 apt-mark? 글쎄요, 그것들이 많이 있고 자주 사용한다면 어떤 것이 어떤 명령을 제공하는지 기억하지 못할 수도 있습니다. wajig이 문제에 대한 해결책입니다. 이는 본질적으로 스케줄러, 즉 이러한 모든 도구를 둘러싸는 래퍼입니다. sudo필요한 경우에도 적용됩니다. 라고 말하면 wajig install foowajig는 "확인, 관리자 권한 install이 제공되었으며 apt-get관리자 권한이 필요합니다"라고 말한 다음 실행됩니다 sudo apt-get install foo. 라고 말하면 wajig search foowajig는 "좋아요, search에서 제공합니다 apt-cache. 관리자 권한이 필요하지 않습니다"라고 말한 다음 실행됩니다 apt-cache search foo. apt-get, apt-mark, apt-cache 등 대신 wajig를 사용하면 이 문제가 발생하지 않습니다.

$ apt-get search foo
E: Invalid operation search

wajig가 배후에서 수행하는 작업과 특정 명령을 구현하는 데 사용하는 도구를 알고 싶다면 Wajig의 Wajig --simulate--teaching패턴을 참조하세요.

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

답변2

나는 종종 나 자신에 대해 궁금해한다.위키피디아 하이라이트주요 특징은 aptitude가 전체 화면 텍스트 모드(저주) 인터페이스를 가지고 있다는 것입니다. 대부분의 apt-get명령 매개변수를 자체적으로 사용할 수 있다는 사실은 사용자가 명령 매개변수로 또는 그 반대로 쉽게 이동할 aptitude수 있도록 하기 위한 설계 결정일 뿐입니다 .apt-getaptitude

나는 그것을 사용한 적이 없지만 wajig문서에 따르면 파일을 전달할 때 deb(실행할 때 dpkg) 또는 apt패키지 이름(실행할 때 apt-get)을 전달하는지 아는 스크립트일 뿐이라고 합니다. 시도해 보고 이것이 사실인지 확인할 수 있습니까?

틀림없이,진짜차이점은 다음과 같습니다.

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

답변3

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

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

그래서 제 제안은 apt-get install aptitude 입니다. :)

답변4

@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.

등.

관련 정보