바닐라 젠투에서는 왜 포티지가 패키지를 "emerge install & Removal"으로 제거하지 않습니까?

바닐라 젠투에서는 왜 포티지가 패키지를 "emerge install & Removal"으로 제거하지 않습니까?

새로 설치된 젠투 2.13 시스템에서 다음 명령을 실행하여 첫 번째 패키지를 설치했습니다:

$ cat /etc/gentoo-release
Gentoo Base System release 2.13
$ sudo emaint -a sync
$ sudo emerge app-editors/emacs
$ emacs                            # It runs successfully

성공적인 설치. 테스트로서 동일한 패키지를 즉시 제거하려고 시도했지만 실패했습니다.

$ sudo emerge -cav app-editors/emacs

Calculating dependencies... done!
  app-editors/emacs-29.1-r1 pulled in by:
    app-emacs/emacs-common-1.9 requires >=app-editors/emacs-23.1:*

>>> No packages selected for removal by depclean

왜 이런 일이 발생합니까? 내가 잘못된 삭제 명령을 실행했나요? 패키지 관리자에 대한 가장 간단한 테스트는 운영 체제의 새로운 복사본에 패키지를 설치하고 제거하는 것이라고 생각합니다.

설명해 주셔서 대단히 감사합니다.

답변1

설명하다

@Dean Brundage가 올바르게 지적했듯이 Big C는 Clean을 의미하며 종속성을 확인할 필요가 없습니다. 작은 c는 종속 패키지 정리를 나타냅니다. 귀하의 경우 app-emacs/emacs-common에는역의존성~의app-editors/emacs

이것적절한제거하는 방법은 다음과 같습니다.

  1. emerge -cav app-emacs/emacs-common
  2. emerge -cav app-editors/emacs

그러면 종속성과 요청된 패키지가 올바르게 제거됩니다.

답변2

--unmerge, -C를 찾고 있습니다.

   --unmerge, -C
          WARNING: This action can remove important packages! Removes  all
          matching  packages  following a counter governed by CLEAN_DELAY.
          This does no checking of dependencies, so it may remove packages
          necessary  for  the  proper operation of your system.  Its argu-
          ments can be atoms or ebuilds. For a dependency aware version of
          --unmerge,  use  --depclean  or  --prune.   For  a  version with
          CLEAN_DELAY=0, use --rage-clean.

-c는 --depclean이며 명시적으로 병합된 패키지와 연결되지 않은 패키지를 제거합니다.

답변3

패키지를 명시적으로 설치하면 글로벌 패키지 파일에 추가됩니다. 포티지는 정리할 때 포티지에 의존하지 않는 패키지를 무시합니다.

패키지를 명시적으로 제거하려면 --unmerge 플래그를 사용하십시오. 그러나 병합되지 않은 패키지에 의존하는 다른 패키지를 무의식적으로 추가하면 문제가 발생할 수 있습니다. 권장되는 해결 방법은 --deselect 플래그를 사용하여 전역 파일에서 패키지를 제거한 다음 종속성 정리를 수행하는 것입니다.

관련 정보