我有一个临时服务器。而且我有一些问题我想在那里调查一下。但我忘了将byebug
添加到Gemfile
。我当然可以在本地添加它,运行bundle
,提交到存储库,部署。但是不是有更简单的方法吗?
当我尝试远程更改Gemfile
并运行bundle
时,我得到:
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.
If this is a development machine, remove the /home/gccs/website-backend/releases/20161018143057/Gemfile freeze
by running `bundle install --no-deployment`.
You have added to the Gemfile:
* byebug
宝石与capistrano
一起安装,基本上是这样的:
bundle install --path /home/user/app/shared/bundle --without development test --deployment --quiet
答案 0 :(得分:1)
修改.bundle/config
将BUNDLE_FROZEN: '1'
更改为'0'
(或删除它)就足以让Bundler在部署环境中管理宝石。然后,您可以修改Gemfile
,运行bundle
,重新启动您的应用,并准备好使用自定义宝石。
如果您打算在应用程序运行时之外使用它们(例如,如果pry
中需要rails console
),则不需要重新启动服务器。
答案 1 :(得分:1)
您无法安装其他宝石的原因是捆绑包被冻结。您可以这样检查:
$ grep FROZEN .bundle/config
BUNDLE_FROZEN: '1'
如果您删除该行(按照mdesantis的建议)或更改" 1"到" 0",你可以安装你喜欢的任何宝石,就好像它是开发者机器一样。但是,如果不再需要,通常最好恢复该值。不确定bundler
是否会在下次部署时自动执行此操作。