【问题标题】:Ruby sqlite3 gem not foundRuby sqlite3 gem 未找到
【发布时间】:2014-03-01 16:23:48
【问题描述】:

我最近下载了 Crunchbang,并且正在下载一个 Ruby 程序。我安装了 Ruby:

apt-get install ruby
apt-get install rubygems
apt-get install sqlite3

当我运行文件时,我得到:

root@crunchbang:/Pentest/NTLMRelay/ZackAttack# ruby zackattack.rb 
/usr/lib/ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find sqlite3 (= 1.3.6) amongst [] (Gem::LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /usr/lib/ruby/1.9.1/rubygems.rb:1231:in `gem'
    from /Pentest/NTLMRelay/ZackAttack/lib/zfdb.rb:7:in `<top (required)>'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from /Pentest/NTLMRelay/ZackAttack/clients/ews.rb:9:in `<top (required)>'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from /Pentest/NTLMRelay/ZackAttack/lib/zfclient.rb:6:in `<top (required)>'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from /Pentest/NTLMRelay/ZackAttack/lib/zfhttpd.rb:7:in `<top (required)>'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from zackattack.rb:8:in `<main>'

我完全不知所措。感谢您的帮助/

【问题讨论】:

  • 提供gem list的输出
  • *** LOCAL GEMS *** bundler (1.5.2)安装sqlite3 gem时出错(如下所述)

标签: ruby-on-rails ruby sqlite rubygems


【解决方案1】:

您还需要安装 ruby​​ gem:

gem install sqlite3

如果您的程序有 Gemfile,请执行以下操作:

gem install bundler
bundle install

另一个建议,通过 RVM 安装 ruby​​,它会让您免于许多麻烦。

更新:

您很可能还需要以下软件包:

sudo apt-get install libsqlite3-ruby

【讨论】:

  • 谢谢!现在我在gem install sqlite3 上收到此错误:root@crunchbang:/Pentest/NTLMRelay/ZackAttack# gem install sqlite3 Building native extensions. This could take a while... ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb checking for sqlite3.h... no sqlite3.h is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite-devel' and check your shared library search path (the location where your sqlite3 shared library is located). *** extconf.rb failed ***
  • 该错误是因为 apt 仅安装 SQLite 的基础知识以使其正常工作而没有提供所需的标头,因此可以编译驱动程序。这是我反复尝试使用 apt 和 yum 时遇到的问题,因此,我总是从源代码安装我的语言。语言的发展速度比 repo 构建器快得多。
【解决方案2】:

您也可以使用如下安装

apt-get install ruby-sqlite3

或者在我的情况下:

apt-get install sqlite3-ruby

【讨论】:

    【解决方案3】:

    我会避免使用apt-get 安装 Ruby,因为您将面临很多问题(版本、gem 管理等)。请改用 RVM。

    删除您的 apt-get 安装(尤其是如果您的 ruby -v 返回 1.9 之前的内容),然后按照 http://rvm.io/rvm/install 的说明进行操作

    RVM 将允许您安装多个 Ruby 版本并更轻松地管理您的 gem。

    完成 rvm 安装后,请执行以下操作:

    gem install sqlite3 -v 1.3.6
    

    一旦你运行了 RVM,事情应该会变得更容易......不要担心你在开始时花费的额外时间,它会得到回报的 :-)

    【讨论】:

      猜你喜欢
      • 2012-11-05
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2011-04-01
      • 2017-01-08
      • 1970-01-01
      • 2011-12-14
      相关资源
      最近更新 更多