5

私は Ubuntu 15.10 を使用しており、react-native (0.20.0) を使用して Android (SDK 23) アプリを開発しています。ノード 5.6.0 と npm 3.6.0 を使用しています。

実行中にウォッチマンエラーが発生しました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)

実行するとsudo find / -name libpcre.so.1、次が返されます。

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

ウォッチマンを再インストールしようとしました:

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

私もlinuxbrewで試しました:

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

まったく異なるエラーが発生しました:

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

これに関する Facebook のトラブルシューティング ページは非常に曖昧で、私もそのエラーを解決できませんでした。

私はこれに非常に慣れていないので、この問題について何か助けていただければ幸いです。お時間をいただきありがとうございます。

アップデート

linuxbrew 経由でウォッチマンをインストールします。

linuxbrew を使用する場合は、式をインストールする前に次のコマンドを含めることを忘れないでください。

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

次に、watchman の最新リリースをインストールします。

brew install --HEAD watchman

次に、inotify ユーザー インスタンス、ユーザー ウォッチ、キュー イベントの量を増やします。

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

これでウォッチマンが機能し、正常にreact-native start動作するはずです!

4

2 に答える 2

1

あなたが投稿した最初の問題は、ldconfig 関連の問題です。pcre バイナリはシステム ライブラリ パスにインストールされていないため、実行時リンカーは実行時にそれらを解決できず、watchman バイナリを開始できません。

問題のその部分を直接解決するお手伝いはできませんが、後の手順をお試しいただいた方が、状況が改善されたようです。

現在リリースされている watchman のバージョンは 4.5.0 であることに注意してください。あなたがたどっていた指示は古くなっています (それらの指示を見つけた場所を教えていただけますか?) https://facebook.github.io/watchman/docs/install.htmlには常に最新の情報が含まれています。

さて、毒の問題に:

あなたが見たエラーメッセージには、何が起こっているのかについての説明があるhttps://facebook.github.io/watchman/docs/troubleshooting.html#poison-inotify_add_watchへのリンクが含まれていました。

システム制限を正しく設定するには、このセクションを読む必要があります: https://facebook.github.io/watchman/docs/install.html#system-specific-prepare

完了したら、実行して状態をクリアできますwatchman shutdown-server

それは役に立ちましたか?他の人のために改善できるように、これのどの部分が曖昧であるかを理解したいと思います!

于 2016-04-03T17:31:25.287 に答える