默认情况下,我的两台 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
在: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
这是一个老问题,但让我在这里留下一些评论。当您为 Postgresql 安装一些库时,有些库会重现
pg_config
实用程序。因此,当您在终端中运行 pg_config
时,您可能会得到 PostgreSQL VERSION 9 而不是 PostgreSQL VERSION 10(实际安装的版本)。当您运行 sudo find / -name pg_config
时,pg_config
的两个目录将显示在您的终端中。通常,pg_config
第一个列出的目录是pg_config
命令的默认目录。当您运行第二个目录时,例如 /usr/lib/postgresql/12/pg_config --version
,它会提供您安装的版本。