Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails bundler安装时出现问题,说它安装了,但后来没有';我不能实际安装_Ruby On Rails_Ruby_Bundler_Rbenv - Fatal编程技术网

Ruby on rails bundler安装时出现问题,说它安装了,但后来没有';我不能实际安装

Ruby on rails bundler安装时出现问题,说它安装了,但后来没有';我不能实际安装,ruby-on-rails,ruby,bundler,rbenv,Ruby On Rails,Ruby,Bundler,Rbenv,我正在建立一个新的系统。我使用rbenv而不是rvm,因为rvm改变了“cd”的定义,这是邪恶的 我已经安装了所需版本的ruby和rails(我想),但bundler造成了一些问题: turlingdrome$ gem install bundler ERROR: While executing gem ... (Errno::EACCES) Permission denied @ rb_sysopen - /Users/brianp/.rbenv/versions/2.5.3/lib

我正在建立一个新的系统。我使用rbenv而不是rvm,因为rvm改变了“cd”的定义,这是邪恶的

我已经安装了所需版本的ruby和rails(我想),但bundler造成了一些问题:

turlingdrome$ gem install bundler
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ rb_sysopen - /Users/brianp/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/CHANGELOG.md

turlingdrome$ sudo gem install bundler
/usr/local/Cellar/rbenv/1.1.2/rbenv.d/exec/gem-rehash/rubygems_plugin.rb:6: warning: Insecure world writable dir /Users/brianp/work in PATH, mode 040777
Successfully installed bundler-2.0.1
Parsing documentation for bundler-2.0.1
Done installing documentation for bundler after 3 seconds
1 gem installed

turlingdrome$ sudo gem uninstall bundler
Gem 'bundler' is not installed

turlingdrome$ bundler install
Traceback (most recent call last):
    2: from /Users/brianp/.rbenv/versions/2.5.3/bin/bundler:23:in `<main>'
    1: from /Users/brianp/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)
turlingdrome$gem安装捆绑程序
错误:执行gem时。。。(错误号::EACCES)
权限被拒绝@rb_sysopen-/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/CHANGELOG.md
turlingdrome$sudo gem安装捆绑程序
/usr/local/ceral/rbenv/1.1.2/rbenv.d/exec/gem rehash/rubygems_plugin.rb:6:警告:不安全的世界可写目录/Users/brianp/work in PATH,模式040777
已成功安装bundler-2.0.1
bundler-2.0.1的解析文档
在3秒钟后完成bundler文档的安装
已安装1个gem
turlingdrome$sudo gem卸载捆绑程序
未安装Gem“bundler”
turlingdrome$bundler安装
回溯(最近一次呼叫最后一次):
2:from/Users/brianp/.rbenv/versions/2.5.3/bin/bundler:23:in`'
1:from/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:308:in'activate_bin_path'
/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:289:在'find_spec_for_exe'中:找不到带有可执行捆绑程序(gem::GemNotFoundException)的gem捆绑程序(>=0.a)
所以,我试过使用sudo一次,现在我认为权限是超级用户。。。所以我用的是sudo。没什么大不了的

安装似乎可行

当我试图卸载时,它说它没有安装

当我试着运行它时,它发现了一个可执行文件,但随后说它找不到可执行文件

我正在使用ruby 2.5.3和rails(我想)5.2.3

Rails因以下原因崩溃:

turlingdrome$ rails -v
/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.2.3/lib/rails/app_loader.rb:53: warning: Insecure world writable dir /Users/brianp/work in PATH, mode 040777
Traceback (most recent call last):
    4: from bin/rails:3:in `<main>'
    3: from bin/rails:3:in `require_relative'
    2: from /Users/brianp/work/online-reporting/config/boot.rb:6:in `<top (required)>'
    1: from /Users/brianp/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- bundler/setup (LoadError)
turlingdrome$rails-v
/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.2.3/lib/rails/app_loader.rb:53:警告:不安全的世界可写目录/Users/brianp/work-in-PATH,模式040777
回溯(最近一次呼叫最后一次):
4:从箱子/轨道:3:在`'
3:从箱子/轨道:3:在'require_relative'中
2:from/Users/brianp/work/online reporting/config/boot.rb:6:in`'
1:from/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems/core\u ext/kernel\u require.rb:59:in'require'
/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems/core\u ext/kernel\u require.rb:59:“require”中:无法加载这样的文件--bundler/setup(LoadError)
我认为这是同一个问题


在mac上使用
rbenv
是在mac上管理
ruby
安装的一个不错的选择,但是看起来你最终陷入了一个混乱的
rbenv/gem/rails/bundler
安装和权限。它不值得修复,因此我建议只需去掉
rbenv
,删除
~/.rbenv
目录,然后再次使用安装
rbenv

其他检查方法:

  • 运行rbenv医生

    curl-fsSLhttps://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor |bash

  • 删除
    ~/.rbenv
    目录,再次运行
    rbenv init
    并安装所需版本的Ruby

  • 检查
    哪个ruby
    哪个gem
    指向
    ~/.rbenv
    目录中的适当位置

  • 注意事项:

  • rbenv
    brew
    ,以及
    gem
    不需要
    sudo
    ,因此您不应该将其与它们一起使用
  • 不要忘记在shell初始化脚本中添加
    eval“$(rbenv init-”
    ,例如
    echo'eval“$(rbenv init-””>~/.bash\u profile
  • 你能试试吗

    gem install bundler --user-install
    

    似乎是文件夹的权限问题

    权限被拒绝@rb_sysopen-
    /Users/brianp/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/CHANGELOG.md

    我会尝试使用
    chmod 755/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/

    有几个帖子处理类似的主题,例如

    警告:不安全的世界可写目录/Users/brianp/work-in-PATH,模式040777

    看起来访问权限有问题。试试这个:

    sudo chmod 755 /Users/brianp/work
    
    :

    通过一个名为rehashing的过程,rbenv在该目录中维护垫片,以匹配Ruby irb、gem、rake、rails、Ruby等的每个安装版本中的每个Ruby命令

    垫片是轻量级可执行文件,只需将命令传递给rbenv即可。因此,安装了rbenv后,当您运行(比如说)rake时,您的操作系统将执行以下操作:

    • 路径中搜索名为rake的可执行文件
    • 在路径的开头找到名为rake的rbenv垫片
    • 运行名为
      rake
      的垫片,该垫片依次将命令传递给rbenv
    你把
    rbenv
    安装搞砸了

    (一)

    (二)

    3) 从
    ~/.bash\u配置文件
    ~/.bashrc

    删除任何指向
    ruby
    irb
    gem
    $PATH
    引用,或任何包含这些bin可执行文件的文件夹。考虑从您的代码> BasHyPrime< /代码>

    注释任何<代码> $PATH < /Cord>语句。
    # export PATH="$HOME/etc/bin:$PATH"
    # leave the statement below 
    # export PATH="$HOME/.rbenv/bin:$PATH
    
    $PATH
    变量包括文件夹列表:

    echo $PATH
    home/fabrizio/.rbenv/shims:/opt/android-studio/bin:~/.scripts/bin
    
    如果在终端中运行
    gem

    包含在
    home/fabrizio/.rbenv/shimmes
    /opt/android studio/bin
    中的任何
    .bin
    可执行文件都可以从终端中的任何位置执行。当您运行
    gem
    时,将执行,而不是从rbenv截取,因为您在rbenv外部安装了ruby

    根据您的反馈进行更新

    因此,请从您的
    ~/.bash_配置文件
    ~/.bashrc
    中删除以下内容
    echo $PATH
    home/fabrizio/.rbenv/shims:/opt/android-studio/bin:~/.scripts/bin
    
    PATH="$PATH:$(ruby -e 'puts Gem.user_dir')/bin"
    
    $ gem env home
    # => ~/.rbenv/versions/<ruby-version>/lib/ruby/gems/...
    
      can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)