26

为什么zsh: command not found: bundle之后gem install bundler

我尝试设置path=( /usr/local/lib/ruby/gems/2.2/gems/ ~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin )/etc/zshrc无济于事source /etc/zshrc

root@dev:/home/dev# gem install bundler
Successfully installed bundler-1.7.12
Parsing documentation for bundler-1.7.12
Done installing documentation for bundler after 10 seconds
1 gem installed

root@dev:/home/dev# bundle
zsh: command not found: bundle

root@dev:/home/dev# uname -a
OpenBSD dev.my.domain 5.7 GENERIC#748 amd64

root@dev:/home/dev# gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.5
  - RUBY VERSION: 2.2.0 (2014-12-25 patchlevel 0) [x86_64-openbsd]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.2
  - RUBY EXECUTABLE: /usr/local/bin/ruby22
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - SPEC CACHE DIRECTORY: /root/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-openbsd
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/2.2
     - /usr/local/lib/ruby/gems/2.2/gems/
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/lib/ruby/gems/2.2/gems/
     - /root/bin
     - /bin
     - /sbin
     - /usr/bin
     - /usr/sbin
     - /usr/local/bin
     - /usr/local/sbin
4

5 回答 5

34

我在使用 zsh 时遇到了同样的问题,这解决了它:

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshenv
$ echo 'eval "$(rbenv init -)"' >> ~/.zshenv
$ echo 'source $HOME/.zshenv' >> ~/.zshrc
$ exec $SHELL
于 2015-12-18T19:18:46.887 回答
26

您似乎是在bundler系统范围内安装之后。为此,您需要将--no-user-install标志传递给gem并执行它sudo

sudo gem install bundler --no-user-install

bundle在此之后,您应该可以看到/usr/bin/

$ ls /usr/bin/bundle
/usr/bin/bundle*
于 2015-06-28T09:13:14.207 回答
11

您可以检查 Rubygems 将在其中安装 gem 可执行文件的目录gem environment

第一点之一应该是EXECUTABLE DIRECTORY。确保此目录在您的$PATH(列为SHELL PATHbtw)

于 2015-01-21T16:38:30.913 回答
7

您应该在安装后运行以下命令bundler

rbenv rehash
于 2016-03-26T14:24:01.707 回答
2

在设置 jekyll 时也遇到了同样的错误。我的gem env节目GEM PATHS如下:

- GEM PATHS:
    - /usr/local/lib/ruby/gems/2.5.0

该目录的内容如下所示:

bin/            cache/          extensions/     specifications/
build_info/     doc/            gems/

在里面bin,我看到了jekyllbundle

$cd /usr/local/lib/ruby/gems/2.5.0/bin/
$ls
bundle        jekyll        listen        safe_yaml     sass-convert
bundler       kramdown      rougify       sass          scss

如果您发现与我相似的路径和文件,则以下任何一种方法都应该有效:

  • 将完整路径附加/usr/local/lib/ruby/gems/2.5.0/bin/PATHvia:

    export PATH="/usr/local/lib/ruby/gems/2.5.0/bin/:$PATH"
    
  • 通过以下方式建立符号链接/usr/local/bin

    $cd /usr/local/bin
    $ln -sf /usr/local/lib/ruby/gems/2.5.0/bin/bundle .
    $ln -sf /usr/local/lib/ruby/gems/2.5.0/bin/jekyll .
    
  • .zshrc在(或.bashrc类似)中设置别名:

    alias jekyll="/usr/local/lib/ruby/gems/2.5.0/bin/jekyll"
    alias bundle="/usr/local/lib/ruby/gems/2.5.0/bin/bundle"
    

总的来说,我觉得所有这些路径盲使设置 jekyll 站点的体验比预期的更加颠簸:(如果其他人有一组可以正常工作的步骤(不需要这样的故障排除),请发表评论:)

于 2018-12-24T00:14:02.760 回答