문제가 apt-get에서 aptitude로 전환 될 수 있습니까?


8

나는 적성으로 전환하는 것에 대해 생각하고 있었지만 사람들이 "이미 apt-get을 사용하고 있다면 다음 설치가 전환 될 때까지 기다려야한다"고 말하는 것을 들었습니다. 사람들은 왜 이런 말을합니까? 이 문제가 발생할 수있는 문제는 무엇입니까?

답변:


8

apt-get과 aptitude는 동일한 패키지 관리 시스템 인 APT (Advanced Packaging Tool)의 일부인 다른 UI입니다 . 예를 들어, 둘 /etc/apt/apt.conf다을 사용 하여 구성 되며 둘 다 동일한 파일 공간 및 형식을 사용하여 패키지 상태를 나타내며 다운로드 한 .deb를 저장하는 동일한 파일 공간을 사용합니다.

차이점은 패키지 간의 잠재적 충돌을 나타내는 내부 규칙 시스템, 패키지를 해결하는 방법 (예 : apt-get dist-upgradevs. aptitude full-upgrade) 및 사용자와 상호 작용할 때이를 표현하는 방법입니다. 일반적으로 말하자면 까다로운 상황에서는 둘 다 잘못된 일을 할 수 있지만 apt-get은 적성보다 잘못 될 가능성이 훨씬 높습니다.


2
훌륭하고 명확한 대답. 추가 세부 사항 중 하나는 자동으로 설치된 종속성을 제거하는 방법 /시기입니다. aptitude바로 제거하지만 apt-get명령을 입력하여 제거하라는 메시지 만 표시합니다 apt-get autoremove. 일반적으로 동일한 항목을 제거하려고합니다. 그러나 이에 동의하지 않는 복잡한 경우는이 링크를 참조하십시오. forums.debian.net/viewtopic.php?f=10&t=49589&start=0
Telemachus

5

많은 좋은 조언이 이미 있지만 아무도 언급하지 않은 것을 추가하겠습니다. 전환하기로 결정한 경우 다음 작업에 따라이 명령을 실행할 수 있습니다 apt-get.

aptitude keep-all

이 명령 aptitude은 고아가되는 패키지에 대한 의미를 재설정 하고 제거해야합니다.

여기 가끔 유용한 이유는 다음과 같습니다 잠시 지금, 모두 apt-getaptitude자동으로 다른 무언가의 종속성으로 설치 한 패키지를 추적합니다. 예를 들어를 설치 하면 종속성으로 mpd나타날 수 있습니다 lib-so-and-so. 나중에 제거하면 있도록 그들은, 이렇게 mpd, lib-so-and-so너무 제거됩니다. 그러나 aptitudeapt-get취급이 다르게 정리. aptitude모든 고립 된 종속성을 즉시 제거하려고 시도합니다. 그러나 apt-get단지 당신 apt-get autoremove이 청소 를 실행 하는 것을 제안 합니다. (이 모든 뒤에 논리는 이후에만 라이브러리를 가지고 있다는 것입니다 mpd그것을 필요로. 당신은 유지하지 않는 경우 mpd, 당신은 더 이상 라이브러리를 필요가 없습니다. 경우 다른 패키지는 여전히에 따라, 다음 모두 aptitudeapt-get 이것을 알고 라이브러리를 제거하려고 시도하지 않습니다.)

내 요점이 뭐야? 글쎄, 당신은 지속적인 덩어리가 실행되는 것을 보았고로 apt-get autoremove전환 aptitude하면 처음으로 무언가를 설치하려고 할 때 충격을받을 수 있습니다. aptitude모든 고아를 곧바로 제거하려고합니다. 일반적으로 이것은 괜찮을 것입니다 (결국 고아이며 필요하지는 않습니다).하지만 복잡한 사례가 하나 있습니다. 데스크톱 메타 패키지에는 모두 개별 패키지가 가상 패키지 래퍼의 종속성으로 사용되는 복잡한 종속성 체인이 포함됩니다. 예를 들어, gnome패키지 를 설치하여 Gnome을 설치 한 경우 모든 일반 데스크탑 프로그램이 종속성으로 설치되었습니다. 이러한 프로그램 중 하나를 제거한 경우 (예 : Ekiga 또는 Gedit)aptitude나머지 데스크탑도 제거해야합니다. 그 참고 aptitude 항상 사물을 제거하기 전에 요청하지만, 사람들은 읽지 않고 'Y'를 입력합니다. 내 경험상, 이것은 데비안을 처음 접하는 사람들에게 가장 흔한 불만 / 혼란입니다.

두 가지 일반적인 조언 :

  1. 항상 의 출력을 읽 aptitude거나 apt-get아무것도 네 말을하기 전에주의 깊게.
  2. aptitude -s safe-upgrade또는을 사용하여 항상 드라 이런을 수행 할 수 있습니다 aptitude -s install foo. -s|--simulate플래그는 당신의 친구입니다.

4

몇 년 전 데비안 메일 링리스트에서 apt-get에서 aptitude로 전환하는 것이 위험하다고 말했다. 이것은 10 년 전의 두 가지 데비안 버전입니다. 이 모든 문제는 현재 해결 된 것으로 보이며, 데비안이나 우분투에서 문제를 보지 못했습니다.


1
메일 링리스트 게시물에 대한 링크가 있습니까?
Matthew

Matthew, 데비안 사용자 메일 링리스트 전체를 완벽하게 색인화 한 아카이브를 여기에 보관한다고 상상하십니까? 위에서조차도 연도조차 기억 나지 않는 것이 확실합니까?
CarlF

@Matthew : 잠시 후 (Sarge 또는 Early Etch),에서 apt-get로 전환하는 것에 대해 걱정하는 사람들이 많이있었습니다 aptitude. 당시에는 많은 필수 기능을 매우 다르게 처리했습니다. 시간이 지남에 따라, 그들은 훨씬 더 유사 해졌고 aptitude, 톤을 성숙 시켰습니다. 현재 사례의 90 %를 전환하면 문제가 없어야합니다. 한 가지 경우에 대한 내 게시물을 참조하십시오.
Telemachus

2

또한 계속 사용한다고 말하고 싶습니다 aptitude.
Aptitude보다 더 나은 종속성 관리 기능이 apt-get있습니다. 이렇게하면 고아 패키지 수가 적어집니다.
나는 이전 aptitude보다 더 나은 dist 업그레이드 알고리즘을 가지고 apt-get있습니다. 그러나 그것은 시스템의 수명에 자주 사용되지 않기 때문에 킬러 기능은 아닙니다.

또한 하나의 도구로 더 많은 것을 통합 할 수 있습니다. 오히려 호출 할 때 기억보다는 apt-get, apt-cache또는 dpkg난 그냥 적성을 사용 할 대부분의 일을 얻을 전환하는과.

"중간에서"전환 할 때의 합병증에 관해서는, 내가 할 때 어떤 것도 기억하지 못합니다.


1

그들은 같은 백엔드에 대한 다른 인터페이스가 아닌가?


2
aptitude더 특징적인 인터페이스입니다 ...
quack quixote

그럴 수도 있습니다. 그러나 더 많은 기능을 가진 인터페이스가 반드시 다른 백엔드를 의미하는 것은 아닙니다.
Svish

2
아니요, 맞습니다. 둘 다의 프런트 엔드 dpkg입니다. 하지만 dpkg단지 패키지를 설치; 검색, 종속성 해결 및 다운로드를 담당하는 프런트 엔드입니다.
quack quixote

그러나 검색, 다운로드 및 종속성 해결은 아무런 영향을 미치지 않습니다. 아니면 그것이 내 의견으로는 매우 이상 할 것입니다 ...
Svish

2
방금 마지막 댓글을 보았습니다. 설치 대상을 결정하는 것은 프론트 엔드라는 것을 명심하십시오 . dpkg 는 설치 만합니다 . 문제가 발생하면 일반적으로 종속성 확인이 실패했거나 사용자가 종속성 확인을 해제했기 때문입니다 (예 : --force 옵션 사용).
quack quixote

1

내 경험상 패키지 버전을 고정하는 다른 방법이 있습니다. 필자의 경우, 향후 업데이트로부터 안전하다고 가정하고 특정 패키지를 잠그는 데 적성을 지시했습니다. 내가 틀렸어; apt-get을 사용하는 cron 예약 업데이트 관리자가 내 실망으로 업그레이드합니다.

Drats,이 글을 쓰는 동안 나는 googled하고 버그 ( # 557580 aptitude가 preferences.d / *의 핀에 순종하지 않음)가 이미 수정 되었음을 알았습니다 !


-1

나는 아무런 문제없이 apt-get과 aptitude를 모두 사용합니다 : 나는 같은 질문을 가지고 있습니다 ... 사람들은 왜 이것을 말합니까 ??? :디

계속해서 걱정하지 마십시오. 적성은 apt-get의 텍스트 GUI 일뿐입니다. 예를 들어 명령 줄 응용 프로그램으로 사용할 수도 있습니다 (예 apt-get install foo:와 동일) aptitude install foo.

문안 인사


나는 그들이 같은 것을 믿지 않습니다. 변경 사항이 없으면 aptitude는 더 많은 종속성 추적을 수행하고 자동으로 설치된 패키지를 제거하지만 apt-get은 그렇지 않습니다. 즉, foo가 bar에 의존하고 apt-get을 사용하여 foo를 설치 및 제거하면 bar는 시스템에 남아 있습니다. 적성을 가지고 똑같이하면 그렇지 않습니다.
윌리엄 퍼셀

당신이 맞습니다 : 아래 ~ quack의 의견을보십시오.
dag729

@William, @ dag729 : 현재 버전의 버전은 apt-get종속성으로 만 설치된 패키지의 자동 제거 기능도 제공합니다. 그 점에서 나머지 차이점은 aptitude(적절한 경우) 종속성 을 즉시 제거하지만 apt-get명령을 실행하도록 자극한다는 것 apt-get autoremove입니다. 그러나 지금은 같은 방식으로 종속성을 추적합니다. 그러나 여전히 복잡한 종속성 및 엣지 케이스 (매우 복잡한 설치 또는 제거)를 처리하는 데있어 차이가 있지만, 대부분의 사람들과 대부분의 상황에서 동일하게 작동합니다.
Telemachus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.