質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Q&A

解決済

2回答

3730閲覧

rbenv,ruby-buildを使ってのrubyインストールでダウンロード失敗

Ming.hentech

総合スコア10

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

0グッド

0クリップ

投稿2019/01/22 04:47

編集2019/01/23 03:57

前提

centOS7
proxyを経由してインターネットへ接続
proxy設定は.bash_profile, .curlrc .gitconfigに記載済み

rbenv, ruby-buildは次の場所にインストールし、
rbenvのpathは通っている

・rbenv: /usr/local/.rbenv
・ruby-build: /usr/local/ruby-build

rbenv install -l は正常に機能

実現したいこと

rbenvを利用してrubyをインストールしたい

発生している問題・エラーメッセージ

$ rbenv install 2.6.0

Downloading ruby-2.6.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.bz2
error: failed to download ruby-2.6.0.tar.bz2

BUILD FAILED (CentOS Linux 7 using ruby-build 20181225)

試したこと

curlのproxy設定
$ nano ~/.curlrc
proxy="xxx.xx.xxx.x:8080"

ruby-build でcurlの-qオプションを削除
$ nano /usr/local/ruby-build/bin/ruby-build
http_head_curl() {
curl -sILf ${CURL_OPTS} "$1" >&4 2>&1
}
http_get_curl() {
curl -o "${2:--}" -sSLf ${CURL_OPTS} "$1"
}

curlを直接たたく
curl -O https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.bz2

→ダウンロード成功
$ ls -la ruby-2.6.0.tar.bz
-rw-r--r-- 1 root root 14585856 1月 22 13:43 ruby-2.6.0.tar.bz2

追記
~/.bash_profile
export http_proxy=xxx.xx.xxx.x:8080
export HTTP_PROXY=xxx.xx.xxx.x:8080
export ftp_proxy=xxx.xx.xxx.x:8080
export FTP_PROXY=xxx.xx.xxx.x:8080

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ming.hentech

2019/01/22 23:54

実はその記事を参考にしていて、最終的にcurlで通ればいいのかなと解釈しました。 rbenv install で走るのはcurlかwgetになっているようで、当方の環境ではwgetが入っていないため、実際にcurlが動いています。 記事の方はcurlで解決されたようですが、wgetを使うというのは検討したいと思います。 ありがとうございます。
otn

2019/01/23 00:32

> proxy設定は.bash_profile, の内容が書かれていません。
wwbQzhMkhhgEmhU

2019/01/23 02:08

シェルまで特定しているのであれば、内容を書いて頂きたく。。。一応↓を想定します。 https://github.com/rbenv/ruby-build/blob/master/bin/ruby-build aria2cも自動検出するみたいですね。シェルをデバッグモードで実行するなり、環境変数のRUBY_BUILD_HTTP_CLIENTを設定するなり工夫すると追い詰められるかと思います。
Ming.hentech

2019/01/23 04:02

何分、ネットワークがらみのことはずぶの素人なもので勘所がわからずご容赦ください。 今回は回避法がありましたので、そちらで本件をクローズにさせていただきます。 ただ、全く正攻法とは言い難いので後学のためにいただいた情報から検証してみたいと思います。 ※.bash_profileの内容を追記しました。
guest

回答2

0

~/.bash_profile

export https_proxy=xxx.xx.xxx.x:8080

を追加してみて下さい。

投稿2019/01/23 04:48

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

根本的な解決方法ではありませんが
https://dev.classmethod.jp/tool/rbenv-too-slow/
こちらを参考にしてダウンロードのみ手動で行いました。

$ mkdir ~/.rbenv/cache
$ curl -O {rubyのダウンロード先}
$ cp {ダウンロードファイル} ~/.rbenv/cache/{ダウンロードファイル}
$ rbenv install {バージョン}

投稿2019/01/23 04:06

Ming.hentech

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問