MrP*_*fio 8 ruby ruby-on-rails bundler
只是一个免责声明,因为我对一般编程还很陌生,并决定采用 ruby 来实现这一目标,但是......
\n\n我正在关注迈克尔·哈特尔(Michael Hartl)在网上找到的本教程/书籍,但几天前发生了一些事情,我一直在尝试修复它但无济于事,这变得令人难以置信的令人沮丧。
\n\n当前的问题是标题本身
\n\n/usr/bin/env: \xe2\x80\x98ruby\xe2\x80\x99: No such file or directory\nRun Code Online (Sandbox Code Playgroud)\n\n我无法克服这一点,现在我已经尝试卸载 RVM、Ruby 和 Rails(最后一个给我带来了麻烦)。\n我什至在绝望中将 ubuntu 更新到了 16LTS;我已经更改了 /usr/local/bin 中每个文件的第一行以使其显示
\n\n#!/usr/bin/env ruby\nRun Code Online (Sandbox Code Playgroud)\n\n当我跑步时
\n\n捆绑安装
\n\n我得到:
\n\n/usr/bin/env: \xe2\x80\x98ruby\xe2\x80\x99: No such file or directory\nRun Code Online (Sandbox Code Playgroud)\n\n哪个轨道返回:
\n\n/usr/bin/env: \xe2\x80\x98ruby\xe2\x80\x99: No such file or directory\nRun Code Online (Sandbox Code Playgroud)\n\n但是当我运行 Rails -v 时我得到:
\n\n/usr/bin/env: \xe2\x80\x98ruby\xe2\x80\x99: No such file or directory\nRun Code Online (Sandbox Code Playgroud)\n\n再次!!!\n 我有 zsh (如果这有什么区别的话)
\n\ngem uninstall rails\nRun Code Online (Sandbox Code Playgroud)\n\n给我:
\n\n/usr/bin/gem: bad interpreter: /usr/bin/ruby2.3: no such file or directory\nRun Code Online (Sandbox Code Playgroud)\n\n我确实尝试过多种解决方案,但没有一个有效,它可能有一个非常简单的解决方案,但正如我之前所说,我是初学者,尽管不断的故障排除必须具有教育意义,但它变得令人难以置信的令人沮丧和厌恶。
\n\n谢谢你的帮助!
\n小智 8
我遇到了同样的问题,详细信息如下
\nRuby 已安装在系统上
\nwhich ruby返回/usr/local/bin/ruby ,但如果尝试从 cron 运行任何脚本,则会抛出错误/usr/bin/env: \xe2\x80\x98ruby\xe2\x80\x99: No such file or directory
一项小小的调查显示 env 正在尝试加载 ruby 二进制形式/usr/bin/ruby,即使/usr/local/bin/它位于$PATHenv 变量中。所以我创建了一个软链接。
ln -s /usr/local/bin/ruby /usr/bin/ruby\nRun Code Online (Sandbox Code Playgroud)\n现在脚本也可以在 cron 中运行。
\n有时,当我不再相信 rvm 处于正确状态时,我会重新开始并重新安装 rvm。(更精确且不太激烈的修复,例如 @IgorPavlov 的 --auto-dotfiles 修复也可能有效。)以下是有效停用现有 rvm 安装的 3 种方法;前两个删除了 ~/.rvm 目录,其中包含 rvm 的 rubies、gems 等,第三个只是重命名该目录,以便 rvm 不使用它:
1)rvm implode
2)rm -rf ~/.rvm
3)mv ~/.rvm ~/.rvm.bad
这不会撤消对启动文件所做的更改,但这可能没问题。
然后你从头开始重新安装rvm。
然而,我相信你现在有一个更大的问题;你说“我已经更改了 /usr/local/bin 中每个文件的第一行以使其表示
#!/usr/bin/env ruby
Run Code Online (Sandbox Code Playgroud)
”
这不太好。;) 你能把这些文件改回原来的内容吗?
该#!/usr/bin/env ruby行的唯一目的是告诉 shell 该脚本应该由名称为 的路径中找到的命令运行ruby。该env命令及其/usr/bin所在目录与 Ruby 无关。我建议谷歌搜索/usr/bin/env以更好地理解它。
如果您想自动从 /usr/bin 中的文件中删除“shebang”行,您可以运行下面的脚本(但将其复制到 /usr/bin 以外的目录,否则它也会被修改)。您可能需要使用 sudo 运行脚本,因为 /usr/bin 中的文件可能由 root 用户拥有:
#!/usr/bin/env ruby
# Removes #!/usr/bin/env ruby from files in /usr/bin.
require 'fileutils'
DIR = ARGV.first || '/usr/bin' #location can be overridden on cmd line
files = Dir[DIR + '/*'].select { |f| File.file?(f) }
files.each do |file|
lines = File.readlines(file)
needs_modifying = /^#!\/usr\/bin\/env\s+ruby$/ === lines.first
puts (needs_modifying ? 'Modifying ' : 'Not modifying ') + "#{file}."
if needs_modifying
FileUtils.cp(file, file + '.sav')
File.write(file, lines[1..-1].join("\n"))
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31050 次 |
| 最近记录: |