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

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

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

Redmineは、プロジェクトのタスク管理、進捗管理、情報共有が可能な、 オープンソースプロジェクト管理ソフトウェアです。

Q&A

0回答

3521閲覧

Redmineをインストールしようとして、ローカルgemリポジトリからbundle installがうまくいかない

Hide-san

総合スコア10

Redmine

Redmineは、プロジェクトのタスク管理、進捗管理、情報共有が可能な、 オープンソースプロジェクト管理ソフトウェアです。

0グッド

0クリップ

投稿2016/09/07 06:58

編集2016/09/07 07:07

###前提・実現したいこと

  • インターネットから隔離された環境で、Redmineをインストールする。
  • インストールしようとしているRedmineは3.3.0
  • DBは、mysql Ver 15.1 Distrib 5.5.50-MariaDB, for Linux (x86_64) using readline 5.1
  • Redmine実践ガイド (アジャイルウェア 著)を読みながらインストール。
  • bundle installのところまでは問題なく進めていた。
  • 登場するサーバは以下のとおり(いずれもOpenstack上の仮想サーバ)
サーバ概要OS備考
ARedmineインストール用CentOS7
Bローカルリポジトリ用Ubuntuwww.yum-local.com/gemsでgemを公開
:OS: CentOS7 (Openstack仮想マシン上)
  • サーバBの${redmine_gems}/gemsに必要となるgemファイルを入れて、${redmine_gems}でgem generate_indexを実施している。

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

サーバAにおいて、bundle install --without development test --path vendor/bundle を実行すると以下のメッセージが出てとまる。
その他のgemは問題なくインストールできたようだ。

Could not find gem 'mysql2 (~> 0.3.11)' in any of the gem sources listed in your Gemfile or available on this machine.

###該当のソースコード
rubygems.orgへのリーチがないので、Gemfileの1行目をコメントアウトし、2行目にローカルリポジトリを参照するように変更している

#source 'https://rubygems.org' source 'http://www.yum-local.com/gems'

config/database.ymlでは、mysql2のアダプタで設定している。

(前略) production: adapter: mysql2 (後略)

###試したこと

  • Gemfileのmysql2を読み込むところをコメントアウトすれば、bundle installは成功する
(前略) if File.exist?(database_file) database_config = YAML::load(ERB.new(IO.read(database_file)).result) adapters = database_config.values.map {|c| c['adapter']}.compact.uniq if adapters.any? adapters.each do |adapter| case adapter when 'mysql2' # gem "mysql2", "~> 0.3.11", :platforms => [:mri, :mingw, :x64_mingw] # (↑この行をコメントアウト) gem "activerecord-jdbcmysql-adapter", :platforms => :jruby (後略)
  • gem searchでは、mysql2のgemは見えている。
$ gem search mysql2 --remote *** REMOTE GEMS *** mysql2 (0.4.4)
  • curlでgemのインデックスを取得してみる
$ curl http://www.yum-local.com/gems/specs.4.8.gz >specs.4.8.gz $ gunzip specs.4.8.gz $ less specs.4.8

→バイナリなので完全に読めるわけではないが、mysql2の行がないことがわかった。
→gem generate_index --updateを実行してみる
参考URL
→ No new gemsと表示される。

$ sudo gem generate_index --update No new gems
  • gem generate_index --updateを実行後のインデックスを確認

→上記同様にcurlでindexファイルを取得し、再度中身を確認すると、こんどは、インデックスのなかにmysql2のgemの情報が入っている。

  • 満を持して、再度bundle installを実行
$ bundle install Fetching source index from http://www.yum-local.com/gems/ Could not find gem 'mysql2 (~> 0.3.11)' in any of the gem sources listed in your Gemfile or available on this machine.

→結果はおなじ。お手上げ・・・どなたか助けてください・・・

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

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

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

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

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

suama

2016/09/17 13:16

もう解決済みか、もしくは的外れでしたら申し訳ありません。サーバA側には、MySQL関連のライブラリ(yumのパッケージ)なども入っている状態でしょうか。
Hide-san

2016/09/20 01:15

yumのパッケージでMySQLがインストールされている状態です。
Hide-san

2016/09/20 01:17

bundle installが成功しない理由はわかりませんが、Gemfileのmysqlの行をコメントアウトして、問題は回避できている状態です。 一応Redmineは動くようになりました。
suama

2016/09/20 02:07

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問