ガジェットまみれ生活

オッサンエンジニアの備忘録。 ネットで調べたけどそのままでは上手くいかなかったりとか、前例がなかったりで少々ハマッたり楽しかった事を綴るブログ。デジモノだけじゃなくノージャンルで思ったことや経験を発信する。

rbenv installが最近downloadエラーになるようになってたのでその対処

新たな開発環境を作るのに、いつもの手順でansibleを動かしていたら見慣れないところでエラーになって止まってた。3月に同じ事をしたときはこんなエラー出なかったのに。

TASK [rails : install ruby via rbenv] ******************************************
fatal: [default]: FAILED! => {"changed": true, "cmd": "bash -lc \"rbenv install 2.3.0\"", "delta": "0:00:00.755625", "end": "2017-05-10 08:50:52.924061", "failed": true, "rc": 1, "start": "2017-05-10 08:50:52.168436", "stderr": "Downloading ruby-2.3.0.tar.bz2...\n-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2\nerror: failed to download ruby-2.3.0.tar.bz2\n\nBUILD FAILED (CentOS release 6.5 (Final) using ruby-build 20170405-4-g365dd1f)", "stderr_lines": ["Downloading ruby-2.3.0.tar.bz2...", "-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2", "error: failed to download ruby-2.3.0.tar.bz2", "", "BUILD FAILED (CentOS release 6.5 (Final) using ruby-build 20170405-4-g365dd1f)"], "stdout": "", "stdout_lines": []}
to retry, use: --limit @/vagrant/ansible/site.retry
PLAY RECAP *********************************************************************
default : ok=27 changed=2 unreachable=0 failed=1
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

 

サーバでも落ちてるのかと思って、試しにCentOS上からruby-lang.orgにアクセスしてみると、なんだか変なエラーが出た。

[os] curl -v https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
* About to connect() to cache.ruby-lang.org port 443 (#0)
* Trying 151.101.72.233... connected
* Connected to cache.ruby-lang.org (151.101.72.233) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -12190
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error

 

どうもcurlからのSSL接続がダメっぽいので、google先生に「curl 35」と入れて検索してみたら、libcurlを新しくしなさいとの事なので入れ替えることにした。まずは最新のlibcurlがあるリポジトリの追加から。gpgcheck=1にしてるとエラーになるので注意。

[os] sudo vi /etc/yum.repos.d/city-fan.repo

[city-fan]
name=City Fan Repo
baseurl=http://nervion.us.es/city-fan/yum-repo/rhel$releasever/$basearch/
enabled=0
gpgcheck=0

 

city-fanとepel両方のリポジトリを有効にしてパッケージのアップデートをする。なんだかんだゴチャゴチャ画面に出るが、最終的にcomplete!になってればOK。

[os] sudo yum update -y --enablerepo=city-fan --enablerepo=epel libcurl

[os] sudo yum info libcurl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.0x.sg
* extras: download.nus.edu.sg
* remi-safe: mirror.innosol.asia
* updates: centos.usonyx.net
Installed Packages
Name : libcurl
Arch : x86_64
Version : 7.54.0
Release : 4.0.cf.rhel6 ~~以下省略~~

 

確認のため、もういちどruby-lang.orgにアクセスしてみる。200 OKが出てれば安心。

[os] curl -I https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
HTTP/1.1 200 OK
Server: nginx/1.2.1
Content-Type: application/octet-stream
Last-Modified: Thu, 24 Dec 2015 16:49:00 GMT
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Via: 1.1 varnish
Fastly-Debug-Digest: b475fe93538c54acb7f4db83f6a9d1a447eb8a69bf67f6da9111e33ba9e50ed0
Content-Length: 14185617
Accept-Ranges: bytes
Date: Wed, 10 May 2017 14:38:50 GMT
Via: 1.1 varnish
Connection: keep-alive
X-Served-By: cache-itm7422-ITM, cache-nrt6130-NRT
X-Cache: HIT, HIT
X-Cache-Hits: 0, 0
X-Timer: S1494427130.132633,VS0,VE6 

 

続きのセットアップをvagrant provisionで完了してめでたし、めでたし。