【问题标题】:How to fix Ruby error: `require': cannot load such file -Programing Ruby 1.9 & 2.0 4th edition如何修复 Ruby 错误:`require': cannot load such file -Programing Ruby 1.9 and 2.0 4th edition
【发布时间】:2021-09-17 06:54:13
【问题描述】:

这是我的第一篇文章,对于格式中的任何错误,我深表歉意。

我使用 AWS cloud9 作为我的 IDE。我正在尝试加载文件,但我不断收到此错误:

Traceback (most recent call last):
    2: from gserver:9:in `<main>'
    1: from /home/ubuntu/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/home/ubuntu/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- gserver (LoadError)

我的 gserver-logger.rb 代码是:

require 'gserver'

class LogServer < GServer

def initialize
  super(12345)
end

def serve(client)
  client.puts get_end_of_log_file
end


private

 def get_end_of_log_file
   File.open("/var/log/system.log") do |log|
     log.seek(-500, IO::SEEK_END)   
     log.gets                        
     log.read                        
     end
   end
 end

server = LogServer.new
server.start.join

我已验证 gserver 位于同一目录中,因此我的代码应该能够访问文件 gserver-logger.rb。所有这些都来自《Programming Ruby 1.9 & 2.0 4th edition.pdf 第 86 页》一书。 感谢您的帮助。

【问题讨论】:

  • 您声称文件名为gserver-logger.rb,但您需要一个名为gserver 的文件。这不可能。
  • 感谢您指出这一点。我已进行更正以确保名称正确。但是我仍然收到错误。

标签: ruby-on-rails ruby aws-cloud9


【解决方案1】:

gserver 曾经是 Ruby 标准库的一部分。但是,它was removed from the standards library 使用 Ruby 2.2.0,因为它基本上没有维护,也没有测试。

自那以后,这种(未)维护状态并没有真正改变。如果您仍然需要该库的功能,您可以安装和使用 gserver gem,它包含从标准库中删除的代码状态。但是,我强烈建议改用其他东西...

【讨论】:

  • 另外,您可能希望使用更新的书籍,或者至少对书中的考虑事项持保留态度。 Ruby 1.9 的最终版本是 6.5 年前发布的,2.0 的最终版本是 5 年前发布的。从那时起,很多领域的很多事情都发生了变化……
  • 感谢您指出这一点。我是编程新手,并试图自学。我看到这本书是 Chris Pine 在他的“Learn to Program”一书中推荐的,这就是我开始阅读它的原因。我会找一本更新的书来学习。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多