Contents
    1. 結論
    2. 追記

proxy越しのrvmのインストールが失敗する

  • rvmのインストールをウェブ上で解説しているページを見ると、だいたい
$ curl -L get.rvm.io | bash -s stable --auto
Error installing rvm (Ruby version Manager)
http://stackoverflow.com/questions/15701058/error-installing-rvm-ruby-version-manager

みたいな感じになっている。

  • proxy越しにやろうとすると、curlのproxy使うオプションを付け加えて、curl -x proxy.example.co.jp:8080 -L get.rvm.io みたいにするわけだが……それでも
######################################################################## 100.0%
Downloading RVM from wayneeseguin branch master
curl: (7) couldn't connect to host

Could not download 'https://github.com/wayneeseguin/rvm/archive/master.tar.gz'.
  curl returned status '7'.
  • と言われて失敗してしまう
  • これは要するに、インストールスクリプトを標準出力に吐き出して、それをbashで実行させようというもの。
    • このスクリプトの中で実行している curl で、proxy使うオプションがないので、ダウンロードに失敗する

結論

  • wget などを使って、このスクリプトをいったんファイルとして保存する
    • wgetの場合、rvm-installer という名前で保存されるであろう
    • その後エディタで curl コマンドを -x を付けたものに書き換え、あらためてそのスクリプトに実行属性を chmod +x で付与してから実行する
--- rvm-installer~      2013-07-04 16:17:58.321767306 +0900
+++ rvm-installer       2013-07-04 16:21:00.779581472 +0900
@@ -144,7 +144,7 @@
 # fetch_version "" -> 2.0.1
 fetch_version()
 {
-  __rvm_curl -s https://api.github.com/repos/wayneeseguin/rvm/tags |
+  __rvm_curl -x proxy.example.co.jp:8080 -s https://api.github.com/repos/wayneeseguin/rvm/tags |
     sed -n '/"name": / {s/^.*".*": "\(.*\)".*$/\1/; p;}' |
     sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n |
     GREP_OPTIONS="" \grep "^${1:-}" | tail -n 1
@@ -206,7 +206,7 @@
   _url=$1
   _file=$2
 
-  __rvm_curl ${_url} -o ${rvm_archives_path}/${_file} ||
+  __rvm_curl ${_url} -o ${rvm_archives_path}/${_file} -x proxy.example.co.jp:8080 ||
   {
     _return=$?
     case $_return in

追記

  • curlをproxy下で使うなら、.curlrc に設定しとかんかいボケっていう話がありました。
RVMを使ってProxy越しでrubyをインストールする
http://d.hatena.ne.jp/yotena/20120106
Last modified: 2013-07-04 Attached files total: 6MB