Совсем недавно я открыл для себя оболочку 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