Wie benutzt man Fish Shell in Cygwin?

7910
muriloq

Kann man die Fischmuschel mit cygwin verwenden? Ich konnte die Quelle in cygwin nicht kompilieren, und ich habe keine vorkompilierten Pakete gefunden. Gibt es einen guten Grund dafür, keinen Fisch in cygwin zu haben?

15

3 Antworten auf die Frage

23
muriloq

Fish Shell 2.1.0 wird nun offiziell in Cygwin unterstützt. Es ist möglich, es mit dem Standardinstallationsprogramm zu installieren.

15
Shawn Chin

So habe ich es geschafft, Fische in Cygwin zu kompilieren .

Schritt 1: Prüfen Sie, ob alle Abhängigkeiten installiert sind

Stellen Sie zunächst sicher, dass wir die folgenden cygwin-Pakete haben:

  • libncurses-devel
  • libiconv
  • autoconf (nicht wirklich eine Abhängigkeit von Fisch, aber wir brauchen es für einen späteren Schritt)

Schritt 2: Laden Sie die neueste Quelle herunter und extrahieren Sie sie

Laden Sie als Nächstes die neueste Quelle von http://fishshell.com herunter (ich habe fish-1.23.1.tar.gz verwendet ). Extrahieren Sie die Quelle in das gewünschte Verzeichnis und cd:

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

Schritt 3: Bearbeiten configure.ac, um Überprüfungen zu entferneniconv

Jetzt aus irgendeinem Grund ./configurenicht libiconvrichtig erkennen . Um das Problem zu umgehen, entfernen wir die Prüfung dafür (wir geben die Bibliothek später manuell an). Dazu bearbeiten configure.acund entfernen wir Checks für iconv_open. Die Suche nach iconv_openenthüllt 3 Vorkommen; wir kommentieren sie alle aus. Also von:

AC_SEARCH_LIBS( iconv_open, iconv, ....) 

Wir wechseln zu:

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

Schritt 4: Wiederherstellen und ausführen ./configure

Als Nächstes erstellen wir das ./configureSkript neu, indem wir autoconfdas Konfigurationsskript ausführen und dann ausführen:

$ autoconf && ./configure 

Schritt 5: Bearbeiten Sie Makefileden korrekten Pfadcurses.h

Ein anderes Problem, mit dem ich konfrontiert war, war curses.h- Gcc konnte es nicht finden. Eine schnelle Suche ergab, dass es sich um /usr/include/ncurses.

Das Makefileenthält einen fest codierten Include-Pfad CFLAGS, zeigt aber /usr/local/include/ncursesstattdessen auf.

Also bearbeiten Makefileund ändern wir :

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

zu

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

Schritt 6: Exportieren Sie LDFLAGSden Link libiconv, und wir können ihn kompilieren / installieren.

Zum Schluss exportieren wir die nötigen LDFLAGSLinks iconv, kompilieren und installieren!

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

Genießen 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 Ich kann bestätigen, dass die obigen Schritte funktionieren sollten. Ich habe in der generierten Header-Datei `config.h` auch` #define HAVE_NCURSES_H 1` hinzugefügt (aus den gleichen Gründen wie oben angegeben). Amro vor 13 Jahren 0
Ich habe libiconv installiert und LDFLAGS eingestellt, bekomme aber immer noch einen Fehler: set_color.c: 16: 20: curses.h: Keine solche Datei oder Verzeichnis set_color.c: In Funktion `translate_color ': set_color.c: 116: warning : implizite Deklaration der Funktion `strcasecmp 'set_color.c: In Funktion` main': set_color.c: 333: Fehler: `ERR 'undeclared (erste Verwendung in dieser Funktion) muriloq vor 13 Jahren 0
Ich habe diesen Fehler anfangs auch gesehen. Haben Sie `libncurses-devel` installiert und den` -I`-Pfad im `Makefile (Schritt 5) geändert? Shawn Chin vor 13 Jahren 0
Ja, ich habe libncurses-devel sogar neu installiert, nur um sicher zu gehen. Vielleicht gibt es eine andere Abhängigkeit, die in Ihrem System bereits vorhanden war? Auf der Suche nach der Fehlermeldung habe ich den folgenden Fehlerbericht gefunden: http://sourceforge.net/tracker/?func=detail&aid=928085&group_id=1523&atid=101523 muriloq vor 13 Jahren 0
@muriloq Klingt so, als ob `curses.h` nicht enthalten ist (` ERR` ist dort definiert). Können Sie einen Blick auf `/ usr / include / ncurses / werfen und sehen, ob es da ist? Shawn Chin vor 13 Jahren 0
0
Maciej Matys

Überprüfen Sie die Fischausgaben Nr. 680 und Nr. 319 in GitHub. Dort finden Sie alles, was Sie zum Zusammenstellen von Fisch auf Cygwin benötigen.

Links zu externen Ressourcen werden empfohlen, aber fügen Sie dem Link bitte Kontext hinzu, damit Ihre Mitbenutzer eine Vorstellung davon haben, was es ist und warum es vorhanden ist. Geben Sie immer den relevantesten Teil eines wichtigen Links an, falls die Ziel-Site nicht erreichbar ist oder dauerhaft offline ist. Ashildr vor 11 Jahren 2