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


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

это трындец, товарищи, чтобы пакетный менеджер ломался за просто так. :) линукс для десктопа готов!

Spoofing ★★★★★
()

Файл /usr/lib/python3.7/site-packages/dnf/cli/__init__.py есть? У меня он принадлежит пакету python3-dnf-4.2.17-1.fc31.noarch, но мало ли. Если есть, то можно будет попробовать понять почему он не импортируется.

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

Я же выше писал, что так и делал. Может, не те пакеты. Но тогда в том и вопрос, какие именно.

te111011010
() автор топика

это обычный python скрипт. посмотри первую строку ( sha-bahg ) скрипта, какой там путь к python

можно попробовать вручную его запустить и попробовать импортировать модуль

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

у меня федора уже много лет, чтобы dnf ломался это надо постараться. По крайней мере я такого никогда не видел даже в ранних версиях

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

А ты попробуй жёстко ребутнуть при апдейте.

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

так ты проверь. вдруг окажется, что ты обновил python3 у тебя ведёт например к python3.5, а модуль dnf.cli установлен для python 3.7

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

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

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

Вот это я не знаю. Три раза за последние сутки. Сейчас уже нет возможности продиагностировать, так как всё слетело.

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

нет возможности продиагностировать, так как всё слетело.

Доступ к диску-то остался. Livecd, chroot и всё такое.

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

пока не виснет

чтоб не висло: https://github.com/rfjakob/earlyoom - устраняет одну из причин. Оно же и предложено для включения в Fedora 32 для предотвращения зависаний.

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

Вряд ли это. Памяти относительно много плюс своп. В последние два зависания было мало чего открыто.

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

Если файл не «битый», то, возможно, используется не тот интерпретатор.

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

это трындец, товарищи, чтобы пакетный менеджер ломался за просто так. :) линукс для десктопа готов!

А может это python3 НЕ ГОТОВ для десктопа? ты НЕ ПОДУМАЛ ОБ ЭТОМ?

darkenshvein ★★★★★
()

Типичная проблема неатомарных обновлений. Перешел бы уже на Silverblue.

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

я ещё могу допустить ситуацию с «поломкой», как например в Debian, когда APT создаёт .lock файл, чтобы нельзя было запустить ещё одну копию программы, пока работает другая. и в случае некорректного завершения .lock файл остаётся, APT больше не запускается, о чём пишет: удалите .lock, если вы знаете, что делаете. ок.

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

а тут извините. Python сломался и пол системы перестало работать. да бред полный. как такое чудо вообще имеет право на жизнь в ынтырпрайзе?

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

Всегда вырубить питание во время распаковки обновлений - это гарантированно что-сломать в системе. То что попало самому пакетному менеджеру - это случайность. Хотя сломать пакетный менеджер у которого минимум зависимостей менее вероятно, чем то, что зависит от питона.

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

полсистемы перестало работать) зачем сразу в панику кидаться, dnf это еще не все ест rpm. Есть случаи когда dnf бесполезен, например раньше jdk можно было только через rpm как и пакеты от сузи. Потом на серваках политика в отношении апдейтов строгая, а не автоматом через какой-нить таймер.

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

Ну чё, как твоя передовая ОС Фидора? Страдай! «Всёвпорядкенеломаетсяничего», наконец-то карма проявилась на тебе!

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

Это не передовая федора, это устаревшая федора. В передовой нет dnf, там rpm-ostree.

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

да нет, к сожалению выпилили. Я распаковал rpm и там всего лишь линк

[jtad@localhost ~]$ cd Downloads/usr/bin/

[jtad@localhost bin]$ file yum
yum: broken symbolic link to dnf-3

[jtad@localhost bin]$ ls -lah yum
lrwxrwxrwx 1 jtad jtad 5 25. Jan 12:19 yum -> dnf-3

jtad
()

Выключение электричества во время обновления системы – это почти гарантированный конец. Если у тебя нет ИБП, то значит есть бекап, иначе вот так вот. Как говорили выше, наш выбор silverblue, все манипуляции с критически важными компонентами системы оффлайн.

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

Да не, есть способ чинить такое: переустановить принудительно все установленные пакеты, или хотя-бы те что остались в кеше.

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

Кто ж будет устраивать танцы с бубнами, когда установить с нуля и настроить софт, в котором работаешь, займет не более часа.

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

а тут извините. Python сломался и пол системы перестало работать. да бред полный. как такое чудо вообще имеет право на жизнь в ынтырпрайзе?

Очень легко. Линукс - это серверная ОС. Ну ты понял.

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

И у ТСа как раз тот случай, чтобы посмотреть в сторону новых технологий, раз бывают перебои, а ИБП покупать неохота.

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

Повисло оно при распаковке, когда активно используется IO. Ещё SSD небось? Помнить надо, что у тебя Linux вместо ядра.

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

Нет, это какая-то другая проблема. Раньше не было, а за последние сутки — три раза. Причём виснет не полностью. Курсор движется, звук играет (если перед зависанием что-то проигрывалось), а больше ничего нельзя сделать, даже в другой терминал переключиться. Причём это было только, когда был запущен firefox. Очень странно, но причину не понял. Если починю систему, буду наблюдать.

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

Причём это было только, когда был запущен firefox

В линуксах видеосистема сделана из палок и ещё одного материала.

Возможно отключение хардварного ускорения рендеринга в Firefox прекратит зависания.

Ну и Webrender отключить, если подумал, что это хорошая идея и сам его врубил.

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

Ещё рекомендую прямо вывод в память/tmpfs писать, для более выраженного результата.

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

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

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

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

Сделал мой вечер, спасибо. ;)

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