Как установить и настроить оболочку rediculous fish в Debian Squeeze

в 10:27, , рубрики: Debian, fish, linux, shell, squeeze, Оболочки, метки: , , ,

Совсем недавно я открыл для себя оболочку Rediculous fish, которая принципиально отличается от bash и zsh с которыми я работал ранее. На моем MacBook Pro под Mac OS X оболочка установилась без каких либо проблем и замечательно работала. Освоившись в новой оболочке, я решил что пришло время установить и настроить ее так же и на серверах, на которых установлен 64-разрядный Debian Squeeze. Тут то я и столкнулся с тем, что 32-разрядный deb пакет, который лежит у них на сайте, на 64-разрядный Debian не устанавливается. И я решил собрать любимую оболочку из исходников. Этот процес и будет описан в статье.

Скачиваем исходники с сайта и распаковываем их.

wget http://ridiculousfish.com/shell/files/fishfish.tar.gz
tar xzf fishfish.tar.gz

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

sudo apt-get install autoconf g++ libncurses5-dev libncursesw5-dev gettext

После того, как зависимости установлены приступаем с сборке самой оболочки.

autoconf
./configure --without-xsel

При конфигурации я указываю опцию --without-xsel. Если ее не указывать, то при сборке скрипт не найдет некоторых библиотек от X11. Устанавливать же X11 на севрер у меня желания не было. Если все прошло хорошо — вы увидите:

fish is now configured.
Use 'make' and 'make install' to build and install fish.

Запускаем сборку.

make

Если сборка завершилась успешно, то вы увидите:

fish has now been built.
Use 'make install' to install fish.

После сборки устанавливаем fish.

sudo make install

Если все хорошо — вы увидете:

fish is now installed on your system.
To run fish, type 'fish' in your terminal.

To use fish as your login shell:
* add the line '/usr/local/bin/fish' to the file '/etc/shells'.
* use the command 'chsh -s /usr/local/bin/fish'.

To set your colors, run 'fish_config'
To scan your man pages for completions, run 'fish_update_completions'

Have fun!

Добавляем строку /usr/local/bin/fish в /etc/shells, как рекомендует инсталятор.

sudoedit /etc/shells 

Выбираем fish в качестве оболочки.

chsh -s /usr/local/bin/fish

После завершения установки у меня остались некоторые проблемы: раздражающее мигание команд и подсказок и неработающая генерация completions из-за manpath. Проблему с миганиями я решил убрав «лишние» настройки в цветах, в которые раскрашивает оболочка команды. Вы можете выбрать такую раскарсску, какая вам нравится с помощью set fish_color_* параметров.

set fish_color_autosuggestion yellow
set fish_color_command green
set fish_color_param cyan

Проблему с неработающей генерацией completions тоже удалось решить с помощью страшного трюка. Редактируем файлик:

sudoedit /usr/local/share/fish/tools/create_manpage_completions.py

Переходим на строку с номером 744 и как описано здесь редактируем эту строчку так, что бы вместо

proc = subprocess.Popen(['man', '--path'], stdout=subprocess.PIPE)

получилось

proc = subprocess.Popen(['manpath'], stdout=subprocess.PIPE)

Потом запускаем генерацию completions

fish_update_completions 

Если все правильно получаем в ответ, что-то вроде

Parsing man pages and writing completions to /home/rp/.config/fish/completions/

Вуаля! Наслаждаемся прекрасной оболочкой.

Автор: dohque

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js