2016-04-02 12 views
4

Ich bin auf Ubuntu 15.10 und ich entwickle eine Android (SDK 23) App mit reaktiven nativen (0.20.0). Ich benutze Knoten 5.6.0 und npm 3.6.0.Wächter: Fehler beim Laden gemeinsam genutzter Bibliotheken: libpcre.so.1

traf ich einen Wächter Fehler beim react-native start

ERROR watchman--no-pretty get-sockname returned with exit code 127 watchman: 
error while loading shared libraries: libpcre.so.1: cannot open shared object 
file: No such file or directory 

    at ChildProcess.<anonymous> (/home/rachael/Dev/InstaGo/node_modules/fb-watchman/index.js:198:18) 
    at emitTwo (events.js:100:13) 
    at ChildProcess.emit (events.js:185:7) 
    at maybeClose (internal/child_process.js:827:16) 
    at Socket.<anonymous> (internal/child_process.js:319:11) 
    at emitOne (events.js:90:13) 
    at Socket.emit (events.js:182:7) 
    at Pipe._onclose (net.js:471:12) 

laufen Wenn ich sudo find/-name libpcre.so.1 laufen die folgende zurückgegeben:

/home/rachael/.linuxbrew/lib/libpcre.so.1 
/home/rachael/.linuxbrew/Cellar/pcre/8.38/lib/libpcre.so.1 

Ich habe Neuinstallation Wächter versucht:

make uninstall 

git clone https://github.com/facebook/watchman.git 
cd watchman 
git checkout v4.1.0 # the latest stable release . 
/autogen.sh 
./configure 
make 
sudo make install 

I versuchte es auch mit linuxbrew:

npm r -g watchman 
brew update && brew upgrade 
brew install watchman 

, die einen ganz anderen Fehler gab:

A non-recoverable condition has triggered. Watchman needs your help! 
The triggering condition was at timestamp=1407695600: inotify-add-watch(/my/path) -> Cannot allocate memory 
All requests will continue to fail with this message until you resolve 
the underlying problem. You will find more information on fixing this at 
https://facebook.github.io/watchman/docs/troubleshooting.html#poison-inotify-add-watch 

Die Facebook-Seite zur Fehlerbehebung für diesen äußerst vage ist und ich kann diesen Fehler entweder nicht lösen.

Ich bin sehr neu, also würde ich jede Hilfe bei diesem Problem zu schätzen wissen. Vielen Dank für Ihre Zeit.

Aktualisieren

Installieren Sie Wächter über Linuxbrew.

Bei der Verwendung von linuxbrew beachten Sie die folgenden Befehle enthalten, bevor sie eine Formel Installation:

export PATH="$HOME/.linuxbrew/bin:$PATH" 
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH" 
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH" 
brew update && brew upgrade 

Dann installieren Sie die neueste Version von Wächter:

brew install --HEAD watchman 

erhöhen dann die Menge an inotify Benutzerinstanzen, Benutzer Uhren und Ereignisse in der Warteschlange:

echo fs.inotify.max_user_instances=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 
echo fs.inotify.max_queued_events=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 

Jetzt Wächter sollte funktionieren und react-native start sollte gut laufen!

Antwort

1

Das erste von Ihnen gepostete Problem ist ein ldconfig-Problem; Da die pcre-Binärdateien nicht im Systembibliothekspfad installiert sind, kann Ihr Laufzeitlinker sie zur Laufzeit nicht auflösen und kann daher die Watchman-Binärdatei nicht starten.

Ich kann dir nicht helfen, diesen Teil des Problems direkt zu lösen, aber es klingt wie die späteren Schritte, die du versucht hast, dich in eine bessere Position zu bringen.

Bitte beachten Sie, dass die aktuelle Version von Watchman 4.5.0 ist; Die Anweisungen, denen Sie gefolgt sind, sind veraltet (Können Sie mir sagen, wo Sie diese Richtungen gefunden haben?) https://facebook.github.io/watchman/docs/install.html hat immer die aktuellen Informationen.

Nun, um das Gift Ausgabe:

Die Fehlermeldung Sie enthalten sah Link zu https://facebook.github.io/watchman/docs/troubleshooting.html#poison-inotify_add_watch, die eine Erklärung über hat, was geschieht (gebrochen, sorry!).

Sie müssen Ihr System korrekt auf Grenzen setzen diesen Abschnitt lesen: https://facebook.github.io/watchman/docs/install.html#system-specific-preparation

und einmal getan, können Sie den Status löschen, indem watchman shutdown-server

dass Hilfe Did läuft? Ich würde gern verstehen, welche Teile davon vage waren, damit ich sie für andere verbessern kann!

+0

Hallo @WezFurlong Ich benutzte diesen Link: https://facebook.github.io/react-native/docs/getting-started-linux.html#installing-watchman. Vielleicht fügen Sie einfach die Befehle hinzu, die ich in meiner ** Update ** Sektion unter meine Frage gestellt habe. Es zeigt deutlich die Befehle an, die benötigt werden, um die verschiedenen Werte für inotify zu erhöhen. Wäre für Neulinge wie mich viel schöner. Danke nochmal für deine Hilfe! –

0

In Bezug auf die komplett anderen Fehler.

Sie haben Wächter bereits ausgeführt, also wenn Sie react-native start tun, versucht es, einen anderen zu starten.

  1. Erster Lauf watchman shutdown-server
  2. Öffnen Sie Ihren Emulator wieder
  3. Anruf react-native start in Terminal
  4. App im Emulator öffnen.

Alles sollte funktionieren. Es hat für mich getan.

+0

Das hat bei mir nicht funktioniert –

Verwandte Themen