Как использовать ракушку в cygwin?

Можно ли использовать рыбную оболочку с cygwin? Я не смог скомпилировать источник в cygwin, и я не нашел никаких предварительно скомпилированных пакетов. Есть ли веская причина не иметь рыбу в кигвине?

Теперь в Cygwin официально поддерживается оболочка fish 2.1.0, ее можно установить с помощью установщика по умолчанию.

Вот как мне удалось собрать рыбу в Cygwin.

Шаг 1. Убедитесь, что все зависимости установлены.

Во-первых, убедитесь, что у нас есть следующие пакеты cygwin:

  • libncurses-devel
  • libiconv
  • autoconf (на самом деле не зависимость от рыбы, но мы нуждаемся в ней для последующего шага)

Шаг 2. Загрузите и извлеките последний источник

Затем загрузите последний источник с http://fishshell.com (я использовал fish-1.23.1.tar.gz ). Извлеките источник в ваш каталог по выбору и cd к нему:

 $ tar zxvf fish-1.23.1.tar.gz -C /usr/local/src/ $ cd /usr/local/src/fish-1.23.1/ 

Шаг 3: отредактируйте configure.ac чтобы удалить проверки для iconv

Теперь по какой-то причине ./configure не может обнаружить libiconv должным образом. Чтобы обойти проблему, мы удалим ее для проверки (позже мы укажем lib позже). Для этого мы отредактируем configure.ac и удалим проверки для iconv_open . Поиск iconv_open показывает 3 вхождения; Мы прокомментируем их все. Итак, из:

 AC_SEARCH_LIBS( iconv_open, iconv, ....) 

Мы переходим к:

 #AC_SEARCH_LIBS( iconv_open, iconv, ....) 

Шаг 4: Перестроить и запустить ./configure

Затем мы перестроим скрипт ./configure , запустив autoconf запустим скрипт configure:

 $ autoconf && ./configure 

Шаг 5: Edit Makefile включить правильный путь к curses.h

Еще одна проблема, с которой я столкнулся, – curses.h – gcc не смог ее найти. Быстрый поиск показал, что он находится в /usr/include/ncurses .

Makefile имеет hardcoded include path для него в CFLAGS , но вместо этого указывает на /usr/local/include/ncurses .

Итак, мы редактируем Makefile и меняем:

 CFLAGS = -I/usr/local/include/ncurses -std=c99 .... 

в

 CFLAGS = -I/usr/include/ncurses -std=c99 ... 

Шаг 6: Экспорт LDFLAGS для ссылки в libiconv , и мы готовы к компиляции / установке.

Наконец, мы экспортируем необходимые LDFLAGS для ссылки в iconv , затем компилируем и устанавливаем!

 $ export LDFLAGS="-liconv" $ make && make install 

Наслаждайтесь

 $ fish Welcome to fish, the friendly interactive shell Type help for instructions on how to use fish [email protected] /u/l/s/fish-1.23.1> 

Проверьте проблемы с рыбой # 680 и # 319 в GitHub, есть все, что вам нужно для сбора рыбы на cygwin.

Давайте будем гением компьютера.