Не удалось стереть все пакеты 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".

Другие вопросы по тегам