簡體   English   中英

在自制中鏈接PostgreSQL

[英]Linking postgresql in homebrew

我已經安裝了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.

為什么該文件夾不可寫?我該怎么做才能更改它?

解決這個問題真的很痛苦,所以我想把它留給別人看看。

問題: Postgresql的Homebrew安裝將無法成功執行。 $ brew link postgresql由於目錄不可寫而導致失敗。 新版本的Homebrew將不允許sudo命令,並且系統完整性保護可防止更改權限。

詳細信息:我嘗試使用自制軟件安裝postgres,並不斷遇到syslink問題。 當我按照自制軟件的建議運行$ brew link postgresql ,我一直遇到一個錯誤,因為某些文件夾不可寫,所以無法完成。 我認為通過運行sudo可以很容易地解決此問題,但是不幸的是,由於安全風險,最新版本的homebrew不再允許使用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”用戶帳戶(如果尚未啟用)。 此處的說明 )注意:確保為此帳戶輸入一個非常好的密碼,並將其寫下來安全的地方。 這是一個功能強大的帳戶,無法恢復密碼。
  4. 禁用系統完整性保護。 這里的說明
  5. 登錄到“ root”用戶帳戶
  6. 在Finder菜單欄中,選擇GO>轉到文件夾...(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然后啟動postgresql,然后運行$ brew services $ createdb 'test' 。就我而言,這是當我最初嘗試運行createdb並得到“找不到命令”時,我意識到出了點問題。 )

運行此即可解決。 這繞過SIP。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM