Команда RubyGems gem
на самом деле является гораздо более старым менеджером пакетов, который предшествовал пакету.
Запуск gem install foo
просто устанавливает гем в ваш локальный репозиторий (где-то в папке).Он не добавляет драгоценный камень в ваш Gemfile и не выполняет разрешение дерева зависимостей, которое делает Bundler, чтобы убедиться, что ваши драгоценные камни действительно совместимы.
Bundler построен поверх gem
.Чтобы установить gems с помощью bundler (это то, что вы всегда хотите делать), вы добавляете gem в ваш Gemfile и запускаете bundle install
.
gem 'awesome_print', '~> 1.8'
В Bundler также есть команда bundle add
, которая добавит гем в Gemfile и установит ваш пакет, например:
bundle add awesome_print --version "~> 1.8"