젠투에서 패키지를 안전하게 제거


12

젠투에서 특정 패키지를 제거하고 emerge 맨 페이지를 탐색하고 싶었습니다. --unmerge옵션을 찾았습니다 .

경고 :이 조치는 중요한 패키지를 제거 할 수 있습니다! 일치하는 모든 패키지를 제거합니다. 이것은 종속성을 검사하지 않으므로 시스템의 올바른 작동에 필요한 패키지를 제거 할 수 있습니다. 인수는 원자 또는 ebuild 일 수 있습니다. 종속성 인식 버전 --unmerge 의 경우 --depclean 또는 --prune을 사용 하십시오 .

그러나 제거하려는 패키지가 시스템에 설치된 다른 패키지에 필요한지 확인하고 싶습니다. --depclean--prune해당 기능을 제공하지 않습니다 :

  • --depclean 종속성으로 설치되었지만 더 이상 필요하지 않은 패키지를 제거합니다.
  • --prune "시스템에서 가장 높은 버전의 패키지를 제거합니다"

의 종속성 검사 버전이 --unmerge없습니까?

답변:


17

나는 depclean당신이 설명한대로 작동 하지 않는다고 생각 합니다. 인수가 없으면 패키지 이름을 전달 unmerge하면 추가 종속성 검사와 같이 작동합니다 . 보낸 사람 emerge(1):

Depclean은의 종속성 인식 버전으로 사용 --unmerge됩니다. 하나 이상의 원자가 주어지면 역 종속성이없는 일치 패키지를 병합 해제합니다. 역방향 종속성을 표시 하려면 --depclean함께 사용하십시오 --verbose.

나는 항상 --depclean( -c)를 사용 하여 개별 패키지를 병합 해제합니다. 잘 작동합니다


6

gentoolkit이 도와줍니다.

equery d <atom>

종속성을 먼저 확인한 다음 종속성을 검사 한 후 패키지 제거를 진행할 수 있습니다.


5

동일한 결과를 얻는 또 다른 방법 (종속성 검사와 병합되지 않는 명령은 아니지만) : emerge --deselect package. 월드 파일에서 패키지를 제거합니다. 이제 실행 emerge --depclean하면 다른 패키지에 필요하지 않은 경우 해당 패키지가 제거됩니다.


즉 , 패키지를 전세계에서 필요로하지 않는 한 emerge --depclean사용하여 설치된 모든 패키지 를 제거 한다는 의미 emerge --oneshot입니까?
다니엘 쿨만 (Daniel Kullmann)

@danielkullmann 예. 그것은 전체 의존성 그래프를 계산하고 세계의 어떤 패키지가 가져 오지 않은 것을 제거합니다. emerge --noreplace --select이미 설치된 패키지를 다시 컴파일하지 않고 추가 할 수 있습니다 ( btw).
njsg

1

때때로이 emerge --unmerge경고 메시지가 나타납니다.

 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

패키지를 병합 해제하기 전에 종속성 검사를 수행하는 것이 권장되는 방법 인 것 같습니다. 그래도 나는 이것을 달성하기위한 더 좋고 자동화 된 방법이 있기를 희망한다.

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