rpm --erase 시 제거된 패키지를 무시하도록 RPM에 지시하는 방법은 무엇입니까?

rpm --erase 시 제거된 패키지를 무시하도록 RPM에 지시하는 방법은 무엇입니까?

새로 설치된 RPM 기반 Linux 시스템에서 항상 제거/제거/제거하는 약 30개의 "불필요한" 패키지 목록이 있습니다.

그런데 예를 들어 명령어를 쳐보면 --erase(일부러 단축해서 사용함)

# rpm -e sos abrt abrt-libs abrt-python abrt-dbus abrt-addon-xorg abrt-tui abrt-addon-ccpp abrt-cli abrt-console-notification abrt-addon-kerneloops abrt-retrace-client abrt-addon-vmcore abrt-addon-pstoreoops abrt-addon-python
error: package abrt is not installed
error: package abrt-libs is not installed
error: package abrt-python is not installed
error: package abrt-dbus is not installed
error: package abrt-addon-xorg is not installed
error: package abrt-tui is not installed
error: package abrt-addon-ccpp is not installed
error: package abrt-cli is not installed
error: package abrt-console-notification is not installed
error: package abrt-addon-kerneloops is not installed
error: package abrt-retrace-client is not installed
error: package abrt-addon-vmcore is not installed
error: package abrt-addon-pstoreoops is not installed
error: package abrt-addon-python is not installed
Exit 14

일부 패키지( sos내 생각엔?)가 분명히 존재하지만 제거되지는 않습니다. 물론 두 개의 패키지 목록(내 패키지 목록과 오류 메시지)을 일치시키고 명령줄을 편집하고 싶지는 않습니다. 왜냐하면 이 짧은 예에서도 시간이 너무 오래 걸리기 때문입니다.

물론 저는 이 문제를 해결하려고 노력할 수 있습니다.

echo sos abrt abrt-libs abrt-python abrt-dbus abrt-addon-xorg abrt-tui abrt-addon-ccpp abrt-cli abrt-console-notification abrt-addon-kerneloops abrt-retrace-client abrt-addon-vmcore abrt-addon-pstoreoops abrt-addon-python | xargs --max-args=1 rpm -e

하지만 존재하지 않는 패키지는 무시하고 싶습니다.

어떻게 해야 하나요? --force삭제에 적용되지 않음:

# rpm -e --force sos abrt abrt-libs abrt-python abrt-dbus abrt-addon-xorg abrt-tui abrt-addon-ccpp abrt-cli abrt-console-notification abrt-addon-kerneloops abrt-retrace-client abrt-addon-vmcore abrt-addon-pstoreoops abrt-addon-python
rpm: only installation and upgrading may be forced
Exit 1

답변1

나는 이것이 당신이 찾고 있는 것이라고 생각합니다. 이 버전은 설치된 것과 일치하는 패키지 목록만 출력합니다.

#- for pkg in sos abrt abrt-libs abrt-python abrt-dbus abrt-addon-xorg abrt-tui abrt-addon-ccpp abrt-cli abrt-console-notification abrt-addon-kerneloops abrt-retrace-client abrt-addon-vmcore abrt-addon-pstoreoops abrt-addon-python; do rpm --quiet -q "$pkg" && echo "$pkg"; done
abrt
abrt-libs
abrt-dbus
abrt-addon-xorg
abrt-tui
abrt-addon-ccpp
abrt-cli
abrt-console-notification
abrt-addon-kerneloops
abrt-retrace-client
abrt-addon-vmcore
abrt-addon-pstoreoops

위의 내용을 사용하여 패키지 이름 목록을 생성한 다음 다시 rpm삭제(삭제)할 수 있습니다.

#- rpm -e --nodeps $(for pkg in sos abrt abrt-libs abrt-python abrt-dbus abrt-addon-xorg abrt-tui abrt-addon-ccpp abrt-cli abrt-console-notification abrt-addon-kerneloops abrt-retrace-client abrt-addon-vmcore abrt-addon-pstoreoops abrt-addon-python; do rpm --quiet -q "$pkg" && echo "$pkg"; done)
Removed /etc/systemd/system/multi-user.target.wants/abrt-journal-core.service.
Removed /etc/systemd/system/multi-user.target.wants/abrt-xorg.service.
Removed /etc/systemd/system/multi-user.target.wants/abrt-vmcore.service.
Removed /etc/systemd/system/multi-user.target.wants/abrt-oops.service.
Removed /etc/systemd/system/multi-user.target.wants/abrtd.service.

이 간단한 버전은 종속성 처리를 처리하지 않습니다. 종속성을 처리해야 하는 경우 DNF(또는 YUM)로 전환해야 합니다. DNF(또는 YUM)를 위해 만들어진 도구이기 때문입니다.

관련 정보