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年6月16日木曜日
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
って書いておく方が確実かも。
■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
って書いておく方が確実かも。
登録:
投稿 (Atom)