제거/제거할 때 `apt`는 종속성 제거를 어떻게 확인합니까? AkA `apt`의 동작을 이해하도록 도와주세요

제거/제거할 때 `apt`는 종속성 제거를 어떻게 확인합니까? AkA `apt`의 동작을 이해하도록 도와주세요

나는 리눅스에서 사운드를 조작하고 패키지 설치를 시도했습니다 jackd. 다음은 반환된 내용의 관련 발췌문입니다 apt.

$ sudo apt install jackd
The following additional packages will be installed:
  jackd2 jackd2-firewire libconfig++9v5 libffado2 libglibmm-2.4-1v5 libsigc++-2.0-0v5 libxml++2.6-2v5 python-dbus python-gi qjackctl

그런 다음 제거 결과는 다음과 같습니다.

$ sudo apt purge jackd
The following packages will be REMOVED:
  jackd* qjackctl*

후속 설치:

$ sudo apt install jackd
The following NEW packages will be installed:
  jackd

----------편집하다----------

그런 다음 :

sudo apt autoremove
The following packages will be REMOVED:
  libfwup1

(jackd를 설치하기 전에 이미 언급한 패키지입니다)

----------편집 끝----------

이 실험에서는 apt종속성을 제거하지 않는 것 같습니다. 그러나 제거 작업 qjackctl으로 인해 제가 특별히 언급한 패키지( ) 외에 다른 패키지( ) 가 제거되었습니다 jackd.

qjackctl은 데몬의 해당 GUI 인터페이스에 대한 패키지이며 더 이상 jackd필요하지 않으면 필요하지 않다는 것을 이해합니다 jackd. 그러나 논리적으로 다른 종속성도 설치되므로 다음과 같습니다.

  • 왜 제거되지 않았습니까?
  • qjackctl제거되었나요?
  • qjackctl두 번째 설치에서는 왜 가져오지 않았습니까?

오직문제의 패키지에만 해당되는 것으로 나타났습니다.

도와 주셔서 정말로 고맙습니다

추신: 방금 Arch Linux 파티션 설치를 마쳤습니다(향후 Ubuntu 파티션을 대체할 예정입니다). pacman지금은 별로 익숙하지 않습니다 . 이 패키지 관리자를 사용하면 이 동작을 더 잘 관리할 수 있습니까? (보다 정확하게는 무능한 작업과 예측 가능한 동작)

답변1

추가 패키지는 (아마도 간접적) 의존성으로 인해 설치되었습니다 jackd: jackd2직접, 나머지는 jackd2. 추천 qjackctl해서 설치했고 jackd2, 추천패키지는 기본으로 설치됩니다.

구체적으로 설치된 패키지의 종속성 트리는 다음과 같습니다.

jackd
└─ jackd2
   ├─ python-dbus
   │  └─ python-gi (recommended)
   ├─ jackd2-firewire (recommended)
   │  └─ libffado2
   │     ├─ libconfig++9v5
   │     ├─ libglibmm-2.4-1v5
   │     │  └─ libsigc++-2.0-0v5
   │     └─ libxml++2.6-2v5
   └─ qjackctl (recommended)

두 가지 추가 종속성은 설치 단계에 영향을 미치지 않지만 나중에 중요해집니다. jackd2-firewire종속 jackd2qjackctl종속입니다 jackd.

후자의 종속성은 jackd2제거될 때 qjackctl제거되어야 함을 의미합니다(엄격한 종속성 없이는 패키지를 설치할 수 없습니다). 다른 패키지는 에 의존하지 않으므로 jackd제거되지 않았습니다. 에 의존하기 때문에 어떤 패키지도 불필요해지지 않는다는 apt autoremove점을 제외하면 그들은 에 의해 만들어졌을 것입니다 ... ( 기억하지 못함jackd2-firewirejackd2apt어떤 특정 패키지다른 패키지가 설치되도록 했습니다. autoremove자동으로 설치된 패키지만 검사하여 더 이상 해당 패키지에 의존하는 것이 없는지 확인합니다. 추가로, autoremove권장 사항은 패키지 설치를 유지하는 데 충분히 중요하다고 생각합니다.)

두 번째로 을(를) 설치했을 때 jackd종속성 apt을 살펴보았습니다. jackd2또는 이미 설치된 jackd1것을 발견 하고 거기서 중지되었습니다. 따라서 자체 가 아닌 에서 권장하기 때문에 "누락"된 jackd2것을 인식하지 못했습니다 .qjackctljackd2jackd

aptitudeautoremove별도의 단계 없이 종속 패키지가 제거되는 즉시 불필요한 패키지를 제거합니다 . 사용하기가 더 쉬울 수도 있습니다. 명령은 apt's' 와 동일합니다 . 또한 매우 유용하다고 생각하는 텍스트 기반 전체 화면 사용자 인터페이스도 있습니다.

관련 정보