Что именно делает Bundler из Rails 3 "bundle install --deployment"? - PullRequest
13 голосов
/ 10 сентября 2010

Вещи, описанные в формальной документации, немного сложны.

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

BUNDLE_PATH: vendor/bundle

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

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

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

BUNDLE_FROZEN: "1"
BUNDLE_PATH: vendor/bundle

1 Ответ

9 голосов
/ 12 сентября 2010

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

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

...