1. ホーム
  2. スクリプト・コラム
  3. ルビートピックス

Rubyのgemパッケージマネージャの使い方とbundlerによる複数バージョンのgemの管理

2022-01-31 02:59:52

gemの共通コマンド

gem -v # View the version of RubyGems software
gem help #Show RubyGem usage help
gem help example # List some examples of RubyGem commands
gem install [gemname] # Install the specified gem package, the program will first find the gem package from the local machine and install it, or install it from the remote gem if it is not available locally.
gem install -l [gemname] # install gem package from local machine only
gem install -r [gemname] # install gem package from remote only
gem install [gemname] --version=[ver] # Install the specified version of the gem package
gem uninstall [gemname] # Remove the specified gem package, note that this command will remove all installed versions
gem uninstall [gemname] --version=[ver] # Remove a specified version of gem
gem update --system # Update the RubyGems software itself
gem update [gemname] # update all|specified installed gem packages
gem list # View all installed gem packages on the local machine # Show RubyGem help



タオバオのミラーを交換
国内ネットワークの都合(ご存知ですよね)により、Amazon S3に保存されているrubygems.orgのリソースファイルへの接続に断続的に失敗することがあるようです。ここでは、デフォルトのミラーをタオバオのものに置き換える必要があります。
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org
# Make sure only ruby.taobao.org



bundlerで複数バージョンのGemを管理する
rbenvは複数バージョンのruby環境を管理するために、我々はまた、複数バージョンのgem(例えばrailsなど)を管理できるツールが必要で、それはバンドルされている、プロジェクトの背景が詳細になることはありません、公式サイトに直接理解する必要があり、ここでは唯一のいくつかの実際の使用経験について話をする。
インストール方法

gem install bundler


使用すること。

mkdir app1; cd app1;
echo "source 'https://ruby.taobao.org/'" > Gemfile
echo "gem 'rails,'4.1.0'" >> Gemfile
bundle install


上記のコードでrails 4.1.0がapp1にインストールされ、bundle exec rails -vで現在のディレクトリで使われているrailsのバージョンを確認すると、内容はRails 4.1.0であるはずです。またこの時bundle exec rails new . -forceで元のGemfileを上書きし、アプリは現在railsバージョン4.1.0を使っている状態です。

mkdir app2; cd app2;
echo "source 'https://ruby.taobao.org/'" > Gemfile
echo "gem 'rails,'3.2.13'" >> Gemfile
bundle install


上記のコードでは、2つ目のapp2フォルダを作成し、bundler経由でrails 3.2.13をインストールします。 同じくbundle exec rails new . --force でrails 3.2.13 ベースのアプリを生成します。
上記2つのバージョンをインストールした後、gem list --local を介して rails (4.1.0, 3.2.13) を表示すると、bundler はインテリジェントに各プロジェクトの rails バージョンを決定してアプリケーションの正しい動作を保証しますが、元のコマンドが bundle exec コマンドを使用して実行された場合のみです。 例えば、次のようになります。

bundle exec rails s
bundle exec rake db:create
...