Не удалось стереть все пакеты rpm с помощью "dnf erase *-. Rpm и rpm -e *.rpm"
Я установил несколько пакетов с rpm -i *.rpm
а также dnf install *.rpm
Но я не смог стереть все эти пакеты, которые я установил с помощью dnf -i *.rpm, rpm -i *.rpm, но я хочу стереть их с помощью rpm -e *.rpm
а также dnf remove *.rpm
Это дало эту ошибку:
Error: No packages marked for removal.
Но я попытался установить эти стирание всех пакетов снова с rpm -i *.rpm
а также dnf install *.rpm
, Но это дало эту ошибку:
package somepackage(s).rpm is already installed"
Но я снова попытался стереть этот пакет, но он снова выдал ту же ошибку:
Error: No packages marked for removal.
Я хочу узнать, как я могу стереть эти пакеты, не стирая только один за другим. Я хочу просто стереть эти пакеты немедленно, используя *.rpm.
Я попытался установить только один пакет снова, он закончил, и я попытался стереть этот пакет, и он закончил.
Я просто хочу стереть все пакеты одной командой rpm -i *
Можете ли вы помочь мне, где не так с командой в Bash. Возможно я не прав. Можете ли вы помочь мне решить эту проблему.
Извините за мой плохой английский.(Мой родной язык не английский). Спасибо за ваше время.
Хотелось бы, чтобы мы жили в лучшем мире, как все используют программное обеспечение с открытым исходным кодом.
2 ответа
Чтобы удалить пакеты, которые вы только что установили, вам нужны имена пакетов, а не имена файлов. Обычно (не всегда) вы можете получить это, удалив суффикс ".rpm" из каждого, например,
#!/bin/bash
LIST=
for name in *.rpm
do
LIST="$LIST $(basename $name .rpm)"
done
sudo dnf remove $LIST
Удаление пакетов с dnf
предпочтительнее использования rpm
напрямую, так как зависимости принимаются во внимание.
Для установки вы используете имя файла. Например, "foo-1.2-x86_64.rpm." Для удаления (или запроса) вы используете имя пакета, например, "foo" или "foo-1.2-x86_64". Т.е. без этого суффикса ".rpm".