sqlite3-ruby install error on Ubuntu
我在sqlite3-ruby安装期间出现以下错误:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | Building native extensions. This could take a while... ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. /usr/bin/ruby1.8 extconf.rb checking for sqlite3.h... no sqlite3.h is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite3-devel' *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/bin/ruby1.8 --with-sqlite3-dir --without-sqlite3-dir --with-sqlite3-include --without-sqlite3-include=${sqlite3-dir}/include --with-sqlite3-lib --without-sqlite3-lib=${sqlite3-dir}/lib Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 for inspection. Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out |
sqlite3.h位于/ usr / include /
1 | sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include |
不起作用
1 2 | ERROR: While executing gem ... (OptionParser::InvalidOption) invalid option: --without-sqlite3-include=/usr/include |
Ubuntu 10.04
您需要针对gem的本机扩展的SQLite3开发头进行编译。您可以通过运行(可能使用
1 | apt-get install libsqlite3-dev |
你只需要一个
1 | sudo gem install sqlite3-ruby -- --with-sqlite3-include=/usr/include |
这指定该选项不是直接gem,而是特定的gem。
在我的情况下,我没有安装基本的编译器,所以
1 | sudo apt-get install build-essential |
解决了我的问题,但对于大多数人来说,我认为https://stackoverflow.com/a/3649005/417267是解决方案。
这就是我做的:
1 2 3 4 5 6 7 8 9 | wget http://www.sqlite.org/sqlite-amalgamation-3.7.2.tar.gz tar xzf sqlite-amalgamation-3.7.2.tar.gz cd sqlite-3.7.2/ ./configure make make install gem install rails sqlite3-ruby |
来自:http://cuasan.wordpress.com/2010/10/13/rails-3-on-debian-with-sqlite-3/
如果您在ubuntu中运行,并在rails上使用RVM for ruby??,请添加FIRST:
1 | sudo apt-get install libxslt-dev libxml2-dev |
或者你可以检查这些命令:
这个命令将为你准备两个包:sqllite3和libsqlite3-dev
sudo apt-get install sqlite3
libsqlite3-dev
- 现在,安装sqlite gem
1 | [sudo] gem install sqlite3-ruby |
- 使用Ubuntu不需要sudo。
祝好运!注意:我正在使用Ubuntu 10.10并且它正在运行。
这足以让它发挥作用
1 | sudo apt-get install libsqlite3-dev |
感谢marshluca
尝试了所有其他解决方案,没有人帮助。
事实证明,你还需要dev包本身。对我来说,它有所帮助
1 | sudo apt-get install ruby-full |
它有很多讨厌的依赖(如emacs,wtf?),只是
1 | sudo apt-get install ruby1.8-dev |
应该没事。安装完成后(你安装了sqlite和sqlite-dev软件包)
1 | sudo gem install sqlite3-ruby |
奇迹般有效。
以下是HEROKU的更好答案 - 无法运行git push heroku master
由于您无法在heroku上使用sqlite3,请将此添加到您的Gemfile:
1 2 3 4 5 6 | group :production do gem 'pg' end group :development, :test do gem 'sqlite3' end |
有这个相同的问题,以下工作对我有用:
将sqlite3编译为静态库,安装在主目录中的某个位置,然后为gem安装过程提供该选项。
转到下载页面并获取源代码。目前最新版本是http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz
tar -xf在文件上或做你通常做的任何解压缩;输入目录
./configure --disable-shared --enable-static --prefix = / some / path / in / my / home
编译,安装,以及当你安装gem时......
gem install sqlite3-ruby - --with-sqlite3-dir = / some / path / in / my / home
从sqlite3-ruby gem在ubuntu上找不到sqlite3.h:
你还需要安装gcc本身,所以总的来说:
1 2 | sudo apt-get install gcc libsqlite3-dev ruby1.8-dev sudo gem install sqlite3 |
显然,当实际问题缺少gcc本身时,你会得到一个指向缺少sqlite3.h的错误错误。
解决方案是添加
代替
1 | sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include |
尝试这一点,所有在一行,确保在最后的
1 2 3 | sudo gem install sqlite3 -- --with-sqlite3-lib=/somewhere/local/lib --with-sqlite3-include=/somewhere/local/include |
这应该可以解决这个错误:
1 2 | ERROR: While executing gem ... (OptionParser::InvalidOption) invalid option: --without-sqlite3-include=/usr/include |
不是
即使在安装
1 | rails [_VERSION_] new project_name -d postgresql |
如果要使用
1 | rails [_VERSION_] new project_name -d mysql |
否则你可以尝试不用
1 | bundle install --without sqlite |
对我来说,问题是通过获取mkmf来解决的,这是在ruby1.8-dev中。
1 | sudo apt-get install ruby1.8-dev |
感谢那个人的心智。
我同意Danya Vershinin& EnotionZ。
如果不能使用apt-get:
更多信息可以在README中找到。
你有破坏版的RVM。 Ubuntu对产生大量错误的RVM做了一些事情,现在唯一安全的修复方法是:sudo apt-get --purge remove ruby??-rvm sudo rm -rf / usr / share / ruby?? ...,如果它没有帮助然后重新启动计算机。安装RVM: curl -L https://get.rvm.io | bash -s stable --ruby --autolibs = enable --auto-dotfiles如果你发现需要一些手持,请看看在Ubuntu 12.04上安装Ruby,它提供了更多的解释
忘掉一切,做到这一点,
跑
1 2 3 4 | yum install ruby-devel sqlite sqlite-devel ruby-rdoc yum install make gcc gem install sqlite3-ruby bundle install |
那是为了rhel,为ubuntu运行相同。
这是我几周前遇到的完全相同的问题。我发现我需要从SQLite下载页面下载最新的头文件/库。尝试一下,希望这有帮助!