【问题标题】:'ruby-dbus' in TTY terminalTTY 终端中的“ruby-dbus”
【发布时间】:2014-08-31 19:22:31
【问题描述】:

我有下一个代码:

#! /usr/bin/env ruby
require 'dbus'
bus = DBus::SessionBus.instance

如果我从桌面执行此代码,那很好。但是,如果我在 TTY1-6 终端中执行代码,我会得到以下输出:

home/migue/.rvm/gems/ruby-2.1.2/gems/ruby-dbus-0.11.0/lib/dbus/bus.rb:611:in 'address_from_file': nil:NilClass (NoMethodError) 的未定义方法 '[]'

来自/home/migue/.rvm/gems/ruby-2.1.2/gems/ruby-dbus-0.11.0/lib/dbus/bus.rb:600:in 'initialize'

来自 /home/migue/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/singleton.rb:141:in 'new'

来自 /home/migue/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/singleton.rb:141:in 'block in instance'

来自 /home/migue/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/singleton.rb:139:in '同步'

来自 /home/migue/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/singleton.rb:139:in 'instance'

来自 bus.rb:3:in '

'

有什么想法吗?

【问题讨论】:

    标签: ruby rubygems dbus tty


    【解决方案1】:

    source code 揭示了这一行:

    display = ENV["DISPLAY"][/:(\d+)\.?/, 1]
    

    出现NoMethodError,因为ENV["DISPLAY"] 返回nil

    在终端中设置DISPLAY environment variable 应该可以解决问题。

    【讨论】:

    • 非常感谢,这就是问题所在。
    • @Madh 我开了一个issue on GitHub
    猜你喜欢
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    相关资源
    最近更新 更多