Ruby gemが更新できない
ちょっと古いサーバ上のRuby (1.9.3p327) でRailsをgemでインストールしようとすると、Unsupported digest algorithm (sha256)
のエラーが…。
$ gem install rails ERROR: Error installing rails: invalid gem: package is corrupt, exception while verifying: Unsupported digest algorithm (SHA512). (RuntimeError) in /usr/local/lib/ruby/gems/1.9.1/cache/atomic-1.1.14.gem
検索すると、Ruby自体コンパイルする際のopensslのバージョンが古かったためらしい…。
- How to fix Ruby error: Unsupported digest algorithm (sha256). | I like stuff.
- Unsupported digest algorithm (sha256). – Ruby Forum
Rubyを再コンパイルすればいい(しかない)ということらしいが、サーバが古いためうまくいくかどうか…。あー、っていうか、OpenSSLから入れ替えないといけないのか…。
[追記]
OpenSSLを”0.9.7l 28 Sep 2006″から”1.0.1e 11 Feb 2013″に更新
- CentOS OpenSSL をアップデートする – foldrrの日記
- ./config –prefix=/usr –openssldir=/etc/pki/tls shared; make; make install
- OpenSSL: Source, Tarballs
して、Rubyも更新インストールしてみたら、gem installが動作するようになったが、今度は新たなエラーが…。
$ sudo gem install rails Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb creating Makefile make compiling atomic_reference.c atomic_reference.c:75:2: #error No CAS operation available for this platform make: *** [atomic_reference.o] エラー 1 Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/atomic-1.1.14 for inspection. Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/atomic-1.1.14/ext/gem_make.out
どうやら、gccも古いということらしい…。
$ gcc -v ... gcc バージョン 3.3.6 release (Vine Linux 3.3.6-0vl7)
- failed compile with atomic-1.1.14.gem · Issue #32 · headius/ruby-atomic · GitHub
- This gem installs correctly under GCC 4.8.1. Previously, I was using GCC 4.7.2 and faced the problem described in this issue.
さて、gccを更新すれば作業は終わるのか…?