在Mac OS X上安装sqlite3?

4

我刚买了一台新的MBP电脑。

我在网上读到OSX已经预装了Sqlite3。

我已经下载并安装了mac ports,以及从官方网站下载了sqlite3的bin文件。

在我阅读有关rails的指南中,指南告诉我要更新sqlite3,因此我在终端中运行以下命令:sudo port upgrade sqlite3

然后我收到以下错误提示:Error: sqlite3未安装

我很困惑,请帮忙!

4个回答

8

我不记得默认的配置了,但是像你一样,我自己安装了sqlite。您可以通过在OS X终端中键入which命令来检查您的sqlite安装是否完成:

$ which sqlite3
/opt/local/bin/sqlite3

如果 which 没有显示任何内容,则说明 sqlite3 不在您系统的 PATH 中。使用 cat 命令查看它是如何设置的(在您的 /etc/profile 文件中);
$ cat /etc/profile
# System-wide .profile for sh(1)
if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi
if [ "${BASH-no}" != "no" ]; then [ -r /etc/bashrc ] && . /etc/bashrc fi
export PATH="/usr/local/bin:/usr/local/sbin:$PATH" export PATH="/usr/local/mysql/bin:$PATH" export PATH="/opt/svn/subversion-1.4.3/bin:$PATH" export PATH="/opt/ruby/bin:$PATH" export PATH="/opt/sqlite/bin:$PATH"
您可以在文本编辑器中打开该文件并将路径添加到底部的行中。您可以看到我已将 sqlite 安装到 /opt/sqlite,而不是 /usr/local,因此我必须将其添加到我的路径中。这告诉系统在给定命令时检查可执行文件的位置。
完成后,您需要确保 Ruby 具有与 sqlite 交互所需的功能。我们通过安装 sqlite3 gem 来实现这一点。也许您不需要:
$ sudo gem list
Password:
*** LOCAL GEMS ***
# ...loads of gems listed ...
sqlite3-ruby (1.2.4)
# ... loads of gems listed ...
如果不存在,则 `sudo gem install sqlite3-ruby' 将在短时间内为您解决问题。如果您执行这两个步骤,Rails 应该可以直接使用 sqlite。

你知道sqlite3-ruby gem是使用内部的sqlite3可执行文件还是libs吗?这种方法当然适用于安装可执行文件,但我担心gem仍在使用/usr/lib中的旧libs。 - Justicle
我希望它使用路径中的第一个。但我什么也不知道,只是一些指定过路径变量的人。也许值得发起另一个问题? - deau

3

安装sqlite gem时,仅凭二进制文件可能不够。您需要从sqlite网站获取聚合tarball或通过端口进行安装:

sudo port install sqlite3 

2

我看到很多帖子建议安装XCode工具。我已经安装了XCode 3.2。从CD安装XCode并没有帮助。

以下方法可以帮助解决问题:

sudo env ARCHFLAGS="-arch x86_64" gem install sqlite3-ruby

我相信如果你正在尝试在Snow Leopard上安装mysql,“env…”语句也会有所帮助。

这对我来说完美地运作了。我刚刚升级到Mountain Lion。 - Ridwan

1

它没有通过 Mac ports 安装,因此 port 不知道它。你可以通过 port 进行安装,或者让 Rails 使用已经安装在 Mac 上的那个。


抱歉,但我是一个极度新手,我该怎么做? - Elliot
sudo port install sqlite3 看起来可以完成 :) - Elliot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接