当前位置: 首页 > 知识库问答 >
问题:

在Windows上运行的Ubuntu bash上设置PostgreSQL

鞠宏恺
2023-03-14

我最近在Windows上运行的Ubuntu bash上安装并设置了rails作为Linux子系统。我能够顺利地启动rails,并在我的Windows C:/驱动器上创建一个新的rails应用程序。我尝试直接从postgresql.org/downloads/windows网站下载PSQL,但是遇到了一些问题,所以我取消了,然后按照本教程的安装PostgresQL部分进行操作。唯一的问题是,先前被取消的下载被设置为监听默认端口5432,它似乎一直占用该端口,因为第二次安装要求它必须使用端口5433。

编辑:看起来原来的PSQL已经成功安装,因为它出现在我的程序列表中,我可以卸载它,但得到一个错误警告,即数据文件夹没有被删除。在卸载并且只安装了一个PSQL副本之后,当运行下面的< code>sudo服务postgresql start时,我仍然得到相同的错误。

编辑编辑:我完全卸载了PSQL的两个版本,并重新安装了链接教程中的版本,它消除了我遇到的第二个错误。然而,我的“pg”gem仍然没有捆绑安装。

一旦完成,我尝试将我现有的轨道应用程序切换到postgresql。我更新了数据库.yml 文件,并将“pg”Gem 添加到我的 Gem 文件中。但是,我无法捆绑安装。当我尝试时,我收到此错误:

Fetching pg 1.0.0
Installing pg 1.0.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /home/<user_profile>/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pg-1.0.0/ext
/home/<user_profile>/.rbenv/versions/2.5.1/bin/ruby -r ./siteconf20180717-4727-vex5p2.rb extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a
client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a
client-side application.
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/home/<user_profile>/.rbenv/versions/2.5.1/bin/$(RUBY_BASE_NAME)
        --with-pg
        --without-pg
        --enable-windows-cross
        --disable-windows-cross
        --with-pg-config
        --without-pg-config
        --with-pg_config
        --without-pg_config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /home/<user_profile>/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/pg-1.0.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/<user_profile>/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pg-1.0.0 for
inspection.
Results logged to
/home/<user_profile>/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/pg-1.0.0/gem_make.out

An error occurred while installing pg (1.0.0), and Bundler cannot continue.
Make sure that `gem install pg -v '1.0.0' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  pg

编辑:以下已解决,请参阅上面的第二次编辑。

类似地,当我尝试使用< code > sudo service postgresql start 从命令行启动PostgreSQL时,我得到以下结果:

$ sudo service postgresql start
 * Starting PostgreSQL 9.5 database server                                                                            * The PostgreSQL server failed to start. Please check the log output:
2018-07-17 14:59:26 DST [4858-1] LOG:  could not bind IPv4 socket: Permission denied
2018-07-17 14:59:26 DST [4858-2] HINT:  Is another postmaster already running on port 5433? If not, wait a few seconds and retry.
2018-07-17 14:59:26 DST [4858-3] WARNING:  could not create listen socket for "localhost"
2018-07-17 14:59:26 DST [4858-4] FATAL:  could not create any TCP/IP sockets

有谁知道在我的环境中安装PostgresQL出了什么问题,以及如何让它在我的Ubuntu外壳上成功运行?

共有1个答案

袁宜民
2023-03-14

找到了解决这些问题的方法。

问题# 1-“pg”gem未安装在bash中执行以下命令:

  1. sudo apt-get安装libpq-dev
  2. gem install pg
  3. 捆绑安装

问题#2 - postgresql无法在不崩溃的情况下启动

卸载计算机上PSQL的所有版本,然后重新安装一个。安装失败,第二个版本正在共享其数据文件夹,并导致我使用的安装出错。

 类似资料:
  • 问题内容: 可以在调用“ java jar jar_name.jar”时指定要使用的JVM。我的机器上安装了两个JVM。我无法更改JAVA_HOME,因为它可能会破坏所有准备就绪的代码。 亲切的问候 史提芬 问题答案: 是的-仅显式提供java.exe的路径。例如: 对于正在运行的命令外壳,最简单的方法是: 例如,这是一个完整的会话,显示我的默认JVM,然后是路径的更改,然后是新的: 但是,这不会

  • 我有一台带有Intel CPU的Windows机器(在引导菜单上启用VMX)。我使用VirtualBox在上面运行Ubuntu Guest。我在上面运行qemu,以运行另一个Guest OS,使用kvm(选项)。 我在尝试插入kvm-intel模块时收到以下错误: 我已经检查了来宾操作系统中的vpx标志,但我也没有看到 有没有办法在来宾Ubuntu操作系统中启用kvm支持,以便我可以在Ubuntu

  • 问题内容: 我有一个php脚本,想按计划运行。我在Windows上使用本地Web服务器(WAMP服务器),并且需要一种 每10分钟 运行 一次 的方法。 如何在Windows的localhost上的PHP脚本上运行cron作业? 问题答案: 最近,在进行长期从www那里获取一些链接的测试时,我遇到了一些问题,无法在Windows 7的localhost(WAMP服务器)上的php脚本上运行cron

  • 问题内容: 运行Airflow的常规说明不适用于Windows环境: Airflow实用程序在命令行中不可用,我在其他地方找不到要手动添加的实用程序。Airflow如何在Windows上运行? 问题答案: 您可以在Windows中激活,并直接按照本教程进行操作。我能够按照上面的步骤启动并成功运行。 安装完成后,请进行编辑以将所有配置指向Windows系统中的某个位置,而不是lxss(ubuntu)

  • 问题内容: 我环顾了一阵子,我很惊讶地发现Gunicorn是否在Windows上运行,没有任何信息。有谁知道是这种情况,如果是,我在哪里可以找到有关它的文档? 问题答案: Gunicorn用于UNIX环境,并且与Windows不兼容。另外,有关更多信息,请参阅它的文档。