我尝试在我的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中经历过无数次!)。