rootでnpmを使うときにアクセス権限ではまる

結論から先に言うと–unsafe-permというオプションを付ければよいようだ。

npmでインストールするときにソースコードのコンパイルが行われるようなモジュールの場合、rootで実行していると以下のようなエラーがでることがある。rootなのにアクセス権限がないとはどういうことだと思うが、きっとrootでnpmを使うのがよくないと考えてチェックしているのだろう。

以下のようにnpmを実行すれば回避できた。

Raspberry PiからGoogle Homeを操作しようとしてmDNSではまる

せっかくGoogle Home miniを購入したのでRaspberry Piからいろいろと操作しようと思い調べてみたところgoogle-home-notifierという便利なものがあるのを発見。

さっそくインストールして試してみたところIPアドレスを指定すると喋らせることができたが、デバイスを検索するところがうまく動かない。さすがにGoogle HomeのIPアドレスを固定で指定するのは美しくないので原因を調べてみることにする。

デバイスの検索はmDNSで行っているようだがavahi-browseでリストしても何も出てこなくて、ファイアウォールでmDNSのポートを許可していないことに気付く。

リストは以下の通り。

ファイアウォールの追加は以下の通り。

さらにgoogle-home-notifierを利用している人のブログだけ見てインストールしたので、READMEに書いてある手順を実施していないのに気付く。browser.jsの修正は記述通り実施してlibnss-mdnsのインストールをしようとしたところで、なんとCentOSにはパッケージが用意されていないという罠に気付く。

普通のIntel環境ならepelでインストールできるようだが、Raspberry PiのCentOSにはそれも使えず。ソースから入れる気力もないし素直にRaspbianを使っておけばよかったかなと思いつつデバイスの検索は一旦あきらめる。