Вопрос или проблема
Вот что я получаю, когда ввожу shell
в терминале ChromeOS (Ctrl + Alt + T):
Я также заметил, что не могу использовать какие-либо команды, например:
Что я могу сделать, чтобы это исправить? Без полной сброса.
Коренная причина заключается в несовместимости между библиотеками chromebrew (/usr/local/lib64/
) и библиотеками ChromeOS (/lib64/
), на которые полагаются встроенные утилиты оболочки ChromeOS.
Чтобы получить доступ к оболочке без завершения работы всех команд, вам следует вызвать bash с установленным путем библиотеки ChromeOS в переменной окружения LD_LIBRARY_PATH
.
$ LD_LIBRARY_PATH=/lib64 bash
А затем вы можете либо удалить chromebrew через $ rm -rf /usr/local/*
, либо сделать то, что считаете правильным.
По какой-то причине значение этой переменной окружения, похоже, сохраняется по умолчанию как /usr/local/lib64/
, независимо от изменений, которые chromebrew внес в домашний каталог пользователя chronos. Вероятно, из-за этого обновления или, возможно, нет.
Да, проблема заключается в файлах, используемых оболочкой Chronos и оболочкой Chromebrew. Если попытка исправить это с помощью ввода команд в терминале не удается. Чтобы правильно решить эту проблему, выполните следующие действия:
Откройте две вкладки терминала, войдите в первую, набрав “shell”.
В этой вкладке отредактируйте ваш ~./bashrc
nano ~/.bashrc
Если nano выдает ошибку, вы можете попробовать использовать другой текстовый редактор через интерфейс GUI.
Закомментируйте строку
source /usr/local/etc/profile
, добавив #, так что она станет
#source /usr/local/etc/profile
Сохраните файл и переключитесь на другую вкладку. В этой вкладке войдите, набрав “shell”.
Затем введите команду, упомянутую предыдущим постером.
LD_LIBRARY_PATH=/lib64 bash
После того как вы отправите эту команду, вы получите рабочий приглашение Chronos для удаления Chromebrew или выполнения любых других действий.
Ответ или решение
После обновления ChromeOS у вас возникла проблема с сегментацией при выполнении команд в терминале. Это связано с несовместимостью библиотек Chromebrew (расположенных в /usr/local/lib64/
) и библиотек, используемых ChromeOS (расположенных в /lib64/
). Для решения данной проблемы, вам необходимо выполнить следующие шаги.
-
Открытие терминала: Запустите терминал, нажав сочетание клавиш
Ctrl + Alt + T
. -
Первый терминал: В первом экземпляре терминального окна введите команду
shell
. Если при этом возникнет ошибка, выполните следующую процедуру в другом терминальном окне. -
Второй терминал: Откройте еще одно окно терминала и снова введите
shell
. После этого, если вы сможете получить доступ к консоли, перейдите к редактированию файла~/.bashrc
. -
Редактирование .bashrc:
- Введите команду для редактирования файла с помощью текстового редактора:
nano ~/.bashrc
- Если
nano
вызывает ошибку, попробуйте использовать другой текстовый редактор через графический интерфейс. - Найдите строку, начинающуюся с
source /usr/local/etc/profile
, и закомментируйте её, добавив#
в начале:#source /usr/local/etc/profile
- Сохраните изменения и выйдите из редактора.
- Введите команду для редактирования файла с помощью текстового редактора:
-
Перезапуск терминала: Вернитесь ко второму терминалу, где вы ввели
shell
. -
Использование переменной окружения: Для получения доступа к оболочке без сбоев, выполните следующую команду:
LD_LIBRARY_PATH=/lib64 bash
Эта команда установит корректный путь к библиотекам, необходимым для работы встроенных утилит ChromeOS.
-
Удаление Chromebrew: После выполнения предыдущей команды, вы сможете удалить библиотеки Chromebrew, если решили, что они больше не нужны. Для этого выполните:
rm -rf /usr/local/*
Проблема заключается в том, что значение переменной окружения LD_LIBRARY_PATH
может по умолчанию устанавливаться на /usr/local/lib64/
, что вызывает конфликты с системными библиотеками. После выполнения этих шагов ваша система должна вернуться в рабочее состояние, и вы сможете использовать терминал ChromeOS без ошибок сегментации.