使用 rbenv 的用户主目录中的全局 Gemfile:好主意?
Global Gemfile in the user's home directory using rbenv: good idea?
我正在使用 rbenv 在我的项目中本地管理我的 gem,但也在全局范围内,在 Linux 盒子上。
当我升级我的全局 ruby 版本(在 ~/.rbenv/version
中设置)时,我总是忘记安装我主要用于开发的一些实用程序 gem。
例如用于 linting 的 rubocop,用于我分散在文件中的一些脚本的 minitest,等等。
使用我的包管理器并不是一个真正灵活的解决方案(不是最新的,很多 gems 没有打包等)。
无论我目前从事的是什么项目,我应该如何继续保留这些我希望始终可以全局访问的 gem 的列表?
我的主目录中应该有一个 Gemfile 和一个 Gemfile.lock 吗?那我怎么能隐藏它们 (.Gemfile/.Gemfile.lock)?
所以一旦我更改全局 ruby 版本,然后
$ gem install bundler
$ bundle
我什么都准备好了运行?
在这种情况下,我是否必须在每个命令前加上 bundle exec
?
有没有更好的方法来解决这个我不知道的问题?
我建议使用 rbenv-default-gems
。
只需将其安装到 rbenv 的插件文件夹中即可:
git clone https://github.com/rbenv/rbenv-default-gems.git $(rbenv root)/plugins/rbenv-default-gems
将名为 default-gems
的文件放入 rbenv 的根文件夹中:
touch $(rbenv root)/default-gems
按名称在 $(rbenv root)/default-gems
中添加宝石,每行一个。您可能需要在名称后选择性地指定版本字符串,或 --pre
以安装预发布版本。例如:
bundler
bcat ~>0.6
rails --pre
我正在使用 rbenv 在我的项目中本地管理我的 gem,但也在全局范围内,在 Linux 盒子上。
当我升级我的全局 ruby 版本(在 ~/.rbenv/version
中设置)时,我总是忘记安装我主要用于开发的一些实用程序 gem。
例如用于 linting 的 rubocop,用于我分散在文件中的一些脚本的 minitest,等等。
使用我的包管理器并不是一个真正灵活的解决方案(不是最新的,很多 gems 没有打包等)。
无论我目前从事的是什么项目,我应该如何继续保留这些我希望始终可以全局访问的 gem 的列表? 我的主目录中应该有一个 Gemfile 和一个 Gemfile.lock 吗?那我怎么能隐藏它们 (.Gemfile/.Gemfile.lock)?
所以一旦我更改全局 ruby 版本,然后
$ gem install bundler
$ bundle
我什么都准备好了运行?
在这种情况下,我是否必须在每个命令前加上 bundle exec
?
有没有更好的方法来解决这个我不知道的问题?
我建议使用 rbenv-default-gems
。
只需将其安装到 rbenv 的插件文件夹中即可:
git clone https://github.com/rbenv/rbenv-default-gems.git $(rbenv root)/plugins/rbenv-default-gems
将名为 default-gems
的文件放入 rbenv 的根文件夹中:
touch $(rbenv root)/default-gems
按名称在 $(rbenv root)/default-gems
中添加宝石,每行一个。您可能需要在名称后选择性地指定版本字符串,或 --pre
以安装预发布版本。例如:
bundler
bcat ~>0.6
rails --pre