Rails 6:不能在mac m1上安装pg



我尝试在我的mac m1上安装gem pg,但得到这个错误:

ERROR: While executing gem ... (Gem::FilePermissionError)

You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

我用自制软件安装了postgresql,可以用命令psql连接数据库。这意味着我已经在我的机器上安装了postgres,但是gem pg不能在rails上工作。

最简单的解决方案是使用sudo和强制权限,但这可能不是最好的解决方案。

https://www.moncefbelyamani.com/the-definitive-guide-to-installing-ruby-gems-on-a-mac/

看起来是一篇好文章,你可能应该选择https://www.moncefbelyamani.com/the-definitive-guide-to-installing-ruby-gems-on-a-mac/#ruby-manager

如果你在Homebrew中安装了PostgreSQL,这意味着你有对相关目录的写权限,只要您可以使用与安装PostgreSQL相同的权限执行命令(无论是与rails相关的还是纯Ruby)。所以,如果你已经安装了PostgreSQL与sudo,那么你应该运行sudo gem install pg或其他,使用sudo。或者,如果您已经将帐户切换到控制Homebrew软件的管理员,那么您必须在运行gem install pg时执行相同的操作(注意,如果将后一种情况与安装在用户目录下的Rails项目结合使用,则权限可能会很复杂)。

就我个人而言,我使用rbenv(Github)作为Ruby的版本控制软件(或者,一个流行的替代rvm也应该工作得很好),而在我的环境中,Homebrew的安装仅限于管理员。使用rbenv,所有的Ruby库都在每个用户的控制之下,因为所有的东西(除了外部软件,如PostgreSQL)都安装在用户的主目录下。如果您使用rbenv(或rvm),则不会发生这种类型的权限冲突(这确实是一种痛苦,因为我过去在Rails中经历过无数次!)。

最新更新