马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天安装 Postgresql14 遇到一个问题, 目标服务器只有内网, 内网提供标准的apt仓库, 但是因为不能连接外网, 所以没法添加第三方仓库, 这样安装pg14就成了问题.
从pg的官网看, https://www.postgresql.org/download/, 对于Linux, pg只提供仓库和源码两种方式, 因此不能访问外网时, 貌似只有源码编译这条路. 因为源码编译费时费力并且安装阶段需要自行配置, 容易出错. 对于机器上只需要安装一个实例的场景, 能用仓库还是用仓库.
如果还有一台安装了同样发行版, 并且可以上网的机器, 可以通过这台机器将离线安装包下载下来, 再传到目标机器上安装. 下载离线安装包和中转机器是否已经安装此软件无关, 即使已经安装, 也可以下载
步骤一: 按正常安装方式添加第三方仓库
- # Create the file repository configuration:
- sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- # Import the repository signing key:
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- # Update the package lists:
- sudo apt-get update
复制代码 这时候通过下面的命令可以看到postgresql的安装候选- $ apt-cache show postgresql
- Package: postgresql
- Source: postgresql-common (243.pgdg20.04+1)
- Version: 14+243.pgdg20.04+1
- Architecture: all
- Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
- Installed-Size: 70
- Depends: postgresql-14
- Suggests: postgresql-doc
- Priority: optional
- Section: database
- Filename: pool/main/p/postgresql-common/postgresql_14+243.pgdg20.04+1_all.deb
- Size: 67068
- ...
- Package: postgresql
- Architecture: all
- Version: 12+214ubuntu0.1
- Priority: optional
- Section: database
- Source: postgresql-common (214ubuntu0.1)
- Origin: Ubuntu
- Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
- Original-Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
- Bugs: https://bugs.launchpad.net/ubuntu/+filebug
- Installed-Size: 66
- Depends: postgresql-12
- Suggests: postgresql-doc
- Filename: pool/main/p/postgresql-common/postgresql_12+214ubuntu0.1_all.deb
- Size: 3924
- ...
- Package: postgresql
- Architecture: all
- Version: 12+214
- Priority: optional
- Section: database
- Source: postgresql-common (214)
- ...
复制代码 可以看到, 有三个候选, 其中版本14排在最前面, 如果apt install, 会安装最前面这个
步骤二: 查看依赖
前一步确定了默认安装的版本是需要的版本14后, 就可以通过apt-rdepends命令查看安装包的软件依赖关系, 这是一个很长的列表, 下面省略了大部分的内容, 仅列出一些和pg安装相关的包- $ apt-rdepends postgresql
- Reading package lists... Done
- Building dependency tree
- Reading state information... Done
- postgresql
- Depends: postgresql-14
- postgresql-14
- Depends: debconf (>= 0.5)
- ...
- Depends: locales-all
- Depends: postgresql-client-14
- Depends: postgresql-common (>= 229~)
- Depends: ssl-cert
- Depends: tzdata
- Depends: zlib1g (>= 1:1.1.4)
- debconf
- PreDepends: perl-base (>= 5.20.1-3~)
- perl-base
- libpq5
- postgresql-client-14
- Depends: postgresql-client-common (>= 182~)
- postgresql-client-common
- Depends: pgdg-keyring
- postgresql-common
- Depends: postgresql-client-common (= 243.pgdg20.04+1)
- ...
- libattr1
- Depends: libc6 (>= 2.4)
复制代码 步骤三: 下载deb安装包
通过这个依赖关系, 能大概确定第一步需要下载的安装包, 然后通过apt download命令下载- apt download postgresql-14 postgresql-client-14 postgresql-common postgresql-client-common
复制代码 下载之后的文件- $ ll
- total 17316
- -rw-r--r-- 1 milton milton 15785632 Aug 11 09:35 postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
- -rw-r--r-- 1 milton milton 1617564 Aug 11 09:35 postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
- -rw-r--r-- 1 milton milton 91896 Sep 8 14:07 postgresql-client-common_243.pgdg20.04+1_all.deb
- -rw-r--r-- 1 milton milton 231472 Sep 8 14:07 postgresql-common_243.pgdg20.04+1_all.deb
复制代码 步骤四: 安装并补充下载
这些文件传到目标机器上后, 按依赖关系逆序安装,- sudo dpkg -i pgdg-keyring_2018.2_all.deb
- sudo dpkg -i postgresql-client-common_243.pgdg20.04+1_all.deb
- sudo dpkg -i postgresql-common_243.pgdg20.04+1_all.deb
- sudo apt -f install
- sudo dpkg -i postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
- sudo dpkg -i libpq5_14.5-1.pgdg20.04+1_amd64.deb
- sudo dpkg -i postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
- sudo dpkg -i postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
- sudo apt -f install
复制代码 安装的过程中, 会提示依赖缺失, 这会有两种情况, 一种是在标准仓库中存在的, 可以直接通过下面的命令自动安装另一种是在标准仓库中不存在的, 需要在中转机器上通过apt download下载之后再传到目标机器安装. 对应pg14, 最后完整的下载文件列表为- $ ll
- total 17500
- -rw-r--r-- 1 milton milton 172828 Aug 11 09:34 libpq5_14.5-1.pgdg20.04+1_amd64.deb
- -rw-r--r-- 1 milton milton 10666 Nov 15 2018 pgdg-keyring_2018.2_all.deb
- -rw-r--r-- 1 milton milton 15785632 Aug 11 09:35 postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
- -rw-r--r-- 1 milton milton 1617564 Aug 11 09:35 postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
- -rw-r--r-- 1 milton milton 91896 Sep 8 14:07 postgresql-client-common_243.pgdg20.04+1_all.deb
- -rw-r--r-- 1 milton milton 231472 Sep 8 14:07 postgresql-common_243.pgdg20.04+1_all.deb
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |