При попытке обновить от 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
Хорошо, у меня есть несколько необычный ответ:
С тех пор 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
Вот шаги отладки, которые я сделал.
Определенный код возврата
sudo do-release-upgrade
echo $?
провальной программы код был 139
Искавший Google для кода возврата для обнаружения то, что это означало
, код указывает на отказ сегментации
Используемый strace
для понимания то, где ошибка происходила
sudo strace -o do-release-upgrade.strace do-release-upgrade
, Это записало, что трассировка входит в файл, названный do-release-upgrade.strace
, и журнал показал в нижней части, файле во время выполнения, в котором произошел отказ.
Выполнил 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
, Которые приводят меня к соответствующий отчет об ошибках человечности
Предпринятое удаление и переустановка пакета, обозначенного в отчете об ошибках
Первый метод
sudo apt-get install --reinstall python3-apt
Второй, более решительный метод
sudo dpkg --purge --force-depends python3-apt
sudo apt-get install python3-apt
, Ни один из них не решил проблему.
Заключение:
я все еще нахожу его нечетным, что ошибка не была распечатана к stdout; обычно, я ожидаю, что это должно быть. Это решение не должно было требовать отладчика.
Это - ошибка в двоичном пакете python3-apt
. Не исправляя ошибку и восстанавливая пакет, эта ошибка, вероятно, останется.