【问题标题】:Having Trouble Using "brew link" to switch between PostgreSQLs使用“brew link”在 PostgreSQL 之间切换时遇到问题
【发布时间】:2012-02-04 16:20:46
【问题描述】:

我想在 Heroku 上运行 Rails 应用程序,所以我使用 Homebrew 在我的 Snow Leopard 机器上安装了 PostgreSQL。目前,brew 将 9.1.2 安装到 /usr/local/Cellar/postgresql。经过一番研究,我发现 Heroku 的免费共享版本需要 8.3.x。虽然 homebrew-alt 没有 8.3,但它确实有 8.4,所以我下载了它并将其安装到 /usr/local/Cellar/postgresql8 中。然后我确认我能够在每个版本上创建和运行数据库。想到我可以使用“brew [link | unlink] 来回切换”,我运行了“brew unlink postgresql8”,然后运行了“brew link postgresql”。但是,运行后一个命令会导致此错误:

正在链接 /usr/local/Cellar/postgresql/9.1.2... 错误:无法链接 postgresql 另一个版本已经链接:/usr/local/Cellar/postgresql/9.1.2

有什么方法可以做到这一点(来回切换)还是我误解了 brew link/unlink 应该如何使用?

顺便说一句,“brew list”显示“postgresql”和“postgresql8”,所以我认为我不应该说“brew link postgresql9”。

谢谢。

【问题讨论】:

  • 抱歉,我是 Stackoverflow 的新手,发现界面操作起来相当混乱。

标签: macos postgresql homebrew


【解决方案1】:

使用 brew switch,这是 Homebrew 附带的扩展。在您的情况下,您可以通过运行来使用 8.4

$ brew switch postgresql 8.4

【讨论】:

  • 仅供参考,对我来说,brew 没有链接所有与 Postgres 相关的命令。例如,pg_ctl 会从一个版本切换到另一个版本,但 psql 不会。我不得不手动更改 psql 以使用新版本的命令,来自 /usr/local/Cellar/postgresql/9.2.4/bin/psql
  • 由于我从未安装过香草postgres 我不得不这样做才能切换:brew unlink postgresql95 && brew link postgresql94 --force
【解决方案2】:

谢谢你,米帕迪!那成功了。我只需要做一件事。 'brew switch' 命令假定所有版本的 postgresql 都安装在 /usr/local/Cellar/postgresql 中。版本 8.4.8 并非如此,因为它安装在 /usr/local/Cellar/postgresql8 中。因此我不得不创建一个符号链接来指向这个旧版本:

cd /usr/local/Cellar/postgresql
ln -s ../postgresql8/8.4.8 8.4.8

当然,将数据库集群保存在单独的目录中也很有意义:

/usr/local/var/postgres/8.4.8
/usr/local/var/postgres/9.1.2

【讨论】:

    猜你喜欢
    • 2021-02-26
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    相关资源
    最近更新 更多