gpt4 book ai didi

ruby-on-rails - "rails"尽管安装了 Rails 但仍未找到命令

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:22 26 4
gpt4 key购买 nike

我从源代码编译并安装了 Ruby 2.2 到/usr/local/bin/ruby 和/usr/local/bin/gem。 (由于项目限制我不能使用RVM,这是一个很长的故事。)

我在/usr/bin 中创建了指向这两个的符号链接(symbolic link)。

我以 root 身份运行:

gem install rails

得到:

Successfully installed rails-4.2.1
Parsing documentation for rails-4.2.1
Done installing documentation for rails after 0 seconds
1 gem installed

但是,当我尝试运行 Rails 时,我得到:

bash: rails: command not found

which rails 还返回:

/usr/bin/which: no rails in (/sbin/:/bin:/usr/sbin:/usr/bin:/usr/local/bin)

我的 gem list 是:

*** LOCAL GEMS ***

actionmailer (4.2.1)
actionpack (4.2.1)
actionview (4.2.1)
activejob (4.2.1)
activemodel (4.2.1)
activerecord (4.2.1)
activesupport (4.2.1)
arel (6.0.0)
bigdecimal (1.2.6)
builder (3.2.2)
bundler (1.9.4)
erubis (2.7.0)
globalid (0.3.5)
i18n (0.7.0)
io-console (0.4.3)
json (1.8.1)
loofah (2.0.1)
mail (2.6.3)
mime-types (2.5)
mini_portile (0.6.2)
minitest (5.4.3)
nokogiri (1.6.6.2)
power_assert (0.2.2)
psych (2.0.8)
rack (1.6.0)
rack-test (0.6.3)
rails (4.2.1)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (1.0.6)
rails-html-sanitizer (1.0.2)
railties (4.2.1)
rake (10.4.2)
rdoc (4.2.0)
sprockets (3.0.3)
sprockets-rails (2.2.4)
test-unit (3.0.8)
thor (0.19.1)
thread_safe (0.3.5)
tzinfo (1.2.2)

另外,我的 gems 环境是这样的:

RubyGems Environment:
- RUBYGEMS VERSION: 2.4.5
- RUBY VERSION: 2.2.2 (2015-04-13 patchlevel 95) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.2.0
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /usr/local/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/local/lib/ruby/gems/2.2.0
- /root/.gem/ruby/2.2.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /sbin/
- /bin
- /usr/sbin
- /usr/bin
- /usr/local/bin

最佳答案

...As root I ran...

而且,root 认为 Ruby 处于什么路径?它认为 Ruby 在/usr/bin 中的可能性非常大,/usr/local/bin 因为那个路径/usr/local/bin 可能不在 root 的路径中。

您可以在前面加上 /usr/local/bin:临时到 root 的路径,或者你可以使用 gem在/usr/local/bin 中,它将知道将那个版本的 Ruby 的 gem 文件放在哪里。我会尝试:

sudo /usr/local/bin/gem install rails

应该为新版本的 Ruby 安装 Rails。


  • 外壳路径:
    • /sbin/
    • /bin
    • /usr/sbin
    • /usr/bin
    • /usr/local/bin

注意搜索路径的顺序。 /usr/bin/usr/local/bin 之前. /usr/local/bin的目的|是为存储用户范围的本地安装的可执行文件提供一个地方。通常,当您想要覆盖默认值时,这是安装可执行文件的修改版本的地方 /usr/bin可执行文件的行为,比如你想要一个新的 Ruby 在你的机器上运行。

而不是你正在使用的,你的 /usr/local/bin应该在 /usr/bin 之前在您的 PATH 定义中。这肯定会导致不同的搜索行为,特别是对于 which ,但不能保证能解决您遇到的问题。

gem install rails会找到 gem在/usr/bin 中,而不是在/usr/local/bin 中,并且会将 Rails 安装到相同的 Ruby 路径中。

which搜索路径,因此检查是否有 rails/usr/bin 中的命令:

ls /usr/bin/rails

如果它存在,您可能需要重建用于快速搜索的散列。我认为那是 rehash rails但我对那个内存模糊。

关于ruby-on-rails - "rails"尽管安装了 Rails 但仍未找到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29978909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com