Rubyと筋肉とギターとわたし

エンジニア二年目の雑魚です。プログラミング・ギター・筋トレのことをメインにブログを書いていきます。

ubuntuにwatchmanが入らない

React Nativeを入れるための環境構築をやっていましたが、まあ安定して詰まりました。

以下を参考にやった。

facebook.github.io

mae.chab.in

環境構築

  • npm 5.6.0
  • node v10.2.1

原因

$ create-react-native-app Sample

Unable to start server
See https://git.io/v5vcn for more information, either install watchman or run the following snippet:
  sudo sysctl -w kern.maxfiles=5242880
  sudo sysctl -w kern.maxfilesperproc=524288

よく調べてみるとwatchmanを入れてないからみたい。

なので、以下のwatchman公式を参考にcloneするところからやってみる。

facebook.github.io

$ cd ~

$ git clone https://github.com/facebook/watchman.git

$ cd watchman

$ git checkout v4.9.0

$ ./autogen.sh 
your system lacks libtoolize

$ ./configure
bash: ./configure: そのようなファイルやディレクトリはありません

なんかconfigureで躓く。

./autogen.shのときにうまく言ってるように見えたけど、メッセージ見てみるとエラーっぽい。

とりあえず、ubuntuの公式を見てみた。

Ubuntu – パッケージ内容検索結果 -- libtoolize

多分libtoolが入ってないからっぽいなぁ。

$ sudo apt install libtool
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libltdl-dev
提案パッケージ:
  libtool-doc gfortran | fortran95-compiler gcj-jdk
以下のパッケージが新たにインストールされます:
  libltdl-dev libtool
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
355 kB のアーカイブを取得する必要があります。
この操作後に追加で 1,857 kB のディスク容量が消費されます。
続行しますか? [Y/n] y  
取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 libltdl-dev amd64 2.4.6-0.1 [162 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 libtool all 2.4.6-0.1 [193 kB]
355 kB を 0秒 で取得しました (390 kB/s)
以前に未選択のパッケージ libltdl-dev:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 286451 個のファイルとディレクトリがインストールされています。)
.../libltdl-dev_2.4.6-0.1_amd64.deb を展開する準備をしています ...
libltdl-dev:amd64 (2.4.6-0.1) を展開しています...
以前に未選択のパッケージ libtool を選択しています。
.../libtool_2.4.6-0.1_all.deb を展開する準備をしています ...
libtool (2.4.6-0.1) を展開しています...
man-db (2.7.5-1) のトリガを処理しています ...
libltdl-dev:amd64 (2.4.6-0.1) を設定しています ...
libtool (2.4.6-0.1) を設定しています ..

お、いけた。

この状態で、

$ ./autogen.sh

$ ./configure

$ make

$ sudo make install

までいくと、上手くwatchmanが入った。

おわり

homebrewだともっと簡単だったんだけどなぁ〜。

でも、とりあえずReactNativeができるようになったのでよかった。