请教了一个 Linux 安装 rpm 的问题

2020-12-22 09:36:38 +08:00
 zjyd

在国产某麒麟系统下通过 rpm 方式安装 postgresql11,postgresql11-server-11.10-2PGDG.el7.x86_64.rpm 依赖 libicu-50, 但是系统本身安装了 libicu-52, 但是 libicu-52 也不能卸载,依赖了一堆其他东西,一强制安装桌面就挂了,桌面上有给 rpm 签名加白名单的图形化软件。现在有什么方法解决不

2352 次点击
所在节点    Linux
24 条回复
CallMeReznov
2020-12-22 09:39:16 +08:00
docker ?
msg7086
2020-12-22 09:41:24 +08:00
一般 rpm 是绑定操作系统的。如果你那个系统不是基于 RHEL7 的话,直接装是会有问题的。
如果他是魔改现有系统的话,还是找原始的系统上的包吧……
zjyd
2020-12-22 09:43:26 +08:00
@CallMeReznov docker 和虚拟化都不行,数据库太大担心性能等风险,而且方案上没有也不好这么弄
yulgang
2020-12-22 09:44:04 +08:00
升级到 12 、装个 52 不冲突的包,里面包含 50 的、把 52 连接成 50 、虚拟化?
yulgang
2020-12-22 09:44:46 +08:00
系统降级?
zjyd
2020-12-22 09:58:49 +08:00
@yulgang 做了软连接不行,下载了 pg13 还是依赖 52🤣,虚拟化大家怕有风险,系统降级也弄不了,这个系统是 xx 指定 xx 版本🤣🤣
lvzhiqiang
2020-12-22 10:29:36 +08:00
@zjyd 容器化是最方便的,数据独立挂载出来那有什么风险,最多就是性能会有点损耗,但是比你去折腾依赖方便稳定多了。 数据库数据定时做好备份,就不担心了。
lvzhiqiang
2020-12-22 10:32:14 +08:00
@lvzhiqiang 容器化本质就是被隔离的一个进程组。
m4d3bug
2020-12-22 10:32:35 +08:00
@zjyd 你都已经在未经认证测试的系统上安装无法满足依赖的软件,还谈什么风险?
m4d3bug
2020-12-22 10:33:14 +08:00
要么容器要么把麒麟的人找来给你适配
littlewing
2020-12-22 10:53:24 +08:00
自己编译 pg
AmrtaShiva
2020-12-22 12:41:02 +08:00
所谓的国产系统 魔改了很多东西 和通用发行版本不能 平行讨论 包也一样
no1xsyzy
2020-12-22 12:52:01 +08:00
@zjyd 你担心性能先把桌面卸载了。
docker 再怎么占性能甚至不如 i3wm 占性能多。
tomychen
2020-12-22 14:17:47 +08:00
源码编译安装?
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)
可能有用
dorothyREN
2020-12-22 15:44:59 +08:00
麒麟不是 debian 系的嘛,
freenull
2020-12-22 15:49:09 +08:00
拿到 postgresql11,postgresql11-server 的源码包,在 spec 文件修改 libicu-50 依赖或者将其删掉即可,然后重新编包,但这样可能会影响 postgresql11 的使用
defunct9
2020-12-22 15:54:19 +08:00
开 ssh,让我上去看看
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,应该能够正常安装
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 表什么的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/737710

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX