После обновления до Ubuntu 24.04 hstr (коробка предложений истории) не работает.

Вопрос или проблема

После обновления до Ubuntu 24.04 hstr (бокс предложений истории) не работает. Это справедливо как для Ubuntu 24.04, так и для Kubuntu 24.04. Программное обеспечение установлено из репозиториев Ubuntu. Историю можно искать, но нажатие Enter не выбирает запись, оно только выводит её на экран.

Существует относящийся к этому, хотя и решенный баг в основном трекере ошибок.

Я добавил вывод hstr --show-configuration в мой файл .~/bashrc, как предложено в связанном баге.

Это связано с новым ядром в Ubuntu 20.04.

sysctl используется для изменения параметров ядра во время выполнения. Доступные параметры — это те, что перечислены в /proc/sys/. Procfs необходим для поддержки sysctl в Linux. Вы можете использовать sysctl как для чтения, так и для записи данных sysctl.

Запустите следующую команду, чтобы проверить, решает ли это проблему:

$ sudo sysctl -w dev.tty.legacy_tiocsti=1

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

Чтобы убедиться, что это сохраняется между перезагрузками системы на дистрибутивах с новыми версиями systemd, создайте новый конфигурационный файл:

$ sudo sh -c "echo 'dev.tty.legacy_tiocsti=1' > /etc/sysctl.d/9999-legacy-tiocsti.conf"

Осторожно, они отключили это из-за вредоносных скриптов: https://cateee.net/lkddb/web-lkddb/LEGACY_TIOCSTI.html

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

Ответ или решение

Вопрос, которым вы интересуетесь, касается проблемы с работой hstr (история поиска) после обновления до Ubuntu 24.04. В данной ситуации, пользователи сообщают о том, что после обновления программное обеспечение hstr не функционирует должным образом: хотя поиск истории работает, нажатие клавиши "Enter" не приводит к выбору записи, а просто выводит её в терминал.

Причина данной проблемы кроется в изменениях, связанных с новым ядром, которое было внедрено в Ubuntu 20.04 и выше. Изменения касаются параметров системы, доступных через интерфейс sysctl, используемого для модификации параметров ядра в реальном времени. Для работы hstr необходима поддержка Procfs, так как именно через этот интерфейс происходит взаимодействие с системными параметрами.

Для решения проблемы можно выполнить следующую команду в терминале:

sudo sysctl -w dev.tty.legacy_tiocsti=1

Эта команда активирует устаревшую функцию TIOCSTI, что в свою очередь позволяет hstr корректно работать с выбором записей. Если это решает вашу проблему, и hstr снова начинает функционировать нормально, вам необходимо обеспечить сохранение этого изменения после перезагрузки системы. Для этого создайте файл конфигурации:

sudo sh -c "echo 'dev.tty.legacy_tiocsti=1' > /etc/sysctl.d/9999-legacy-tiocsti.conf"

Важно учитывать, что использование данной устаревшей опции может быть небезопасным, так как она была отключена в новых версиях Linux из-за потенциальных рисков, связанных с малонадежными скриптами. Более подробную информацию вы можете найти по следующей ссылке: LEGACY_TIOCSTI.

В качестве альтернативного решения я бы рекомендовал рассмотреть возможность использования других менеджеров истории команд, которых много в этой нише и которые могут предложить вам более современные и безопасные функции, чем hstr.

В случае возникновения каких-либо дополнительных вопросов или необходимости в помощи, пожалуйста, не стесняйтесь обращаться за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...