현재 설치된 모든 dnf 모듈을 제거하십시오.

현재 설치된 모든 dnf 모듈을 제거하십시오.

원하지 않는 모듈이 많이 설치된 CentOS 8.0 시스템이 있습니다. CentOS 9.0으로 강제 업그레이드하기 위해 이를 제거하고 싶습니다. 이것이 공식적으로 지원되지 않는다는 것을 알고 있지만 실제로 이 질문의 내용은 아닙니다. 이 질문은 내 시스템의 dnf에 설치된 모든 모듈을 제거하는 이 단계에 관한 것입니다.

출력이 dnf module list상당히 크기 때문에 여기에 넣습니다.https://dpaste.com/EXMJLQ3VK

이 시스템에 설치된 많은 것들이 더 이상 필요하지 않으며, 보시다시피 이렇게 하면 많은 부풀림이 제거됩니다.

모듈 목록에 있는 dnf의 구문 분석 가능한 출력을 얻고 싶지만 이를 제거하려면 어떻게 해야 하는지 잘 모르겠습니다. Fedora 위키에서 사용 가능dnf 모듈 사용에 관한 페이지하지만 목록에서 하나도 제거할 수 없는 것 같습니다. 모듈을 제거하기 위해 비슷한 방법을 시도했습니다 ...

# dnf module remove php:remi-7.4/common
Unable to match profile in argument php:remi-7.4/common

물론 실제로 이러한 모듈을 한 번에 하나씩 삭제하고 싶지는 않지만 dnf에서 구문 분석 가능한 목록을 가져오거나 수동으로 삭제하는 방법을 찾을 수 없습니다. 이 두 가지 작업을 수행하는 방법을 배우면 마법을 사용하여 xargs목록의 모든 항목을 삭제할 수 있습니다.

아래와 같이 와일드카드를 dnf에 전달하여 각 모듈을 비활성화했습니다...

dnf module disable "*"

하지만 같은 방법으로 삭제할 수는 없습니다.

# dnf module remove "*"
Last metadata expiration check: 2:20:13 ago on Wed 01 Jun 2022 10:32:56 AM UTC.
Error: Cannot enable more streams from module 'pmdk' at the same time

답변1

이 문제에 대한 해결책을 다른 곳에서 찾았습니다.

모듈의 메타데이터 파일을 삭제하여 모듈을 삭제할 수 있습니다./etc/dnf/modules.d/

답변2

Centos 9는 더 이상 모듈을 사용하지 않습니다. 처음에는 제대로 작동하지 않을 수도 있습니다

사용해 보았 dnf module remove으나 문제가 있다고 말씀드리고 싶습니다. 설명된 대로 작동하지 않습니다.

주요 목적은 Centos 9로 업그레이드하는 것이므로 최선의 선택은 이미 수행한 모든 모듈을 비활성화하는 것입니다.

가능한 한 많은 패키지를 제거하고 싶다는 것을 알고 있지만 어쨌든 그것은 중요하지 않다고 생각합니다.

답변3

이것은 해키적인 접근 방식이지만 모든 모듈을 반복하고 각 모듈에 의해 설치된 모든 패키지를 제거하고 기본값으로 재설정할 수 있습니다.

dnf module list | grep '\[d\]' | awk '{print $1}' | sort -u | xargs -I{} dnf module remove '{}' --all -y

dnf module list | grep '\[d\]' | awk '{print $1}' | sort -u | xargs -I{} dnf module reset '{}' -y

관련 정보