在国产某麒麟系统下通过 rpm 方式安装 postgresql11,postgresql11-server-11.10-2PGDG.el7.x86_64.rpm 依赖 libicu-50, 但是系统本身安装了 libicu-52, 但是 libicu-52 也不能卸载,依赖了一堆其他东西,一强制安装桌面就挂了,桌面上有给 rpm 签名加白名单的图形化软件。现在有什么方法解决不
1
CallMeReznov 2020-12-22 09:39:16 +08:00
docker ?
|
2
msg7086 2020-12-22 09:41:24 +08:00
一般 rpm 是绑定操作系统的。如果你那个系统不是基于 RHEL7 的话,直接装是会有问题的。
如果他是魔改现有系统的话,还是找原始的系统上的包吧…… |
3
zjyd OP @CallMeReznov docker 和虚拟化都不行,数据库太大担心性能等风险,而且方案上没有也不好这么弄
|
4
yulgang 2020-12-22 09:44:04 +08:00
升级到 12 、装个 52 不冲突的包,里面包含 50 的、把 52 连接成 50 、虚拟化?
|
5
yulgang 2020-12-22 09:44:46 +08:00
系统降级?
|
6
zjyd OP @yulgang 做了软连接不行,下载了 pg13 还是依赖 52🤣,虚拟化大家怕有风险,系统降级也弄不了,这个系统是 xx 指定 xx 版本🤣🤣
|
7
lvzhiqiang 2020-12-22 10:29:36 +08:00
@zjyd 容器化是最方便的,数据独立挂载出来那有什么风险,最多就是性能会有点损耗,但是比你去折腾依赖方便稳定多了。 数据库数据定时做好备份,就不担心了。
|
8
lvzhiqiang 2020-12-22 10:32:14 +08:00
@lvzhiqiang 容器化本质就是被隔离的一个进程组。
|
10
m4d3bug 2020-12-22 10:33:14 +08:00 via Android
要么容器要么把麒麟的人找来给你适配
|
11
littlewing 2020-12-22 10:53:24 +08:00 via iPhone
自己编译 pg
|
12
AmrtaShiva 2020-12-22 12:41:02 +08:00 via iPhone
所谓的国产系统 魔改了很多东西 和通用发行版本不能 平行讨论 包也一样
|
14
tomychen 2020-12-22 14:17:47 +08:00
源码编译安装?
|
15
omph 2020-12-22 15:40:56 +08:00
[NixOS/patchelf: A small utility to modify the dynamic linker and RPATH of ELF executables]( https://github.com/NixOS/patchelf)
可能有用 |
16
dorothyREN 2020-12-22 15:44:59 +08:00
麒麟不是 debian 系的嘛,
|
17
freenull 2020-12-22 15:49:09 +08:00
拿到 postgresql11,postgresql11-server 的源码包,在 spec 文件修改 libicu-50 依赖或者将其删掉即可,然后重新编包,但这样可能会影响 postgresql11 的使用
|
18
defunct9 2020-12-22 15:54:19 +08:00 2
开 ssh,让我上去看看
|
19
freenull 2020-12-22 15:54:51 +08:00
特意看了下 postgresql11-server 的 spec 文件:
%if %icu Requires: libicu-devel %endif %if %icu BuildRequires: libicu-devel Requires: libicu %endif spec 文件并没有要求 libicu 的版本,这应该是编译环境决定的,建议楼主在麒麟上重编下 postgresq11-server,应该能够正常安装 |
20
12101111 2020-12-22 16:27:58 +08:00
icu 每次升级都要重新 rebuild 的,C++写的, ABI 不稳定, 但是 API 一般不会变的, 只能 rebuild 了.
另外 icu 这个依赖都是大户,编译都要好几个小时的那种 (dev-libs/icu-68.1:0/68.1::gentoo, ebuild scheduled for merge) causes rebuilds for: (dev-qt/qtwebengine-5.15.2:5/5.15::12101111-overlay, ebuild scheduled for merge) (dev-util/electron-11.1.1:11/11::12101111-overlay, ebuild scheduled for merge) (dev-util/electron-9.4.0:9/9::12101111-overlay, ebuild scheduled for merge) (net-libs/webkit-gtk-2.30.4:4/37::12101111-overlay, ebuild scheduled for merge) (dev-libs/libxml2-2.9.10-r4:2/2::gentoo, ebuild scheduled for merge) (media-gfx/imv-4.1.0-r1:0/0::gentoo, ebuild scheduled for merge) (www-client/chromium-89.0.4350.3:0/0::12101111-overlay, ebuild scheduled for merge) (www-client/firefox-84.0:0/84::12101111-overlay, ebuild scheduled for merge) (x11-misc/slop-7.5:0/7.5::gentoo, ebuild scheduled for merge) (dev-qt/qtcore-5.15.2:5/5.15.2::gentoo, ebuild scheduled for merge) (media-libs/harfbuzz-2.7.2:0/0.9.18::gentoo, ebuild scheduled for merge) (x11-libs/vte-0.60.3:2.91/2.91::gentoo, ebuild scheduled for merge) icu 是 Unicode 国际化库, 还经常有更新, 更新一下新 emoji 表什么的 |
21
yanqiyu 2020-12-22 16:47:15 +08:00
去找 postgresql 的 srpm (可以去 https://src.fedoraproject.org/rpms/postgresql 或者 https://koji.mbox.centos.org/koji/packageinfo?packageID=1932 )寻找对应的 srpm, 然后在你的系统下 yum/dnf builddep 然后 rpmbuild 一波
|
22
julyclyde 2020-12-22 19:49:08 +08:00
看包名,libicu-50 和 libicu-52 是相同的,应该不存在兼容问题(和 libicu50 、libicu52 是不同的概念)
可以强制安装上 至于为什么 pgsql 依赖 52,那估计是你用错了发行版的包 |
23
typetraits 2020-12-22 20:32:29 +08:00
@defunct9 #18 老哥,看你开了至少三年的 ssh 了,真的有人找你看过吗?
|
24
defunct9 2020-12-23 07:01:26 +08:00 via iPhone 2
@typetraits 貌似有。还不少
|