새로 설치된 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)를 위해 만들어진 도구이기 때문입니다.