Ruby 如何";要求;手动安装的gems(KDE等离子体)?

Ruby 如何";要求;手动安装的gems(KDE等离子体)?,ruby,kde,plasmoid,plasma,Ruby,Kde,Plasmoid,Plasma,我正试图为KDE编写一个Ruby plasmoid。我只需要用一个rubygem。每当我写时需要“dbus”,它就会抛出一个错误: code/main.rb:6:in'require':没有要加载的文件--dbus(LoadError) 代码/main.rb:6:in'' 代码/main.rb:5:in'' /usr/share/apps/plasma_scriptengine_ruby/applet.rb:177:in'load' /usr/share/apps/plasma_scripten

我正试图为KDE编写一个Ruby plasmoid。我只需要用一个rubygem。每当我写
时需要“dbus”
,它就会抛出一个错误:

code/main.rb:6:in'require':没有要加载的文件--dbus(LoadError)
代码/main.rb:6:in''
代码/main.rb:5:in''
/usr/share/apps/plasma_scriptengine_ruby/applet.rb:177:in'load'
/usr/share/apps/plasma_scriptengine_ruby/applet.rb:177:in'init'
/usr/share/apps/plasma_scriptengine_ruby/applet.rb:201:in'constraintEvent':nil:NilClass(NoMethodError)的未定义方法'constraintEvent'
/usr/share/apps/plasma\u scriptengine\u ruby/applet.rb:201:in'constraintEvent':nil:NilClass(NoMethodError)的未定义方法'constraintEvent'

实际上,正常的“ruby main.rb”工作得很好(关于“require”部分),但使用“plasmoidviewer”测试plasmoid失败。请注意,standart Ruby安装的常规gems运行良好,即
需要'Qt4'
需要'yaml'
完美加载。我在Linux下使用Ruby 1.9.2p180

09:40 PM-更新:QtRuby开发人员之一Richard Dale几分钟前刚刚解决了这个问题。KDE的下一个版本将有QtRuby的补丁版本。

您是否尝试过:

   require 'find'
   require 'findUtils'

    Find.find(PATH_WHERE_GEM_IS_INSTALLED) do |path|
      if FileTest.directory?(path)
            $: << File.expand_path(path)
       if File.basename(path)[0] == ?. and File.basename(path) != '.'
          Find.prune
        else
          next
        end
      else
      end
    end
require 'rubygems'

是的,我有。顺便说一下,假设您是Ruby 1.9用户,自动意味着rubygems在默认情况下已经包括在内(在irb会话中尝试
要求“rubygems”
,您会看到,它将返回
false
)。那么直接调用脚本时,您的脚本可以工作,而不是通过测试?如何从测试文件加载文件?是的,当直接调用时,关于“requires”,一切都正常。一切都按它应该的样子装载。然而,我不明白你的第二个问题。我安装了一个名为“ruby dbus”的gem,它调用如下:
需要“dbus”
。它可以在任何ruby脚本中完美地调用,但不能在main.rb中调用。不管我需要什么gem(默认库除外),它都会引发LoadError。我使用plasmoidviewer实用程序测试代码,它在main.rb文件中有自己的表示形式。用Ruby编写的每个plasmoid都需要“plasma_applet”,这将是您代码的第一行。我没有“findUtils”<代码>要求“查找”工作正常。我想,应该有更清晰的方法来解决我的问题。安装GEM的路径就像暴力一样,不是吗?:-)
require 'rubygems'