É possível usar a casca do peixe com cygwin? Não consegui compilar o código-fonte no cygwin e não encontrei nenhum pacote pré-compilado. Existe uma boa razão para não ter peixe no cygwin?
O fish shell 2.1.0 agora é oficialmente suportado no Cygwin, é possível instalá-lo usando o instalador padrão.
Veja como consegui compilar peixe em Cygwin.
Primeiro, certifique-se de que temos os seguintes pacotes do cygwin:
libncurses-devel
libiconv
autoconf
(não é realmente uma dependência de peixe, mas precisamos disso para uma etapa posterior) Em seguida, baixe a última fonte de http://fishshell.com (Eu usei fish-1.23.1.tar.gz ). Extraia a fonte para o seu diretório de escolha e cd para ele:
$ tar zxvf fish-1.23.1.tar.gz -C /usr/local/src/
$ cd /usr/local/src/fish-1.23.1/
configure.ac
para remover cheques para iconv
Agora, por algum motivo, ./configure
não pode detectar libiconv
devidamente. Para contornar o problema, removemos a verificação (especificaremos a lib manualmente mais tarde). Para isso, editamos configure.ac
e remova cheques para iconv_open
. Procurando por iconv_open
revela 3 ocorrências; nós comentamos todos eles. Então, de:
AC_SEARCH_LIBS( iconv_open, iconv, ....)
Nós mudamos para:
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
./configure
Em seguida, reconstruímos o ./configure
roteiro executando autoconf
então execute o script de configuração:
$ autoconf && ./configure
Makefile
para incluir o caminho correto para curses.h
Outro problema que enfrentei foi com curses.h
- O gcc não conseguiu encontrá-lo. Uma pesquisa rápida revelou que está em /usr/include/ncurses
.
o Makefile
tem um caminho de inclusão codificado para ele em CFLAGS
, mas aponta para /usr/local/include/ncurses
em vez de.
Então, nós editamos Makefile
e mude:
CFLAGS = -I/usr/local/include/ncurses -std=c99 ....
para
CFLAGS = -I/usr/include/ncurses -std=c99 ...
LDFLAGS
para ligar libiconv
e estamos prontos para compilar / instalar. Finalmente, exportamos o necessário LDFLAGS
para ligar iconv
, então compile e instale!
$ export LDFLAGS="-liconv"
$ make && make install
fish
$ fish
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
me@home /u/l/s/fish-1.23.1>
#define HAVE_NCURSES_H 1
no arquivo de cabeçalho geradoconfig.h
(pelas mesmas razões declaradas acima)translate_color': set_color.c:116: warning: implicit declaration of function
strcasecmp 'set_color.c: Na funçãomain': set_color.c:333: error:
ERR 'não declarado (primeiro uso nesta função)libncurses-devel
e mudou o mudou o-I
caminho no `Makefile (passo 5)?curses.h
não está sendo incluído (ERR
está definido lá). Você pode dar uma espiada/usr/include/ncurses/
e ver se está aí?Verifique os problemas dos peixes # 680 e # 319 no GitHub, há tudo o que você precisa para compilar peixes no cygwin.
fonte