我如何确保ruby gems安装在bundler执行的正确位置?
我似乎总是在将gems放在正确的位置时遇到问题(并且在安装它们时不需要使用我如何确保ruby gems安装在bundler执行的正确位置?,ruby,bundler,rbenv,Ruby,Bundler,Rbenv,我似乎总是在将gems放在正确的位置时遇到问题(并且在安装它们时不需要使用sudo) 为了解决sudo问题,我安装了rbenv,然后用它安装ruby 2.1.0,这样我就有了一个独立于Mac OSX系统的版本 然后我安装了bundler。但是当我使用bundler从Gemfile安装gems时,我找不到它们 在我所采取的所有步骤中,例如向我的.bash_配置文件添加行等,我有以下几点,但我真正想要的是一种清晰、直接的方式来管理gem及其本地执行: gem env: 编辑:我删除了所有内容并重置了
sudo
)
为了解决sudo
问题,我安装了rbenv
,然后用它安装ruby 2.1.0,这样我就有了一个独立于Mac OSX系统的版本
然后我安装了bundler。但是当我使用bundler从Gemfile安装gems时,我找不到它们
在我所采取的所有步骤中,例如向我的.bash_配置文件添加行等,我有以下几点,但我真正想要的是一种清晰、直接的方式来管理gem及其本地执行:
gem env
:
编辑:我删除了所有内容并重置了路径——仍然没有修复任何内容,但是您可以看到gems安装在一个目录中,但是当我调用可执行文件时,找不到命令:
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.14
- RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-13
- GEM PATHS:
- /Library/Ruby/Gems/2.0.0
- /Users/fongster/.gem/ruby/2.0.0
- /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
下面是当我想运行时发生的情况,比如说shotgun
:
bash-3.2$shotgun
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/rubygems/dependency.rb:296:in
to_specs':在总共12个gem(gem::LoadError)中找不到“散弹枪”(>=0)
有人能告诉我OSX上ruby gem管理的简单、直接的directdions,以便:
- 我不需要使用
来安装gemssudo
- 我可以使用bundler从给定项目的Gemfile安装
- 这些gem及其可执行文件(shotgun、restclient、sass)可以直接执行
- 我的本地环境基于这个在heroku建立的“正义工程”
- 当我需要做一些事情时,我不需要键入
bundle exec
execbash
使shell正常工作)
编辑:按照以下步骤进行操作,并在绑定时获得此响应:
Errno::EEXIST: File exists @ dir_s_mkdir - /Users/fongster/.rbenv/shims/gem
An error occurred while installing backports (3.6.3), and Bundler cannot
continue.
Make sure that `gem install backports -v '3.6.3'` succeeds before bundling.
使用。它工作得很好,满足您的所有要求。我已经使用它两年了,没有任何问题。Heroku没有问题
以下是我设置新Ruby项目的过程:
1. Create directory (or Rails app in new directory)
2. cd directory
3. Set ruby version: Use 2.1.0 or another version
rbenv local 2.1.0
4. Set gemset: replace app-name with the name of the app
echo app-name > .rbenv-gemsets
5. Check gemset. Should be app-name global:
rbenv gemset active
6. rbenv rehash
7. Create Gemfile
8. gem install bundler
9. bundle
当它不能按预期工作时,请执行rbenv-rehash
您不需要使用sudo
安装gems
关于你的外壳,这可能会引起问题。如果常规终端不工作,那么可能还有另一个问题
因为这个问题似乎与您的shell和路径有关,所以下面是我的.bash_配置文件
export PATH="$HOME/.rbenv/bin:$PATH"
export PATH=/usr/local/bin:$PATH
eval "$(rbenv init -)"
您可能希望尝试用上述内容替换.bash_配置文件,或者创建一个新用户,看看问题是否消失。从头开始
除了简单的步骤外,您无需执行任何操作:
- 不要使用sudo bundle…
- 不要改变你的道路
- 不要触摸任何
~/.文件
- 在第一个应用程序文件的顶部复制
需要“bundler/setup”
- 请在所有Bundler管理的“二进制文件”前面使用bundle exec
bundle exec
(您应该使用别名bex='bundle exec'
)然后,您可以键入bundle install--binstubs
,然后安装一个RubyMonger(RBEnv,RVM)
根据你的具体情况
我会从头开始:
- 卸载RBEnv(
并删除rm-rf~/.RBEnv
)中提到的RBEnv)grep RBEnv~/.bashrc~/.bash_profile~/.zshrc/etc/profile/etc/profile.d/*
- 卸载捆绑程序
rbenv
执行以下操作:==>使用自制目录而不是~/.rbenv添加到您的配置文件:导出rbenv_ROOT=/usr/local/var/rbenv以启用垫片和自动完成添加到您的配置文件:如果是哪个rbenv>/dev/null;然后求值“$(rbenv init-”;fiHi,我仍然得到不同的安装和执行路径:我通过键入gem env:bash-3.2$restclient/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/rubygems/dependency.rb:296:in‘to_specs’:在总共12个gem(gem::LoadError)中找不到‘rest client’(>=0),我会清理我的路径。请参阅我的最新答案。我认为您不需要导出RBENV\u ROOT=/usr/local/var/RBENV
或如果哪个RBENV>/dev/null;然后求值“$(rbenv init-”;fi
要“重置”路径,请在中删除与路径相关的任何内容。主目录中的文件。然后关闭终端并打开新终端。您可能需要此工具:export PATH=/usr/local/bin:$PATH
。与任何工具一样,在需要使用RBEnv之前,不要安装它!Bundler会在您超越Stdlib后立即发挥作用。谢谢……因为这让我可以使用更少的工具进行操作,所以我现在采用您的方法,并选择它作为正确的答案,谢谢。我收到一个错误:error:在执行gem时。。。(Gem::FilePermissionError)您没有/Library/Ruby/Gems/2.0.0目录的写入权限。
关于写入Gems的某些内容似乎总是希望写入我的库目录,但我不想在那里写入,因为我需要sudo。@Angela我们不能在这里讨论这个新问题。创建一个新问题来展示您的问题。