2017年01月13日

redmineの環境構築難しすぎるのなんとかならんのか問題

今回完全に愚痴です。

結論から言うとですね、redmineってどっかからzipなりtar.gzなり持ってきて展開したら即実行できるようになってないの?
っていう話なんですが、なんで今さらになってこんな愚痴言うのかって言うと
端的に言って会社のredmine環境古かったんで、DBの内容だけ引き継いで新しくしようと思ったんですが、
会社はプロキシ環境で自由に外部にアクセスできず、そんな環境で最新のredmineを入れるのがえらいこと辛かったんで
苦しんだ過程だけ吐き出してスッキリしようという、今回そういうエントリーです。あまり生産性もない。




ruby-rails相性問題

俺の長年のパートナーrubyが会社で忌み嫌われてる原因のひとつ。
railsを最新にしようと思うとrubyもバージョンアップしなくてはいけない。
定数の定義がバージョンによって置き換わるのか?古いrubyで気軽にbundle installを実行すると
意味不明のところでUninitialized Constantという全く原因の推測ができないエラー文字列が出る
これが出た場合大抵rubyとrailsのバージョンがあってないので、新しいrailsベースのアプリ入れるときは
rubyも最新にしなくてはいけない
まあ、ruby自体を新しくするのはどってことない。apt-getで手に入らなければ最新のバイナリは結構転がってる

プロキシ突破できない問題

会社でなんとかしようとする時問題になるのがこれ。
redmineはrailsがベースのソフトなんで、そこら辺にころがってるtar.gzを解凍して環境設定して実行
なんて簡単な解決法では済まない
公式サイトからバイナリを落としてきたら、そこのディレクトリに移動して
bundle install --path vendor/bundle
なんてやらないといけないんだけど、このbundleが通らない通らない
つーかそもそもbundleを実行するためにgem install bundlerを実行しなきゃいけないんだけどこれすら通らない

このgemコマンドやbundlerコマンド、https://rubygems.org/から適切なgemを取ってきてインストールしてくれる便利コマンドなんだけど
プロキシ環境下では環境変数HTTP_PROXYやHTTPS_PROXYにプロキシのアドレスを入れなきゃいかん
debian系なら
export HTTP_PROXY=http://someproxy:8080
とかだね。んで、やってみたらsomeproxyがlinuxでは名前解決できない
んまあこれはあれだ。うちの環境固有の問題だ。redmineにもrailsにも文句はいえまい。
export HTTP_PROXY=http://192.168.10.26:8080
こいつでリトライしよう。gem install bundlerは通った。よっしゃ。
この勢いでbundle installもいくやで〜ってやったら何やっても通らない。なぜだ!!

ログオンユーザーによってできるできないに違いがあるの?って思ってrootにユーザー変更して実行しようとすると
Don't run Bundler as root
なんていう脅しをかけられる。何で?って思って調べたらこんなところにヒットした


英語だからよくわかんないけど、OS Xでうっかりbundle installをrootで実行するとシステムで利用してるgemを破壊するからなのかな?
今回linuxでやってるしgemはvendor/bundleに入れるからそんなの関係ねえ!そんなの関係ねえ!
んで、rootでbundle install強行してあとでchown -R www-data:www-dataしたけど普通に入った。何だよそれ!

結局何が悪かったのか。プロキシ設定が環境変数に依存してるから、ログオンユーザーによって挙動が変わるんじゃないかって思ったんだけど
それだと何でgem install bundlerが通ったのか謎なんだよね。bundlerってgemと違うコンテキストで動くの?(未調査)

環境変数って挙動あやしいからさあ、gemみたいに --http-proxyスイッチのような代替手段がbundleにもあったらいいのに。
いやそれよりgemだのbundleだの使わなくてもredmine簡単に入れられないの?

解決策はありそう?

alminiumっていう単語が聞こえてきたけどこれ既存のDB移行して使えるのか。いつか試してみたい。


ラベル:redmine
posted by LoyalTouch at 06:56| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック