V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
zjyd
V2EX  ›  Linux

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

  •  
  •   zjyd · 2020-12-22 09:36:38 +08:00 · 2521 次点击
    这是一个创建于 1428 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    至于为什么 pgsql 依赖 52,那估计是你用错了发行版的包
    typetraits
        23
    typetraits  
       2020-12-22 20:32:29 +08:00
    @defunct9 #18 老哥,看你开了至少三年的 ssh 了,真的有人找你看过吗?
    defunct9
        24
    defunct9  
       2020-12-23 07:01:26 +08:00 via iPhone   ❤️ 2
    @typetraits 貌似有。还不少
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2833 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 15:17 · PVG 23:17 · LAX 07:17 · JFK 10:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.