Ошибка при установке python3-apport_2.20.1 в Ubuntu 16.04

В частности, для sed вы можете использовать аргумент -i in-place. Он просто сохраняет исходный файл, например:

sed -i 's/ /-/g' filename

Если вы хотите сделать что-то более жесткое, если вы делаете больше, чем sed, да, вы можете буферизировать все это с помощью sponge (из пакета moreutils), который будет «впитывать» весь stdin перед записью в файл. Это похоже на tee, но с меньшей функциональностью. Однако для базового использования это в значительной степени замена:

cat file | some_sed_command | sponge file >/dev/null

Это безопаснее? Определенно. Вероятно, у него есть ограничения, поэтому, если вы делаете что-то колоссальное (и не можете редактировать на месте с помощью sed), вы можете захотеть сделать свои изменения во втором файле, а затем mv вернуть этот файл к исходному имени файла. Это должно быть атомарным (так что все, что зависит от этих файлов, не будет ломаться, если им нужен постоянный доступ).

0
задан 3 January 2018 в 13:19

2 ответа

Повторная установка python3-minimal, которая предоставляет py3clean, может позволить процессу завершить работу. dist-upgrade может потребоваться, если проблемы сохраняются после первых четырех команд. См. Зачем использовать apt-get update вместо apt-get dist-upgrade?

sudo apt-get install --reinstall python3-minimal sudo apt-get update sudo apt-get upgrade sudo apt-get -f install

Учитывая дополнительные постоянные ошибки, может потребоваться несколько более агрессивное исправление. Используйте либо Зачем использовать apt-get update вместо apt-get dist-upgrade? или Command-line foo, используя netselect, чтобы перейти на другое зеркало. Зеркало LANET является вероятным кандидатом, но см. Официальные архивные зеркала для Ubuntu для дополнительных параметров. Команда mv переместит ваши текущие списки и текущие источники в /tmp, где они могут быть восстановлены, если что-то пойдет не так в следующих шагах. Команда apt-get clean очистит все загруженные архивы пакетов. apt-get update будет заполнять ваши apt-списки на основе ваших исходных файлов. apt-get dist-upgrade в дополнение к выполнению функции обновления, также разумно обрабатывает изменения зависимостей с новыми версиями пакетов.

mkdir -p /tmp/apt/lists mkdir -p /tmp/etc/apt/source.list.d sudo mv /var/lib/apt/lists/* /tmp/apt/lists/ cp /etc/apt/source.list.d/* /tmp/etc/apt/source.list.d/ cp /etc/apt/source.list /tmp/etc/apt/ # change mirrors with one of the method mentioned above then continue. sudo apt-get clean sudo apt-get update sudo apt-get dist-upgrade
1
ответ дан 17 July 2018 в 23:58

Повторная установка python3-minimal, которая предоставляет py3clean, может позволить процессу завершить работу. dist-upgrade может потребоваться, если проблемы сохраняются после первых четырех команд. См. Зачем использовать apt-get update вместо apt-get dist-upgrade?

sudo apt-get install --reinstall python3-minimal sudo apt-get update sudo apt-get upgrade sudo apt-get -f install

Учитывая дополнительные постоянные ошибки, может потребоваться несколько более агрессивное исправление. Используйте либо Зачем использовать apt-get update вместо apt-get dist-upgrade? или Command-line foo, используя netselect, чтобы перейти на другое зеркало. Зеркало LANET является вероятным кандидатом, но см. Официальные архивные зеркала для Ubuntu для дополнительных параметров. Команда mv переместит ваши текущие списки и текущие источники в /tmp, где они могут быть восстановлены, если что-то пойдет не так в следующих шагах. Команда apt-get clean очистит все загруженные архивы пакетов. apt-get update будет заполнять ваши apt-списки на основе ваших исходных файлов. apt-get dist-upgrade в дополнение к выполнению функции обновления, также разумно обрабатывает изменения зависимостей с новыми версиями пакетов.

mkdir -p /tmp/apt/lists mkdir -p /tmp/etc/apt/source.list.d sudo mv /var/lib/apt/lists/* /tmp/apt/lists/ cp /etc/apt/source.list.d/* /tmp/etc/apt/source.list.d/ cp /etc/apt/source.list /tmp/etc/apt/ # change mirrors with one of the method mentioned above then continue. sudo apt-get clean sudo apt-get update sudo apt-get dist-upgrade
1
ответ дан 24 July 2018 в 17:08
  • 1
    Очень быстрый ответ. Благодарю. Тем не менее, я получил ошибку при запуске вашей первой команды, и она по-прежнему показывает выше ошибки как вопрос обновления – KimHee 3 January 2018 в 13:19
  • 2
    Попробуйте принудительно установить с помощью sudo dpkg -i --force-all /var/cache/apt/archives/python3-apport_2.20.1-0ubuntu2.14_all.deb и начните сначала. – N0rbert 3 January 2018 в 14:33
  • 3
    Благодарю. но я получил ошибку dpkg: error processing archive /var/cache/apt/archives/python3-apport_2.20.1-0ubuntu2.14_al‌​l.deb (--install): cannot access archive: No such file or directory Errors were encountered while processing: /var/cache/apt/archives/python3-apport_2.20.1-0ubuntu2.14_al‌​l.deb – KimHee 3 January 2018 в 14:40
  • 4
    Привет, Я. Старнс. Я сделал как ваш обновленный, но у меня все еще такая же ошибка. Полная ошибка может быть найдена на gist.github.com/John1231983/6c4c7f87fea6aa23bb4924a9c6b7aede – KimHee 4 January 2018 в 06:16

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

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