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