【问题标题】:pg_config - how to change postgres versionspg_config - 如何更改 postgres 版本
【发布时间】:2021-01-01 06:21:32
【问题描述】:

默认情况下,我在两台 ubuntu 14 机器上安装了 postgres 10 版本,但我在两台机器上安装了 postgres 9.6。

但是在其中一个上 pg_config 给我:

VERSION = PostgreSQL 9.6.6

还有一个:

VERSION = PostgreSQL 10.1

它们在以下位置具有相同的 libpq-dev 包:

dpkg -l | grep libpq-dev

libpq-dev  10.1-1.pgdg14.04+1  amd64 header files for libpq5 (PostgreSQL library)

所以我想知道有没有办法让我更改安装的版本,它给我 postgres 9.6 而不是 postgres 10.01?也许使用 pg_config 文件?

Tnx, 汤姆

更新: 在仍然显示 postgres 10 的实例上,这是结果(表明它没有安装):

ii  pgdg-keyring                         2017.3                                     all          keyring for apt.postgresql.org
ii  postgresql-9.6                       9.6.6-1.pgdg14.04+1                        amd64        object-relational SQL database, version 9.6 server
ii  postgresql-client-9.6                9.6.6-1.pgdg14.04+1                        amd64        front-end programs for PostgreSQL 9.6
ii  postgresql-client-common             189.pgdg14.04+1                            all          manager for multiple PostgreSQL client versions
ii  postgresql-common                    189.pgdg14.04+1                            all          PostgreSQL database-cluster manager
ii  postgresql-contrib-9.6               9.6.6-1.pgdg14.04+1                        amd64        additional facilities for PostgreSQL

【问题讨论】:

  • 卸载 Postgres 10,然后安装 Postgres 9.6
  • 我这样做了,postgres 10 没有安装,但是 config_pg 仍然指向它!
  • 这一定是 Debian 软件包构建方式的怪异造成的。在标准 PostgreSQL 中,pg_config 是一个可执行文件,没有 shell 脚本。你可能会问包装工...
  • 我正在开发 ubuntu 14,它上面的 pg_config 是一个 bash 脚本,其中包含一些逻辑......它首先查找 postgres-server-dev-XY 包 - 我安装了 postgres-server-dev-9.6 包,然后 pg_config 命令返回 postgres 9.6 已安装(不是 postgres 10)。这是一个快速的解决方案 - 如果有更好的解决方案,我会检查!

标签: postgresql ubuntu config


【解决方案1】:

重复:pg_config shows 9.4 instead of 9.3

开启:Debian、Ubuntu

bash /usr/bin/pg_config 已设置为查看并获取最新的 /usr/lib/postgresql/*/pg_config --version 可用

一个快速的解决方案,不是优雅和弱,可能是如下更新它。
然后将 env 更新为,例如:

export FORCE_PGCONFIG=/usr/lib/postgresql/12/pg_config

/usr/bin/pg_config(更新):

PGBINROOT="/usr/lib/postgresql/"
#redhat# PGBINROOT="/usr/pgsql-"
# user edit :
if [ -n "$FORCE_PGCONFIG" ]; then
    # up to you to set it properly...
    LATEST_SERVER_DEV="$FORCE_PGCONFIG";
else
    LATEST_SERVER_DEV=`ls -v $PGBINROOT*/bin/pg_config 2>/dev/null|tail -n1`;
fi
# end user edit ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

if [ -n "$LATEST_SERVER_DEV" ]; then
    exec "$LATEST_SERVER_DEV" "$@"
else
    if [ -x /usr/bin/pg_config.libpq-dev ]; then
    exec /usr/bin/pg_config.libpq-dev "$@"
    else
    echo "You need to install postgresql-server-dev-NN for building a server-side extension or libpq-dev for building a client-side application." >&2
    exit 1
    fi
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2020-07-05
    • 2018-09-19
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多