【问题标题】:Linking postgresql in homebrew在自制软件中链接 postgresql
【发布时间】:2018-06-19 17:03:05
【问题描述】:

我已经安装了 postgresql,但它说我没有链接到它。 我在命令行中运行它并收到以下错误:

myname@MacBook-Pro-8 ~> brew install postgresql
Warning: postgresql 10.4 is already installed, it's just not linked
You can use `brew link postgresql` to link this version.
myname@MacBook-Pro-8 ~> brew link postgresql
Linking /usr/local/Cellar/postgresql/10.4...
Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.
myname@MacBook-Pro-8 ~> sudo brew link postgresql
Password:
Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all build scripts full access to your system.

我也试过了:

brew prune; brew link postgresql

这给了我同样的错误:

Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.

为什么该文件夹不可写,我该怎么做才能改变它?

【问题讨论】:

  • 这并不能真正帮助回答您的问题,但我强烈建议您使用 Peter Eisentraut 为 postgresql 构建的自制软件。 github.com/petere/homebrew-postgresql
  • 感谢您的建议。我正在尝试学习有关 Udemy 的课程,但我会检查一下。你推荐是因为它有多个版本的 pSQL?

标签: postgresql command-line homebrew


【解决方案1】:

解决这个问题真的很痛苦,所以我想我会把它留在这里给别人看。

问题: Postgresql 的 Homebrew 安装将无法成功执行。 $ brew link postgresql 由于目录不可写而导致失败。新版本的 Homebrew 将不允许 sudo 命令,并且系统完整性保护会阻止更改权限。

详情: 我尝试使用自制软件安装 postgres,但一直遇到 syslink 问题。当我按照自制软件的建议运行$ brew link postgresql 时,我一直遇到一个错误,因为某些文件夹不可写,所以无法完成。我认为这可以通过运行 sudo 轻松解决,但不幸的是,由于安全风险,最新版本的自制软件不再允许使用 sudo 命令。我的下一个想法是我的 root 用户并使用 macOS GUI 界面来更改此文件夹的权限,因为我不确定如何在终端上执行此操作。无论以“root”身份登录,操作系统都不会让我更改文件夹的权限。我还尝试使用 sudo 并更改终端中的权限,但它也不起作用。经过几天的头撞墙尝试各种事情以找到解决方案,我发现自从 El Capitan 以来,macOS 引入了系统完整性保护,即“SIP”或“无根”。事实证明,一旦我禁用了 SIP,重新登录到“root”并将我的常规帐户权限更改为对问题目录的读/写权限,我就能够回到我的常规帐户并成功执行 $ brew install postgresql。

(假设您目前通过自制软件安装了 postgresql,但由于上述情况而无法链接,我建议您使用以下方法来解决您的问题...)

  1. 运行$ brew link postgresql
  2. 记下错误表示无法写入的目录路径。 (例如 usr/local/share/man/man7)注意:您需要将其实际写在纸上或在手机上拍照,因为您将无法使用复制和粘贴)
  3. 如果您尚未启用“root”用户帐户,请启用。 (instructions here) 注意:确保为该帐户设置一个非常好的密码,并将其写在安全的地方。这是一个功能强大的帐户,无法恢复密码。
  4. 禁用系统完整性保护。 (instructions here)
  5. 登录“root”用户帐户
  6. 在 Finder 菜单栏中选择 GO > GO TO FOLDER... (CMND + SHFT + G) 并输入步骤 2 中的路径。
  7. 右键单击/Cntrl-单击文件夹并选择获取信息
  8. 点击共享和权限底部的加号
  9. 将您的常规帐户添加到列表中并将权限更改为读取和写入
  10. 回到您的常规帐户,运行 $ brew uninstall postgresql,然后运行 ​​$ brew update$ brew doctor。如果这些都设置好了,请运行$ brew install postgresql
  11. 您现在应该可以毫无问题地安装了。但是,如果您再次遇到链接和权限问题,请运行 $ brew link postgresql 找出有问题的目录,然后对其他任何给您带来麻烦的目录重复步骤 5 到 10。
  12. 如果一切正常并运行正常。最好至少再次启用 SIP(​​步骤 4 中链接的文章中的说明)。

(检查一切是否正常。我建议运行 $ brew services start postgresql 然后 $ createdb 'test' 。在我的情况下,当我最初尝试运行 createdb 并得到“找不到命令”时,我意识到出了点问题.)

【讨论】:

    【解决方案2】:

    运行它可以解决它。这绕过了 SIP。

    sudo chown -R $(whoami) $(brew --prefix)/*
    brew link postgresql
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 2016-02-15
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2014-01-06
      相关资源
      最近更新 更多