前段时间我用postgres数据库创建了一个Ruby on Rails项目。它最初是在macbook上创建的,我在那里建立了一个可用的生产和测试环境。不幸的是,这台计算机已经死了,现在我必须继续使用我唯一拥有的机器来处理同一个项目:Windows 10笔记本电脑。
我一直在按照这些指南在我的Windows 10 PC上设置可行的rails环境: https://medium.com/@colinrubbert/installing-ruby-on-rails-in-windows-10-w-bash-postgresql-e48e55954fbf
https://gorails.com/setup/windows/10
我已经成功安装了bash / ubuntu。我已经成功安装了git。我已经成功安装了ruby。我已经安装了所有必备的宝石,以便我可以成功运行bundle install。当我按照两个教程的建议进入postgres时,我通过windows安装它而不是通过终端安装它。随着Postgres 9.6安装并作为Windows服务运行,我无法在终端中输入psql。我收到这个错误:
psql:无法连接到服务器:没有这样的文件或目录 服务器是在本地运行还是接受 Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?
此外,以下是我尝试使用rake db命令执行某些操作时出现的错误:
致命:角色“xxx”不存在 无法为{“adapter”=>“postgresql”,“encoding”=>“unicode”,“pool”=> 5,“database”=>“YelpClone_development”,“host”=&gt ; “本地主机”} 耙子流产了! ActiveRecord :: NoDatabaseError:致命:角色“xxx”不存在
上面的'xxx'是我的用户名。我不确定它的用户名是来自我的旧Mac还是我的新Windows机器。我试图在rails项目中编辑database.yml,但结果相同。
关于角色错误查看this topic,我尝试使用命令“sudo -u postgres -i”,这会导致另一个错误:
sudo:setresuid()[1000,112,1000] - > [-1,0,-1]:不允许操作 sudo:无法设置runas组向量:不允许操作 sudo:无法mkdir / var / run / sudo:权限被拒绝 xxx的[sudo]密码: sudo:PERM_ROOT:setresuid(0,-1,0):不允许操作 xxx不在sudoers文件中。将报告此事件。
再一次'xxx'是我的用户名。现在我开始怀疑所有这些东西都没有正确安装。但我不确定如何检查。我现在尝试重新安装postgres大约5-6次。任何人都可以对这个烂摊子有所了解吗?
答案 0 :(得分:0)
我找到了解决这个问题的方法,我想如果其他人遇到同样的问题,我会发布解决方法:
我按照this page上的说明查看了特定于WSL(Linux子系统)的问题,特别是由用户leafofLegend发布的。
我遇到的主要问题是卡在第7步。我不得不将我的postgres安装降级到9.3,以便让PGAdmin 3而不是4,因为它不再具有服务器配置的编辑功能。第二个问题是无法访问〜/ .bashrc文件。我试图在原子(通过终端)打开它,但每次都会显示一个空白文件。或者,如果我导航到Windows上的文件并在那里打开它,它将被损坏并且不能正确地提供给终端。 您无法使用Windows工具编辑linux文件。因此,我必须使用nano编辑器编辑〜。/ bashrc文件,如步骤9中所述。
以上步骤解决了大部分问题,即安装Windows的窗口与WSL终端友好。完成其余步骤后,我现在可以运行rake DB命令并创建新的dbs。