【问题标题】:Installing PostgreSQL on OSX for Rails development在 OSX 上安装 PostgreSQL 以进行 Rails 开发
【发布时间】:2011-01-17 06:47:40
【问题描述】:

在过去的几天里,我花了几个小时试图让 PostgreSQL 在我的 Mac 上与 RoR 配合使用。

我已经使用几种不同的方法学习了几个教程,例如手动安装 PostgreSQL 和从各种一键式安装程序安装

但是,我尝试的所有不同方法在安装 pg gem 的最后一步都失败了。很郁闷!

这里有没有人提供经过验证的教程来完成这项工作? (或者你想在这里写一些说明......?)

我的环境是这样的:Macbook running OSX 10.6, PostgreSQL 8.4.1 server

【问题讨论】:

标签: ruby-on-rails macos postgresql installation


【解决方案1】:

我想我已经设法找到了一种可行的方法。我从this great post1 大量借用,但由于他们同时安装了一堆其他东西,我将写下我在这里为那些正在寻找的人所做的事情PostgreSQL 安装答案。

1 编者注:我尝试时链接似乎已失效。是这个吗? http://blog.blackwhale.at/?p=175#PostgreSQL如果是请修复。

  1. 下载 PostgreSQL for Mac 并下载“Postgres.app”安装程序。

  2. 为您的 Rails 开发创建一个用户(请记住,如果您在开发期间共享一个应用程序,您可能希望您的开发团队的所有成员都使用相同的用户,以避免头痛)

    sudo -u postgres /Library/PostgreSQL8/bin/createuser
    
  3. 输入您的 Mac OS X 系统用户名作为角色名,并使其成为超级用户。

  4. 安装 pg gem,以便 Rails 可以与 PostgreSQL 对话

    sudo env PATH=/Library/PostgreSQL8/bin:$PATH gem install pg
    
  5. 配置您的 rails 应用程序以与 PostgreSQL 通信。您可以使用以下方式创建新应用程序:

    rails *appname* -d postgresql (for Rails 3 -> rails new *appname* -d postgresql)
    

    或者对于现有应用,修改您的 database.yml 文件。

这对我有用,没有任何问题。如果其他人尝试使用这种方法,我很想听听一些关于它对你的效果的反馈。

【讨论】:

  • 会的! (显然我必须等到明天)谢谢你的帮助:)
  • 安装后我运行... sudo: /Library/PostgreSQL8/bin/createuser: command not found
  • 嗯,你查看过 /Library/PostgreSQL8/ 看看你是否真的安装在那里?我刚刚尝试了该命令,它对我有用。也许你安装了 PostgreSQL9 ?
  • 该行应该是 sudo -u postgres /Library/PostgreSQL/bin/createuser
  • 如果使用 9.0 ,我的默认路径是 /Library/PostgreSQl/9.0/bin
【解决方案2】:

在 64 位 Mac(带有 Core 2 Duo 或更新版本的 Snow Leopard)上,我不得不从源代码编译 PostgreSQL,因为 rails 一直在抱怨:

*** Your PostgreSQL installation doesn't seem to have an architecture in common
with the running ruby interpreter (["ppc", "i386", "x86_64"] vs. [])

架构不匹配可能是因为我从源代码编译 rails,默认为 64 位。 postgresql.org 上的二进制安装程序似乎只有 32 位版本。设置 ARCHFLAGS 并没有为我解决这个问题。

无论如何,如果您从 postgresql.org 下载 [source][1] 并按照 INSTALL 文件中的说明进行操作,则相当简单。如果您使用自己的帐户,则不必创建新用户。我确实必须创建 sysctl.conf 文件来扩展共享内存 - 只需 google 'postgresql os x sysctl.conf'

【讨论】:

    【解决方案3】:

    老问题,但也许我可以用这个(相当简单的)解决方案帮助某人:

    gem install pg -- --with-opt-include=/opt/local/include/postgresql84/ --with-opt-lib=/opt/local/lib/postgresql84/
    

    【讨论】:

      【解决方案4】:
      1. 下载并安装 MacPorts
      2. 启动终端
      3. sudo port install ruby postgresql83-server rb-postgres rb-gems rb-rails

      【讨论】:

      • 我已经安装了 RoR,而不是通过 Macports。不会把事情搞砸吗?
      • 不,这将通过系统安装完全使用自己安装的所有内容。请注意,如果您想通过 apache 使用,您还需要安装 Apache2 的端口,然后安装 fastcgi 或您拥有的任何东西。然后,您需要确保修改 ~/.bash_profile 中的路径以在路径的其余部分之前使用 macports 路径,或者使用安装的完整路径,如 /opt/local/bin/ruby 等。
      • 感谢您的回答。 +1,因为它是一个很好的解决方案,但我不确定这正是我正在寻找的。我想看看我是否可以将 postgres 添加到我现有的开发环境中,我觉得虽然 macports 很棒,但它并不总是能让你很好地控制版本......
      • @gshankar:在某种程度上这是真的。我主要是一个 php 开发人员,当他们切换到 5.3 时,肯定有一段时间我必须用 php 5.2.x 管理我自己的端口 repo。托管本地存储库比手动编译/升级和连接所有内容要少得多。绝对有效的批评,我很高兴您找到了满足您需求的解决方案。 :-)
      【解决方案5】:

      感谢 Ganesh 提供的好遮阳篷,我的 sudo 网址看起来有点不同 :) 这就是我所拥有的
      sudo -u postgres /Library/PostgreSQL/9.2/bin/createuser

      【讨论】:

        【解决方案6】:

        Ryan Bate 的 Railscast on PostgreSQL 将引导您使用 Homebrew 在 Mac 上进行设置。非常简单,在 OSX 10.6.8 上为我工作。

        【讨论】:

          猜你喜欢
          • 2011-07-21
          • 2016-05-30
          • 2011-12-14
          • 1970-01-01
          • 1970-01-01
          • 2012-09-29
          • 1970-01-01
          • 1970-01-01
          • 2021-01-12
          相关资源
          最近更新 更多