Ubuntu20.04和22.04离线安装PostgreSQL14

打印 上一主题 下一主题

主题 954|帖子 954|积分 2862

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天安装 Postgresql14 遇到一个问题, 目标服务器只有内网, 内网提供标准的apt仓库, 但是因为不能连接外网, 所以没法添加第三方仓库, 这样安装pg14就成了问题.
从pg的官网看, https://www.postgresql.org/download/, 对于Linux, pg只提供仓库和源码两种方式, 因此不能访问外网时, 貌似只有源码编译这条路. 因为源码编译费时费力并且安装阶段需要自行配置, 容易出错. 对于机器上只需要安装一个实例的场景, 能用仓库还是用仓库.
如果还有一台安装了同样发行版, 并且可以上网的机器, 可以通过这台机器将离线安装包下载下来, 再传到目标机器上安装. 下载离线安装包和中转机器是否已经安装此软件无关, 即使已经安装, 也可以下载
步骤一: 按正常安装方式添加第三方仓库
  1. # Create the file repository configuration:
  2. sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
  3. # Import the repository signing key:
  4. wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
  5. # Update the package lists:
  6. sudo apt-get update
复制代码
这时候通过下面的命令可以看到postgresql的安装候选
  1. $ apt-cache show postgresql
  2. Package: postgresql
  3. Source: postgresql-common (243.pgdg20.04+1)
  4. Version: 14+243.pgdg20.04+1
  5. Architecture: all
  6. Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
  7. Installed-Size: 70
  8. Depends: postgresql-14
  9. Suggests: postgresql-doc
  10. Priority: optional
  11. Section: database
  12. Filename: pool/main/p/postgresql-common/postgresql_14+243.pgdg20.04+1_all.deb
  13. Size: 67068
  14. ...
  15. Package: postgresql
  16. Architecture: all
  17. Version: 12+214ubuntu0.1
  18. Priority: optional
  19. Section: database
  20. Source: postgresql-common (214ubuntu0.1)
  21. Origin: Ubuntu
  22. Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
  23. Original-Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
  24. Bugs: https://bugs.launchpad.net/ubuntu/+filebug
  25. Installed-Size: 66
  26. Depends: postgresql-12
  27. Suggests: postgresql-doc
  28. Filename: pool/main/p/postgresql-common/postgresql_12+214ubuntu0.1_all.deb
  29. Size: 3924
  30. ...
  31. Package: postgresql
  32. Architecture: all
  33. Version: 12+214
  34. Priority: optional
  35. Section: database
  36. Source: postgresql-common (214)
  37. ...
复制代码
可以看到, 有三个候选, 其中版本14排在最前面, 如果apt install, 会安装最前面这个
步骤二: 查看依赖

前一步确定了默认安装的版本是需要的版本14后, 就可以通过apt-rdepends命令查看安装包的软件依赖关系, 这是一个很长的列表, 下面省略了大部分的内容, 仅列出一些和pg安装相关的包
  1. $ apt-rdepends postgresql
  2. Reading package lists... Done
  3. Building dependency tree      
  4. Reading state information... Done
  5. postgresql
  6.   Depends: postgresql-14
  7. postgresql-14
  8.   Depends: debconf (>= 0.5)
  9.   ...
  10.   Depends: locales-all
  11.   Depends: postgresql-client-14
  12.   Depends: postgresql-common (>= 229~)
  13.   Depends: ssl-cert
  14.   Depends: tzdata
  15.   Depends: zlib1g (>= 1:1.1.4)
  16. debconf
  17.   PreDepends: perl-base (>= 5.20.1-3~)
  18. perl-base
  19. libpq5
  20. postgresql-client-14
  21.   Depends: postgresql-client-common (>= 182~)
  22. postgresql-client-common
  23.   Depends: pgdg-keyring
  24. postgresql-common
  25.   Depends: postgresql-client-common (= 243.pgdg20.04+1)
  26. ...
  27. libattr1
  28.   Depends: libc6 (>= 2.4)
复制代码
步骤三: 下载deb安装包

通过这个依赖关系, 能大概确定第一步需要下载的安装包, 然后通过apt download命令下载
  1. apt download postgresql-14 postgresql-client-14 postgresql-common postgresql-client-common
复制代码
下载之后的文件
  1. $ ll
  2. total 17316
  3. -rw-r--r-- 1 milton milton 15785632 Aug 11 09:35 postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
  4. -rw-r--r-- 1 milton milton  1617564 Aug 11 09:35 postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
  5. -rw-r--r-- 1 milton milton    91896 Sep  8 14:07 postgresql-client-common_243.pgdg20.04+1_all.deb
  6. -rw-r--r-- 1 milton milton   231472 Sep  8 14:07 postgresql-common_243.pgdg20.04+1_all.deb
复制代码
步骤四: 安装并补充下载

这些文件传到目标机器上后, 按依赖关系逆序安装,
  1. sudo dpkg -i pgdg-keyring_2018.2_all.deb
  2. sudo dpkg -i postgresql-client-common_243.pgdg20.04+1_all.deb
  3. sudo dpkg -i postgresql-common_243.pgdg20.04+1_all.deb
  4. sudo apt -f install
  5. sudo dpkg -i postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
  6. sudo dpkg -i libpq5_14.5-1.pgdg20.04+1_amd64.deb
  7. sudo dpkg -i postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
  8. sudo dpkg -i postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
  9. sudo apt -f install
复制代码
安装的过程中, 会提示依赖缺失, 这会有两种情况, 一种是在标准仓库中存在的, 可以直接通过下面的命令自动安装
  1. sudo apt -f install
复制代码
另一种是在标准仓库中不存在的, 需要在中转机器上通过apt download下载之后再传到目标机器安装. 对应pg14, 最后完整的下载文件列表为
  1. $ ll
  2. total 17500
  3. -rw-r--r-- 1 milton milton   172828 Aug 11 09:34 libpq5_14.5-1.pgdg20.04+1_amd64.deb
  4. -rw-r--r-- 1 milton milton    10666 Nov 15  2018 pgdg-keyring_2018.2_all.deb
  5. -rw-r--r-- 1 milton milton 15785632 Aug 11 09:35 postgresql-14_14.5-1.pgdg20.04+1_amd64.deb
  6. -rw-r--r-- 1 milton milton  1617564 Aug 11 09:35 postgresql-client-14_14.5-1.pgdg20.04+1_amd64.deb
  7. -rw-r--r-- 1 milton milton    91896 Sep  8 14:07 postgresql-client-common_243.pgdg20.04+1_all.deb
  8. -rw-r--r-- 1 milton milton   231472 Sep  8 14:07 postgresql-common_243.pgdg20.04+1_all.deb
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表