はてなブログ用gemをインストールする(2回目)
前回のつづき。
はてなブログ用gemをインストールする
今回インストールしたいhatenablogはruby2.0以上でないとダメ。1.9ではダメ。
$ source ~/.bash_profile $ ruby -v ruby 2.4.0p0 (2016-12-24 revision 57164) [i686-linux]
インストールを試みるもエラー。
$ sudo gem install hatenablog [sudo] password for mint: Fetching: mini_portile2-2.1.0.gem (100%) Fetching: nokogiri-1.6.8.1.gem (100%) Building native extensions. This could take a while... ERROR: Error installing hatenablog: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError) from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from extconf.rb:4:in `<main>' Gem files will remain installed in /var/lib/gems/1.9.1/gems/nokogiri-1.6.8.1 for inspection. Results logged to /var/lib/gems/1.9.1/gems/nokogiri-1.6.8.1/ext/nokogiri/gem_make.out
nokogiriのコンパイル
上記エラーの原因は過去ログから以下のように予想している。
hatenablogが依存しているnokogiriはコンパイルが必要だが、必要なパッケージが不足していて完了できない。
そこで、これからnokogiriをコンパイルするために必要なパッケージをインストールする。
apt-getではなくすべてSynapticでインストールする。
ruby-devをインストールする
以下の過去ログを参考にする。
Synapticでインストールする。上記のmkmfエラーを解消できる。以降もエラーが出るが、以下のパッケージをインストールすれば解決できる。
libxml2-devとlibxslt1-devをインストールする
以下の過去ログを参考にする。
Synapticでインストールする。
zlibをインストールする
以下の過去ログを参考にする。
zlib1g, zlib1g-devならすでにあった。未インストールでそれっぽいのは以下。
- zlib-bin
- zlib-gst
- zlib-dbg
- zlibc
たぶんこのままで大丈夫だろう。
http://ytyaru.hatenablog.com/entry/2017/05/14/000000
Synapticでインストールする。hatenablogが依存しているnokogiriをコンパイルするため。
はてなブログ用gemをインストールする
上記インストール後、ターミナルを新規起動し、以下を実行する。
$ source ~/.bash_profile $ ruby -v ruby 2.4.0p0 (2016-12-24 revision 57164) [i686-linux] Building native extensions. This could take a while... Fetching: oauth-0.4.7.gem (100%) Fetching: hatenablog-0.5.0.gem (100%) ERROR: Error installing hatenablog: hatenablog requires Ruby version >= 2.0.
エラー。え、2.0でないとダメなの?2.4.0ではダメなの?互換性ないの?(と、寝ぼけて意味不明な思考に陥る)
バージョン確認
2.0.xで最新バージョンを確認してみた。2.0.0-p648
と思われる。
$rbenv install --list ... 2.0.0-dev 2.0.0-preview1 2.0.0-preview2 2.0.0-rc1 2.0.0-rc2 2.0.0-p0 2.0.0-p195 2.0.0-p247 2.0.0-p353 2.0.0-p451 2.0.0-p481 2.0.0-p576 2.0.0-p594 2.0.0-p598 2.0.0-p643 2.0.0-p645 2.0.0-p647 2.0.0-p648 ...
Ruby2.0.0-p648をインストール
$ rbenv install 2.0.0-p648 Installing ruby-2.0.0-p648... WARNING: ruby-2.0.0-p648 is past its end of life and is now unsupported. It no longer receives bug fixes or critical security updates. Installed ruby-2.0.0-p648 to /home/mint/.rbenv/versions/2.0.0-p648
$ source ~/.bash_profile $ rbenv global 2.0.0-p648 $ rbenv versions system * 2.0.0-p648 (set by /home/mint/.rbenv/version) 2.4.0 $ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [i686-linux]
$ sudo gem install hatenablog [sudo] password for mint: ERROR: Error installing hatenablog: hatenablog requires Ruby version >= 2.0.
え?インストールできないんですけど。
というか、よくみたら>=
だから2.4.0でもいいのでは?
ついでにgemのバージョンも調べてみた。
$ rbenv global 2.0.0-p648 $ gem --version 2.0.14.1 $ rbenv global 2.4.0 $ gem --version 2.6.8
どれも2.0以上。
検索
“rbenv requires Ruby version"で検索。以下がヒット。
bundle install しようとしたら ruby のバージョン違くてコケた話 - Qiita
私には難しすぎて何をしているのかわからないが、それっぽいコマンドにしてみたら動いた。
$ rbenv exec gem install hatenablog Fetching: mini_portile2-2.1.0.gem (100%) Successfully installed mini_portile2-2.1.0 Fetching: nokogiri-1.6.8.1.gem (100%) Building native extensions. This could take a while... Successfully installed nokogiri-1.6.8.1 Fetching: oauth-0.4.7.gem (100%) Successfully installed oauth-0.4.7 Fetching: hatenablog-0.5.0.gem (100%) Successfully installed hatenablog-0.5.0 Parsing documentation for mini_portile2-2.1.0 Installing ri documentation for mini_portile2-2.1.0 Parsing documentation for nokogiri-1.6.8.1 Installing ri documentation for nokogiri-1.6.8.1 Parsing documentation for oauth-0.4.7 Installing ri documentation for oauth-0.4.7 Parsing documentation for hatenablog-0.5.0 Installing ri documentation for hatenablog-0.5.0 Done installing documentation for mini_portile2, nokogiri, oauth, hatenablog after 13 seconds 4 gems installed
Rubyインストール後はrbenv rehash
コマンドを打つものらしい。
$ rbenv rehash
パスが何も表示されなかった。
$ which hatenablog
所感
これで動けばOKなのだが、それは次回。