Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 新安装后,SQLite3旧版本仍然存在(OS X)_Ruby_Macos_Unix_Sqlite - Fatal编程技术网

Ruby 新安装后,SQLite3旧版本仍然存在(OS X)

Ruby 新安装后,SQLite3旧版本仍然存在(OS X),ruby,macos,unix,sqlite,Ruby,Macos,Unix,Sqlite,我已经在macbook(OS X 10.5)上安装了较新版本的SQLite3(3.7.0.1),但“SQLite3--version”提供了我系统上的旧版本: $ sqlite3 --version 3.4.0 我想我希望这个版本会被覆盖,但事实似乎并非如此。有人能给我提供线索吗?我非常感谢,现在我正在尝试开始使用Rails,但我收到了以下错误: $ sudo gem install sqlite3-ruby Password: Building native extensions. Thi

我已经在macbook(OS X 10.5)上安装了较新版本的SQLite3(3.7.0.1),但“SQLite3--version”提供了我系统上的旧版本:

$ sqlite3 --version
3.4.0
我想我希望这个版本会被覆盖,但事实似乎并非如此。有人能给我提供线索吗?我非常感谢,现在我正在尝试开始使用Rails,但我收到了以下错误:

$ sudo gem install sqlite3-ruby
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for #include <sqlite3.h>
... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... no
checking for sqlite3_initialize()... no
sqlite3-ruby only supports sqlite3 versions 3.6.16+, please upgrade!
*** 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.
$sudo gem安装sqlite3 ruby
密码:
构建本机扩展。这可能需要一段时间。。。
错误:安装sqlite3 ruby时出错:
错误:无法生成gem本机扩展。
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby extconf.rb
检查#包括
... 对
正在-lsqlite3中检查sqlite3\u libversion\u number()。。。对
正在检查rb_进程()。。。不
正在检查sqlite3_initialize()。。。不
sqlite3 ruby仅支持sqlite3版本3.6.16+,请升级!
***extconf.rb失败***
由于某些原因无法创建Makefile,可能是缺少
必要的库和/或标题。查看mkmf.log文件了解更多信息
细节。您可能需要配置选项。
奇怪的是,自从安装了新版本的sqlite3之后,这个错误就消失了(换句话说,sqlite3 ruby安装成功了)——但是sqlite3仍然指向3.4.0,我检查了$PATH中的目录,它们只包含3.7.0.1


提前感谢您的帮助。

您是否尝试过通过键入
hash sqlite3
来告诉操作系统使用新的操作系统?有时操作系统会记住原始版本,不知道如何刷新自己,
hash
会戳到它的眼睛

否则,你可能需要告诉宝石在正确的地方寻找。在安装程序中检查以下选项:

--with-sqlite3-dir --with-sqlite3-include --with-sqlite3-lib --with-sqlite3-dir --with-sqlite3-include --with-sqlite3-lib
我在CentOS服务器上也面临同样的问题。我发现这个解决方案对我有效。希望能有帮助

主要流程:

$ wget http://www.sqlite.org/sqlite-amalgamation-3.7.0.1.tar.gz $ tar xvzf sqlite-amalgamation-3.7.0.1.tar.gz $ cd sqlite-3.7.0.1 $ ./configure --prefix=/opt/local/sqlite-3.7.0.1 $ make $ sudo make install $ sudo /opt/ruby-enterprise-1.8.7-2010.02/bin/gem install sqlite3-ruby -- --with-sqlite3-dir=/opt/local/sqlite-3.7.0.1 Building native extensions. This could take a while... Successfully installed sqlite3-ruby-1.3.1 1 gem installed $wgethttp://www.sqlite.org/sqlite-amalgamation-3.7.0.1.tar.gz $tar xvzf sqlite-mergation-3.7.0.1.tar.gz $cd sqlite-3.7.0.1 $./configure--prefix=/opt/local/sqlite-3.7.0.1 $make $sudo make安装 $sudo/opt/ruby-enterprise-1.8.7-2010.02/bin/gem安装sqlite3ruby--with-sqlite3-dir=/opt/local/sqlite-3.7.0.1 构建本机扩展。这可能需要一段时间。。。 已成功安装sqlite3-ruby-1.3.1 已安装1个gem
sqlite3和sqlite3 ruby都已成功安装,在sqlite3 ruby的情况下,它找到了正确的sqlite3,因此我已完成安装-我只是想知道为什么旧安装没有被覆盖或删除?而且我想知道它到底在哪里?(我已经检查了$PATH上的所有位置……它必须在某个地方?是否有命令la:'sqlite3-告诉我它到底在哪里?)一般来说,安装程序不应该覆盖系统安装的包。他们通常有很好的理由将其安装在他们安装的地方,比如系统进程期望它在那里,并且安装在特定的版本上。如果您强制这些包,它们将被覆盖,但这可能会导致机器无法正常工作。安装到/usr/bin中有风险/usr/bin/local或其他…/local/路径相当安全,通过调整路径,可以控制是否首先找到…/local/版本。希望有帮助。