LINUX.ORG.RU

Сломался dnf в fedora 31 после зависшего обновления

 , ,


0

1

Запустил обновлять fedora 31 (dnf update), но во время обновления комп повис. Пришлось жёстко перезагрузить. Но после этого побился dnf. При попытке выполнить пишет:

Traceback (most recent call last):
  File "/usr/bin/dnf", line 57, in <module>
    from dnf.cli import main
ModuleNotFoundError: No module named 'dnf'


Пробовал качать и переустанавливать при помощи rpm --reinstall пакеты, связанные с dnf, не помогает.

Переустанавливал такие пакеты:

dnf-4.2.17-1.fc31.noarch.rpm       python3-dnf-4.2.17-1.fc31.noarch.rpm
dnf-data-4.2.17-1.fc31.noarch.rpm  python3-libdnf-0.39.1-1.fc31.x86_64.rpm
libdnf-0.39.1-1.fc31.x86_64.rpm    
python3-3.7.6-1.fc31.x86_64.rpm


Можно ли как починить без переустановки?

Ответ на: комментарий от papin-aziat

От удивления, что во время обновления ничего нельзя делать.

Хотя чего я удивляюсь, у dnf, небось, и одновременно две копии запустить нельзя, чтобы они параллельно работали. Что уж там говорить об использовании других приложений во время обновления.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от grem

Я описал почти идеальный вариант, Федора всё-таки не роллинг, иначе лучше и иксы прибить. Многозадачность дело хорошее, но если софт багованный или жручий, думаю и гентушник перестрахуется.

Ваш КЕП.

papin-aziat ★★★★★
()
Ответ на: комментарий от grem

Что уж там говорить об использовании других приложений во время обновления.

Неясно одно, зачем вообще это делать?

papin-aziat ★★★★★
()
Ответ на: комментарий от jtad

Надо не через yum, а через rpm.

Скачать rpm-ку dnf-...rpm из репозитория Fedora и сделать установку с помощью rpm -i dnf-...rpm

После чего чинить всё остальное уже dnf-ом

Никаких костылей и левых пакетов из странных репозиториев ставить не надо.

Если rpm тоже успел разломать - можно загрузиться с лайва и запустить dnf с Live-образа с опцией --installroot, чтобы поставить dnf-пакет на систему на диске.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от papin-aziat

если софт багованный или жручий

Ты это сейчас о пакетной базе своего дистрибутива?

Неясно одно, зачем вообще это делать?

Удаление/установка набора пакета; скачивание пакетов и их зависимостей; получение информации о том, что будет установлено, если начать ставить пакет; получение информации о пакетах … во время идущей установки другого набора пакетов.

В Debian отсутствие возможности параллельно использовать apt расстраивала, а это мне постоянно было нужно.

grem ★★★★★
()
Ответ на: комментарий от alpha

так ты пост автора то читал? Он тоже сразу полез через rpm делать. Мне то не особо надо, я с таким еще не сталкивался. Но все равно интересно быть в теме

jtad
()
Ответ на: комментарий от alpha

честно говоря я бы тоже с удовольствием покопался в поисках решения. Чтобы без всяких переустановок заработало

jtad
()
Последнее исправление: jtad (всего исправлений: 1)
Ответ на: комментарий от jtad

Да там нет никакой особой магии.

Обычно если прервать обновление то проблема - это дублирующтеся пакеты в системе: новый уже установлен а старый не удален. Для починки этой проблемы есть dnf check, dnf distro-sync и dnf remove --duplicates

Если же разломан dnf, то есть rpm --verify <pkg>, rpm --reinstall --force <pkg>.rpm.

Есть ещё rpm --rebuilddb на случай если поломана сама база rpm.

Когда-то давно когда в yum не было концепции protected packages я умудрилась yum-ом удалить glibc. Но даже и так это восстанавливается. Правда уже с Live-образом.

alpha ★★★★★
()
Ответ на: комментарий от grem

Удаление/установка набора пакета; скачивание пакетов и их зависимостей; получение информации о том, что будет установлено, если начать ставить пакет; получение информации о пакетах … во время идущей установки другого набора пакетов.

Честно скажу, такой фигнёй давно не маюсь, даже не знаю умеет так DNF или нет, да и нет его у меня, валяется там где-то в toolbox-е…

papin-aziat ★★★★★
()
Ответ на: комментарий от jtad

Откуда интерес к линуху если не секрет?

Когда в универе надо курсовую писать в TeX с поддержкой русского языка, а под винду есть только пиратский WinEdt с нерабочей кириллицей и четырехстраничной инструкцией как её чинить, начинаешь ценить open source подход в целом и emacs в частности.

alpha ★★★★★
()

Кажется, сделал. Я в первую очередь методом ненаучного тыка пытался починить путём pip install dnf. Соответственно, этот пакет конфликтовал с правильным dnf. После удаления того, что поставилось через pip, заработало. Далее выполнял sudo dnf remove --duplicates и прочие шаманства.

te111011010
() автор топика
Ответ на: комментарий от te111011010

dnf есть в репозиториях питона? Вот это неожиданно, потому что вроде днф чисто редхатовское поделие. Будем знать

jtad
()
Ответ на: комментарий от jtad

Как выяснилось, это только заглушка. Которая на практике не позволяла запустить реальный dnf.

te111011010
() автор топика
Ответ на: комментарий от te111011010

pip install dnf

у меня вопрос: зачем ты это сделал?

grem ★★★★★
()
23 августа 2020 г.

всем привет. Помагите пожалуйста нубу только неделя назад перешел на линукс что линукс.Так вот после свежи установки fedora32SilverBlue dnf и yum не работает тyпо не находить пакеты для update при установки систем не наблюдалась каких либо ошибок

system76
()
Ответ на: комментарий от system76

при sudo dnf update пишет sudo: dnf: command not found то же самое при sudo update sudo: yum: command not found как исправить? спасибо заранее

system76
()
Ответ на: комментарий от system76

Silverblue так не работает. Там rpm-ostree.

anonymous
()
Ответ на: комментарий от system76

Не надо поднимать древние треды новыми вопросами. Создавай свою тему и там спрашивай.

alpha ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.