【问题标题】:problem with bundle捆绑包的问题
【发布时间】:2010-10-18 10:04:11
【问题描述】:

我尝试命令bundle install --local 但它显示问题:

-bash: /usr/local/bin/bundle: /usr/local/bin/ruby: bad interpreter: No such file or directory. 

请帮助我。

【问题讨论】:

  • 请尝试:which rubywhich bundle 并分享输出
  • 哪个红宝石:/usr/bin/ruby。哪个包:/usr/local/bin/bundle
  • 你在 /usr/local/bin/ruby 上有一个红宝石?你用 rvm 吗?

标签: ruby-on-rails ruby installation bundle


【解决方案1】:

对我有用的解决方案完全不同,也许是因为我在使用 RVM 方面一直不一致。

我使用“哪个捆绑器”来找出捆绑器的启动位置,它来自 /usr/bin/bundler。注意到 /usr/bin/bundler 以我的系统上不再存在的 ruby​​ 的位置和版本开始,我这样做了

gem uninstall bundler
gem install bundler

再次检查“哪个捆绑器”确认捆绑器现在安装在 .rvm 环境中,而不是 /usr/bin/bundler,并且现在引用了正确的 ruby​​ 版本;所以 bundle install 现在适用于我的 rails 项目。

【讨论】:

    【解决方案2】:

    我认为您需要在 .bashrc (linux) 中导出 ruby​​ 和 bundle 的路径。

    打开你的.bashrc 并添加这一行:

    export PATH="$PATH:/usr/bin:/usr/local/bin/"
    

    它应该可以工作。

    【讨论】:

    • 是的。我喜欢它:ln -s /usr/bin/ruby /usr/local/bin/ruby。感谢您的建议
    • 在 /usr/bin 之前我更喜欢 /usr/local/bin。这样,您的个人垃圾箱优先于系统垃圾箱运行。
    【解决方案3】:

    bundle 可执行文件由 bundler gem 提供。如果您使用的是rvm,那么在/usr/local/bin/bundle 中看到which bundle 表示有问题,因为使用rvm 意味着像bundler 这样的gem 安装在您的主目录下,通常在~/.rvm/gems/...

    # Symptoms of a broken bundler installation:-
    
    # Cannot start Rails...
    $ bin/rails s
    /Users/rogermarlow/project/config/boot.rb:9:in 'rescue in <top (required)>': uninitialized constant Bundler (NameError)
    
    # bundle not working...
    $ bundle install
    zsh: /usr/local/bin/bundle: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory
    #    ^----- that path does not look right, rvm does not put gems there
    $ which bundle
    /usr/local/bin/bundle
    # ^--- I want bundle from something under ~/.rvm/gems
    
    # First check rvm is in effect:
    $ rvm reload
    RVM reloaded!
    $ which ruby
    /Users/rogermarlow/.rvm/rubies/ruby-2.3.4/bin/ruby
    # ^--looks good, it is an rvm path, not /usr/local/bin/...
    
    # Now fix bundler
    $ gem uninstall bundler    # just in case
    $ gem install bundler
    Fetching: bundler-1.16.1.gem (100%)
    Successfully installed bundler-1.16.1
    1 gem installed
    $ which bundle
    /Users/rogermarlow/.rvm/gems/ruby-2.3.4@project/bin/bundle
    $ ^--- that is better, bundle is on a path controlled by rvm
    
    # bundle now working
    $ bundle install
    Fetching gem metadata from http://rubygems.org/..........
    *snip*
    
    # rails now working
    $ bin/rails s
    => Booting Thin
    => Rails 4.2.7.1 application starting in development on http://localhost:3000
    *snip*
    

    【讨论】:

    • 谢谢罗杰。按照您的步骤为我解决了类似的问题
    【解决方案4】:

    在我这边,我使用的是 rbenv。
    当我检查 /usr/local/bin/bundle 时,它​​显示它使用的是较旧的 ruby​​,从而导致了问题。

    #!/usr/bin/ruby1.9.1
    

    通过将其更改为指向正确的 ruby​​ 来解决问题

    #!/home/user/.rbenv/shims/ruby
    

    【讨论】:

      【解决方案5】:

      对于我缺少新创建的 gem-set gem bundler,

      在捆绑器安装路径之前,/usr/local/bin/bundler

      已安装捆绑器以解决问题。

      gem install bundler --no-ri --no-rdoc
      

      Bundler 路径更改为 /home/root/.rvm/gems/ruby-2.2.1@drag-drop-list/bin/bundler

      【讨论】:

        【解决方案6】:

        遇到同样的问题, 我在/var/lib/gems/2.3.0/gems/bundler-1.16.1;找到了捆绑器安装
        然后我通过创建这样的符号链接来修复错误:

        ln -s /var/lib/gems/2.3.0/gems/bundler-1.16.1/ /usr/lib/ruby/gems/2.3.0/gems/bundler-1.16.1

        我这样做是因为我需要这个版本的 ruby​​。

        【讨论】:

          猜你喜欢
          • 2019-06-27
          • 1970-01-01
          • 2016-06-16
          • 2017-09-10
          • 1970-01-01
          • 2023-03-31
          • 2017-08-04
          • 1970-01-01
          • 2015-09-21
          相关资源
          最近更新 更多