Что именно делает Rails 3 Bundler "install install --deployment"?

То, что описано в официальной документации, немного сложно.

Он просто добавляет следующую строку в .bundle/config

BUNDLE_PATH: vendor/bundle

а затем выполните bundle install, и что он? (установка затем установит все драгоценные камни в vendor/bundle)

Затем, когда приложение запускается, оно будет искать драгоценные камни в этом пути, указанном в .bundle/config, и что это?

Update:, если я использую Mercurial (аналогично Git) для отслеживания файлов в проекте, то после выполнения bundle install --deployment единственными изменениями являются множество файлов, добавленных к поставщику/пакету, и 2 строки добавлен в .bundle/config:

BUNDLE_FROZEN: "1"
BUNDLE_PATH: vendor/bundle

Ответы

Ответ 1

bundle install --deployment действительно устанавливает камни локально в каталог vendor/bundle в приложении. Это отражается в изменении конфигурации в настройке пути, о которой вы упомянули (BUNDLE_PATH: поставщик/комплект). Этот подход известен как "замораживание" или "продажа" драгоценных камней, и это заставляет приложение использовать локально установленные драгоценные камни, а не глобальные системные драгоценные камни, что удобно для развертывания по умолчанию. Как упоминалось в документации поставщика:

"В развертывании выделение является более важным дефолтом. Кроме того,  пользователь, устанавливающий приложение, может не иметь разрешения на установку  драгоценные камни в систему, или веб-сервер может не иметь разрешения на  прочитайте их."