-обновление-версии перестало работать тихо. Первые шаги к поиску и устранению неисправностей?

При попытке обновить от 14,10 до 15,04 я выполняю следующую команду.

sudo do-release-upgrade

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

Каковы должны быть мои первые шаги для поиска и устранения неисправностей этого? Есть ли журналы где-нибудь, что я могу проверить? Я приучен к большему количеству обратной связи от провальных программ.

Редактирование 1:подробнее...

Возвраты команды приблизительно после одной секунды, и кода выхода равняются 139, который указывает на отказ сегментации.

Редактирование 2:

После выполнения следующей команды

sudo strace -o do-release-upgrade.strace do-release-upgrade

Можно найти вывод strace здесь: http://pastebin.com/hb5zthbb

3
задан 6 May 2015 в 19:51

2 ответа

Хорошо, у меня есть несколько необычный ответ:

С тех пор do-release-upgrade записан в Python и в Вашем профиле, Вы упоминаете, что знаете о Python, я использовал отладчик Python и для меня прогоны программы правильно.

sudo apt-get install python3-pudb

Запускают отладчик с:

pudb3 $(which do-release-upgrade)

и локализуют проблему.

Тогда я посмотрел strace , производит . Это - интересная часть:

stat("/usr/lib/python3/dist-packages/apt_pkg.cpython-34m-x86_64-linux-gnu.so", {st_mode=S_IFREG|0644, st_size=351400, ...}) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x184e6} ---
<час>

я делаю прогноз:

sudo apt-get install --reinstall python3-apt
2
ответ дан 1 December 2019 в 15:57

Вот шаги отладки, которые я сделал.

  1. Определенный код возврата

    sudo do-release-upgrade
    echo $?
    

    провальной программы код был 139

  2. Искавший Google для кода возврата для обнаружения то, что это означало

    , код указывает на отказ сегментации

  3. Используемый strace для понимания то, где ошибка происходила

    sudo strace -o do-release-upgrade.strace do-release-upgrade
    

    , Это записало, что трассировка входит в файл, названный do-release-upgrade.strace, и журнал показал в нижней части, файле во время выполнения, в котором произошел отказ.

  4. Выполнил pudb3 отладчик для отладки do-release-upgrade

    , Если pudb3 еще не установлен.

    sudo apt-get install python3-pudb
    

    Выполнение pudb3 отладчик

    sudo pudb3 /usr/bin/do-release-upgrade
    

    Для незнакомых с отладчиками, это позволило мне ступать через каждую точку выполнения сценария.

    я быстро нашел следующую ошибку.

    Traceback (most recent call last):
      File "/usr/bin/do-release-upgrade", line 10, in <module>
        from UpdateManager.Core.MetaRelease import MetaReleaseCore
      File "/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py", line 25, in <module>
        import apt
      File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
        import apt_pkg
    ImportError:
    /usr/lib/python3/dist-packages/apt_pkg.cpython-34m-x86_64-linux-gnu.so:
    undefined symbol: _ZN13pkgSrcRecords4StepEv
    

    , Которые приводят меня к соответствующий отчет об ошибках человечности

  5. Предпринятое удаление и переустановка пакета, обозначенного в отчете об ошибках

    Первый метод

    sudo apt-get install --reinstall python3-apt
    

    Второй, более решительный метод

    sudo dpkg --purge --force-depends python3-apt
    sudo apt-get install python3-apt
    

    , Ни один из них не решил проблему.

Заключение:

я все еще нахожу его нечетным, что ошибка не была распечатана к stdout; обычно, я ожидаю, что это должно быть. Это решение не должно было требовать отладчика.

Это - ошибка в двоичном пакете python3-apt. Не исправляя ошибку и восстанавливая пакет, эта ошибка, вероятно, останется.

2
ответ дан 1 December 2019 в 15:57

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

Похожие вопросы: