从源码安装PostgreSQL10至Ubuntu16:规避apt-upgrade升级问题咨询
核心结论
用make install源码编译安装PostgreSQL 10后,apt-update和apt-upgrade完全不会影响到这个版本的PostgreSQL,完全可以规避apt升级操作的干扰。
详细解释
apt包管理器只负责追踪和管理通过它自身安装的软件包(这些信息存在/var/lib/dpkg/status文件里)。而源码编译安装的PostgreSQL默认会被安装到/usr/local目录下(你也可以通过./configure --prefix指定自定义安装路径),这套文件系统和apt管理的/usr目录是完全隔离的——apt根本不知道这些文件的存在,自然不会在升级时去触碰它们。
至于你担心的依赖问题:
- 如果PostgreSQL的依赖是你通过apt安装的,这些依赖包依然会被apt升级,但只要依赖版本没有出现破坏性的API变更,通常不会影响源码安装的PostgreSQL运行;
- 如果你是在编译时一并从源码安装了依赖(这种情况比较少),那这些依赖也同样不受apt管理,不会被升级。
实操注意事项
- 清理旧版本:如果你之前已经用apt安装过PostgreSQL,一定要彻底卸载干净,避免两个版本出现端口冲突、配置文件混淆等问题。可以执行以下命令:
sudo apt-get purge postgresql* sudo apt-get autoremove sudo rm -rf /var/lib/postgresql/ /etc/postgresql/ - 手动维护成本:源码安装意味着你要自己负责后续的安全补丁、版本更新、服务配置(比如设置systemd服务自启),apt不会再帮你自动处理这些事情,需要你定期关注PostgreSQL官方的更新公告。
- 编译配置:编译前通过
./configure --help查看可选参数,比如指定安装路径、启用/禁用某些功能,确保编译出的版本符合你的需求。
内容的提问来源于stack exchange,提问作者Sarath S
相关产品推荐
相关产品推荐

