首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用自制语言链接postgresql

用自制语言链接postgresql
EN

Stack Overflow用户
提问于 2018-06-19 17:03:05
回答 2查看 4K关注 0票数 2

我已经安装了postgresql,但是它说我没有链接到它。我正在命令行中运行这个程序,并得到以下错误:

代码语言:javascript
复制
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.

我也试过:

代码语言:javascript
复制
brew prune; brew link postgresql

这给了我同样的错误:

代码语言:javascript
复制
Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.

为什么那个文件夹是不可写的,我能做什么来改变它呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-19 19:53:16

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

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

详细信息:我试着用自制软件安装postgres,但一直遇到syslink的问题。当我按照自制软件运行$ brew link postgresql时,我一直遇到一个错误,因为某些文件夹是不可写的,所以无法完成。我认为通过运行sudo可以很容易地解决这一问题,但不幸的是,最新版本的国产软件不再允许使用sudo命令,这是因为安全风险。我的下一个想法是给我的根用户,并使用macOS GUI界面来更改这个文件夹的权限,因为我不知道如何在终端上这样做。不管是以“root”身份登录,OS都不允许我更改文件夹的权限。我还尝试使用sudo并更改终端中的权限,但它也没有工作。几天后,我的头撞在墙上,尝试各种事情来寻找解决方案,我发现自从El Capitan,macOS引入了系统完整性保护,也就是'SIP‘或’无根‘。事实证明,一旦我禁用了SIP,登录回'root‘,并更改了我的常规帐户权限来读取/写入问题目录,我就能够回到我的常规帐户并成功地执行$ brew postgresql。

(假设您目前已经通过自制安装了postgresql,但无法链接到上面提到的场景,下面是我建议您解决问题的建议.)

  1. 运行$ brew link postgresql
  2. 写下错误表示无法写入的目录路径。(例如usr/local/share/man/man 7)注意:你会想把这个写在纸上,或者在你的手机上拍一张屏幕的照片,因为你不能使用复制和粘贴)
  3. 如果您还没有启用“root”用户帐户,则启用它。(这里的说明)注意:一定要为这个帐户做一个非常好的密码,并把它写在安全的地方。这是一个强大的帐户,没有办法恢复密码。
  4. 禁用系统完整性保护。(这里的说明)
  5. 登录到“root”用户帐户
  6. 在Finder菜单栏中,选择GO > GO到文件夹.(CMND + SHFT + G)并键入步骤2中的路径。
  7. 右击/Cntrl-单击文件夹并选择Get Info
  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并得到“命令未找到”时,我才意识到有些地方不对劲。)

票数 1
EN

Stack Overflow用户

发布于 2018-07-13 18:13:28

运行这个程序就能解决问题。这绕过了SIP。

代码语言:javascript
复制
sudo chown -R $(whoami) $(brew --prefix)/*
brew link postgresql
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50933539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档