Browse Month: August 2016

CentOS 7.x で最新の Node.js をインストールする方法

CentOS 7.x 公式で提供している Node.js のバージョンは、現時点で 0.10.42 とかなり古いバージョンになります。
現在の Node.js の最新の安定版は 6.x ですから、こちらをインストールしてみたいところです。

もちろん、普通にコンパイルしてインストールする方法があるのですが、コンパイルはせずにパッケージなどでさくっと導入したいと思って、その方法を調べてみました。すると、2つの方法がありそうです。

1. n package を使ってインストールする方法
この方法では、既存の node.js npm から n というパッケージを導入して、n パッケージ経由で node.js を複数バージョンできるものです。今回は、複数バージョンではなく、単に安定版だけをインストールしたかったので、この方法は見送りました。

2. NodeSource が提供しているパッケージを使う
NodeSource から、deb、yum、向けに各バージョンの node.js パッケージが提供されています。
CentOS 7 もサポートされているため、今回はこちらの方法で Node.js を差し替えてみました。

方法は、次のとおりです。

1. 既存の node.js を削除します

$ sudo yum remove -y nodejs npm

2. NodeSource の yum リポジトリを追加します

# curl -sL https://rpm.nodesource.com/setup_6.x | bash -
あるいは直接パッケージをインストールします
# rpm -i https://rpm.nodesource.com/pub_6.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm

3. node.js をインストールします

$ sudo yum install -y nodejs
※自動的に、対応している npm などもインストールされます
$ node -v
v6.4.0

ということで、手軽に CentOS 7.x に最新安定版の Node.js をインストールすることができました。
Node.js のバージョンアップ追従もパッケージ側の方もちゃんと行っているため、とても便利でした。

[macOS] git-secret が動かなかった

ご存じ git-secret とても便利ですが、ふとちゃんと使っていたところ、git commit 時に、次のように失敗していました。


$ git commit -m "foo" foo.txt
[ERROR] Matched one or more prohibited patterns

Possible mitigations:
– Mark false positives as allowed using: git config –add secrets.allowed …
– Mark false positives as allowed by adding regular expressions to .gitallowed at repository’s root directory
– List your configured patterns: git config –get-all secrets.patterns
– List your configured allowed patterns: git config –get-all secrets.allowed
– List your configured allowed patterns in .gitallowed at repository’s root directory
– Use –no-verify if this is a one-time false positive

よくよく原因を調べてみると、git-secret の commit_msg_hook フックの grep コマンドに失敗しているのが分かりました。
macOS の grep は、BSD 由来の grep だったことが原因でした。


/usr/bin/grep --version
grep (BSD grep) 2.5.1-FreeBSD
83242 (prj/github/github-practic

GNU grep で切り替えて、無事対処しました。いちお、issue をこっそり本家に投稿しておきました。
alias grep=ggrep だとうまくいなかったので、思い切って gnu grep に入れ替えてみました。


$ brew tap homebrew/dupes
$ brew install grep --with-default-names

これで無事 git-secret が動作しているので、クラウド破産の危機が減ったかと思います。

あと、この情報を参考に、ついでにいくつか GNU のものにまとめて差し替えてみました。BSD 系のものを使うときには /usr/bin/ を指定すればよいので忘れないでおきます。