ラベル gem の投稿を表示しています。 すべての投稿を表示
ラベル gem の投稿を表示しています。 すべての投稿を表示

2011年6月16日木曜日

gemやmavenで気をつけるべき事

gem(ruby)や、maven(java)を利用し始めると、

「何て便利なんだ!」

と感じると思います。実際非常に便利です。

しかし何年にも渡って運用するようなシステムの場合、「ハード故障に伴うリプレース」や「インフラ移行」が発生する場合があります。
その際に絶対忘れてはいけないのは、

「ライブラリ提供側が、いつまでも場所を提供してくれると考えてはいけない」

という事です。

実際gemで起こった事があるのは、

・githubが提供場所では無くなった(gemcutterへ移行?)
・gems.rubyonrails.orgが提供場所では無くなった(gemcutterへ移行?)
・sqlserverのアダプターの特定のバージョン(1.0.0.9250)が取得できなくなった。
  現在は http://rubygems.org/gems/activerecord-sqlserver-adapter/ ですが欲しいバージョンがありません。

と、かなり慌ててしまう状況です。

# さらに性質が悪いのがmaven。
# 私が出くわしたのは「リポジトリはあるがライブラリの該当バージョンが提供されなく無くなった」状況。
# なんと「*.jarの中身をテキストエディタで見ると、503のHTML」。
# しかもエラーを出力しないという難しい状況になります(どのファイルが無くなったのか分からない)

よってgemの場合cacheディレクトリ以下のgemファイルはちゃんととっておきましょう!」というのが教訓になります。もちろんアプリ側ではversionを絶対指定しておく」というのも大事ですね。

もちろんrailsの場合、vendor配下にコミットしたら良いのでは?という意見もあるかもしれませんが、度々デプロイする場合、純粋にサイズが大きすぎて遅い場合があります。
コンテキストに合わせて最良の方法を考えましょう。

2011年3月23日水曜日

rails関係でよく忘れるコマンドメモ

関連するコマンドのオプションを良く忘れるので備忘の為メモしておきます。たまに追加しよう。。

■rvm
・rvm自体を最新化する

$ rvm get head
$ rvm reload

・rvmにインストール済みの環境リストを参照する

$ rvm list

・rvmが用意してくれている環境リストを参照する

$ rvm list known

・rvmのdefault環境を覚えさせる

$ rvm --default use xxx ← 次回からは自動的に左記環境になる

■rubygems
・rubygems自体を最新化する

$ gem update --system

・riとかrdocは不要なので速くインストールしたい

$ gem install xxx --no-ri --no-rdoc

これは~/.gemrcに
gem: --no-ri --no-rdoc
って書いておく方が確実かも。