/var/lib/dpkg/info/python-apt.postinst: /usr/bin/pycompile: /usr/bin/python: плохой интерпретатор: No such file or directory
Эта ошибка указывает на то, что /usr/bin/python
в некотором роде сломан. Большинство сценариев Python не смогут быть запущены.
Когда устанавливается пакет python-apt
, он запускает сценарий Python. Это не удается, поэтому установка пакета не может быть завершена. Хотя APT может продолжить установку других пакетов даже в случае сбоя одного, это может потребовать запуска apt-get -f install
несколько раз и может помешать обновлениям, которые перетасовывают зависимости. И в любом случае, сломанный Python сломает много программ.
$ ls -l /usr/bin/python ls: невозможно получить доступ к /usr/bin/python: Нет такого файла или каталога $ dpkg -S /usr/bin/python python-minimal: /usr/bin/python
/usr/bin/python
вообще не существует. Но система упаковки считает, что он установлен.
Переустановите пакет, содержащий /usr/bin/python
:
sudo apt-get --reinstall install python-minimal
sudo apt-get -f install
Если отсутствие /usr/bin/python
является единственной проблемой, это должно восстановить вашу систему. Но то, что вызвало исчезновение /usr/bin/python
, могло вызвать и другие проблемы.
Попробуйте выяснить, что могло вызвать исчезновение /usr/bin/python
. Обычно этого не происходит, если вы используете dpkg
и apt
для управления пакетами. Убедитесь, что если вы устанавливаете какое-либо программное обеспечение без использования менеджера пакетов, оно попадает под /opt
или /usr/local
, а не непосредственно под /usr
.
Используйте compiling-command | head --lines 32
для вывода первых 32 строк из вывода compiling-command
.
Вы также можете использовать compiling-command | grep "Text to search" | head --lines 32
для отображения первых 32 находок «Текст для поиска».
Отключение опции -Wall
в gcc не будет выводить столько ошибок.
У вас есть несколько вариантов:
head
, помня, что сообщения об ошибках , конечно же, отправляются на стандартную ошибку . Или используйте один из многих инструментов, используемых после -обработки выходных данных GCC. Также помните, что в современных версиях GCC, в которых принята модель clang, одна ошибка может занимать несколько строк, поэтому небольшое количество строк для head
может быть вообще не очень полезным. pager
, pg
, more
или less
, опять же помня, что сообщения об ошибках отправляются в стандартную ошибку . :terminal
в NeoVIM, что обеспечивает довольно много прокрутки назад и, конечно же, все обычные последовательности клавиш навигации VIM для быстрого перехода к началу вывода и поиска. Последний вариант наиболее интересен.Он бывает как минимум двух вкусов:
vim -q errors_fileи
nvim -q errors_file, где вы, конечно, можете заменить имя по вашему выбору на
errors_file
. Откроется текстовый редактор с файлом ошибок, загруженным в буфер быстрого исправления, а файл для первого сообщения об ошибке или предупреждения будет открыт и расположен в строке с номером (и столбце )этой ошибки.
:make
, а VIM/NeoVIM поместит вывод ошибки при запуске make
в список быстрых исправлений, снова автоматически позиционируя файл, строку и столбец. первого сообщения об ошибке или предупреждения. С обоими из них, конечно, можно переходить от местоположения одного предупреждения/ошибки к другому, используя :cnext
и различные другие команды навигации по списку быстрых исправлений Vim/NeoVIM, перечисленные в :help :cc
. Обратите внимание, что нет причин ограничивать количество ошибок с помощью этих механизмов, и есть команды Vim/NeoVIM для возврата к позиции текущего сообщения или возврата к позиции первого сообщения.
В последнем случае можно также запускать :make
несколько раз и переключаться между старыми и новыми списками ошибок, используя :colder
и :cnewer
. (Можно дополнительно изменить :make
для запуска чего-то другого, кроме make
, используя set makeprg
, подробнее см. руководство VIM/NeoVIM.)
Аналогичные вещи можно делать и с emacs.