cygwinで魚の殻を使用する方法は?


15

cygwinでフィッシュシェルを使用することは可能ですか?cygwinでソースをコンパイルできず、プリコンパイルされたパッケージが見つかりませんでした。cygwinで魚を飼わない正当な理由はありますか?

回答:


23

fish shell 2.1.0がCygwinで正式にサポートされるようになりました。デフォルトのインストーラーを使用してインストールできます。


15

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_open3つの出現が明らかになります。それらをすべてコメントアウトします。だから、から:

AC_SEARCH_LIBS( iconv_open, iconv, ....)

変更先:

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

ステップ4:再構築して実行する ./configure

次に、./configure実行してスクリプトを再構築しautoconf、configureスクリプトを実行します。

$ autoconf && ./configure

ステップ5:Makefile正しいパスを含むように編集するcurses.h

私が直面した別の問題は、curses.hgccが見つけられなかったことです。クイック検索で、それがにあることが明らかになりました/usr/include/ncurses

Makefileは、のハードコードされたインクルードパスがありますが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

$ 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> 

+1上記の手順が機能することを確認できます。また#define HAVE_NCURSES_H 1、生成されたヘッダーファイルに追加しましたconfig.h(上記と同じ理由で)
Amro

libiconvをインストールしてLDFLAGSを設定しましたが、まだエラーが発生します:set_color.c:16:20:curses.h:そのようなファイルまたはディレクトリはありませんset_color.c:関数translate_color': set_color.c:116: warning: implicit declaration of function strcasecmp 'でset_color.c:関数main': set_color.c:333: error: ERR'で宣言されていません(この関数での最初の使用)
-muriloq

私も最初にそのエラーを見ました。`Makefileのlibncurses-devel変更された-Iパスをインストールして変更しましたか(ステップ5)?
ショーンチン

はい、念のため、libncurses-develを再度再インストールしました。システムにすでに存在する別の依存関係があるのでしょうか?エラーメッセージを探して、次のバグレポートを見つけました: sourceforge.net/tracker/…–
muriloq

@muriloq Sounds like curses.hは含まれていません(ERRそこで定義されています)。覗いて、/usr/include/ncurses/そこにあるかどうかを確認できますか?
ショーンチン

0

GitHubで魚の問題#680#319を確認してください。cygwinで魚をコンパイルするために必要なものはすべて揃っています。


2
外部リソースへのリンクを推奨しますが、リンクの周りにコンテキストを追加して、仲間のユーザーがそれが何であり、なぜそこにあるのかを理解できるようにしてください。ターゲットサイトに到達できないか、完全にオフラインになる場合に備えて、重要なリンクの最も関連性の高い部分を常に引用してください。
Ashildr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.