Pull to refresh

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

Reading time 2 min
Views 6.5K
Совсем недавно я открыл для себя оболочку Ridiculous 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/


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

Tags:
Hubs:
+7
Comments 24
Comments Comments 24

Articles