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

请教下 centos 依赖的问题

  •  
  •   weifan · 2021-04-11 23:01:19 +08:00 · 3067 次点击
    这是一个创建于 1329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    image.png

    安装 mysql 提示,依赖版本高了,像这种问题,就要使用 RPM 包安装的方式,有什么可行的解决方法、思路?求指教

    目前试过的有

    1. 编译 openssl,软链接过去,但是后来发现好事是依赖的问题,不行!
    2. 下载 openssl rpm 包,强制安装,也不行
    第 1 条附言  ·  2021-04-12 09:51:29 +08:00

    抱歉,忘记说了,yum localinstall <mysql_path> 的方式也是报依赖高的问题

    image.png

    第 2 条附言  ·  2021-04-12 10:11:22 +08:00

    环境

    有网,源的方式还是报依赖的问题

    image.png

    问题

    mysql 的依赖系统有,但版本高了,装不上。

    image.png

    第 3 条附言  ·  2021-04-12 10:54:49 +08:00

    image.png

    服务器是 arm,问题是 mysql 需要低版本的依赖,而系统带了更高版本的依赖库。

    编译可以解决 mysql 的问题,但是我要解决这个依赖库版本高的问题,因为不只 mysql 对这个依赖库有版本要求,还有其他的包也是这个依赖问题,所以我想解决依赖版本高的问题。

    37 条回复    2021-04-18 03:48:22 +08:00
    yyyb
        1
    yyyb  
       2021-04-11 23:12:50 +08:00
    为啥不用 yum 呢?
    0ZXYDDu796nVCFxq
        2
    0ZXYDDu796nVCFxq  
       2021-04-11 23:17:28 +08:00
    不是这样安装的。

    正确方法
    1. 打开 https://repo.mysql.com/yum/mysql-8.0-community/el/7/aarch64/ ,如果你的 CentOS 是 6 或者 8,或者不同架构比如 x86_64,退回相应的目录重新选择
    2. 下载 这里的 mysql80-community-release-el7-3.noarch.rpm ,可能新版本的文件名会有变动
    3. yum 就可以安装了
    dzdh
        3
    dzdh  
       2021-04-12 00:01:12 +08:00
    同问为啥不用 dnf 呢。 无网环境么
    huangsen365
        4
    huangsen365  
       2021-04-12 00:34:13 +08:00 via iPhone
    如果是测试环境直接使用 docker 容器一键部署
    https://hub.docker.com/_/mysql
    gBurnX
        5
    gBurnX  
       2021-04-12 00:45:14 +08:00
    1.安装 OS 。

    随便找一台 64 核的物理服务器,安装 CentOS 7.6.1810 x64 。下面这个链接,用迅雷 vip 下载有资源。

    http://mirrors.oit.uci.edu/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Everything-1810.iso

    下载后安装。安装后用 xshell 以 root 模式登陆。

    xshell 属于 Xmanager 5,在百度搜 Xmanager 5,5rOo5YaM56CB77yaMTAxMjEwLTQ1MDc4OS0xNDcyMDA=


    2.安装 Mysql 8.0.23

    https://dev.mysql.com/downloads/mysql/

    选择 Red Hat......,然后 Ctrl + F 在网页里搜 [mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar] ,853.6MB 的那个。


    3.开始安装
    mkdir /tmp/installMysql8.0.23

    cd /tmp/installMysql8.0.23

    把 mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar 拷贝到这个目录。

    tar -xvf mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar

    yum -y localinstall mysql-community-common-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-client-plugins-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-libs-8.0.23-1.el7.x86_64.rpm

    #fix:如果提示 Removing: 1:mariadb-libs-5.5.60-1.el7_5.x86_64 (@anaconda)

    # 则 yum remove mariadb-libs-5.5.60-1.el7_5.x86_64

    yum -y localinstall mysql-community-libs-compat-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-client-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-devel-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-server-8.0.23-1.el7.x86_64.rpm

    安装完毕,现在可以:
    rm -rf mysql-*


    4.后续步骤:

    开机验证 mysqld 服务是否自动运行

    配置防火墙允许远程连接

    另找一台 2TB 内存的物理服务器,安装 Windows,再来安装 Mysql workbench,用来连接 Mysql 数据库。

    如果是初学者,可以搜 Mysql 样例数据库 world_x 或 sakila,来学习导入、查询、备份、如何快速删库跑路。

    其中备份又分离线备份与在线备份,在线备份要注意与开发和 DBA 讨论,别把库给死锁了...

    然后就是双机热备、或高级副本+分片集群等等..
    mikeguan
        6
    mikeguan  
       2021-04-12 00:48:10 +08:00 via Android
    首先看你安装的软件可以判断出是 arm64 的 CentOS7
    再看提示的依赖,这些应该都是 openssl1.0 里面的库
    正常 CentOS7 这个是随系统自带的
    为了验证特地看了下 arm64 位的 CentOS7 依然默认是 openssl1.0,到了 CentOS8 才是默认 openssl1.1
    总结就是你自己没搞清楚需要做什么,建议补基础
    msg7086
        7
    msg7086  
       2021-04-12 04:12:51 +08:00 via Android
    这是 arm 的服务器吗?
    zhoudaiyu
        8
    zhoudaiyu  
       2021-04-12 06:25:36 +08:00 via iPhone
    试试 yum localinstall xxx.rpm
    m4d3bug
        9
    m4d3bug  
       2021-04-12 08:11:35 +08:00 via Android
    yum localinstall
    yum whatprovides
    CallMeReznov
        10
    CallMeReznov  
       2021-04-12 09:17:51 +08:00
    把依赖都下载齐以后 localinstall 我专网环境都是这样装的.
    centos ubuntu 都是.
    weifan
        11
    weifan  
    OP
       2021-04-12 09:49:27 +08:00
    @gstqc 源的安装方式也是下载 rpm 包啊,一样的
    weifan
        12
    weifan  
    OP
       2021-04-12 09:53:51 +08:00
    @gBurnX 你这适用无网环境,用离线包+挂本地源的方式。但我这边是不是这个问题😂
    0ZXYDDu796nVCFxq
        13
    0ZXYDDu796nVCFxq  
       2021-04-12 09:56:27 +08:00 via Android
    @weifan 不是的,那个安装包只是仓库的包
    wps353
        14
    wps353  
       2021-04-12 10:07:16 +08:00
    直接下载一个 glibc 的二进制包,直接开箱使用。
    weifan
        15
    weifan  
    OP
       2021-04-12 10:13:35 +08:00
    @gstqc 一样的啦,你可以试试!源安装也是下载 RPM 包,然后会自动解决依赖,但我这个问题不是没找到依赖,我这个是依赖装不上,因为依赖系统已经有了,但版本高了!
    skiy
        16
    skiy  
       2021-04-12 10:14:58 +08:00
    编译安装,不要用 RPM 包看看?
    retanoj
        17
    retanoj  
       2021-04-12 10:22:26 +08:00
    不能降低现在 openssl 的版本吗?
    retanoj
        18
    retanoj  
       2021-04-12 10:28:42 +08:00
    @skiy

    编译安装的话,应该是先得编译 OpenSSL 1.0,再编译 MySQL 了吧
    0ZXYDDu796nVCFxq
        19
    0ZXYDDu796nVCFxq  
       2021-04-12 10:44:18 +08:00
    @weifan
    我特意装台新虚拟机测试了下
    测试命令:

    # cat /etc/redhat-release
    CentOS Linux release 7.9.2009 (Core)

    # rpm -ivh https://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql80-community-release-el7-3.noarch.rpm
    # yum install mysql-community-server

    # mysqld --version
    /usr/sbin/mysqld Ver 8.0.23 for Linux on x86_64 (MySQL Community Server - GPL)

    完全没问题
    0ZXYDDu796nVCFxq
        20
    0ZXYDDu796nVCFxq  
       2021-04-12 10:46:08 +08:00
    安装结果:

    Installed:
    mysql-community-server.x86_64 0:8.0.23-1.el7

    Dependency Installed:
    groff-base.x86_64 0:1.22.2-8.el7 libaio.x86_64 0:0.3.109-13.el7
    mysql-community-client.x86_64 0:8.0.23-1.el7 mysql-community-client-plugins.x86_64 0:8.0.23-1.el7
    mysql-community-common.x86_64 0:8.0.23-1.el7 mysql-community-libs.x86_64 0:8.0.23-1.el7
    net-tools.x86_64 0:2.0-0.25.20131004git.el7 numactl-libs.x86_64 0:2.0.12-5.el7
    perl.x86_64 4:5.16.3-299.el7_9 perl-Carp.noarch 0:1.26-244.el7
    perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7
    perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7
    perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-3.el7
    perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-PathTools.x86_64 0:3.40-5.el7
    perl-Pod-Escapes.noarch 1:1.04-299.el7_9 perl-Pod-Perldoc.noarch 0:3.20-4.el7
    perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7
    perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-5.el7
    perl-Storable.x86_64 0:2.45-3.el7 perl-Text-ParseWords.noarch 0:3.29-4.el7
    perl-Time-HiRes.x86_64 4:1.9725-3.el7 perl-Time-Local.noarch 0:1.2300-2.el7
    perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-299.el7_9
    perl-macros.x86_64 4:5.16.3-299.el7_9 perl-parent.noarch 1:0.225-244.el7
    perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7
    perl-threads-shared.x86_64 0:1.43-6.el7
    0ZXYDDu796nVCFxq
        21
    0ZXYDDu796nVCFxq  
       2021-04-12 10:47:15 +08:00
    # ldd /usr/sbin/mysqld
    linux-vdso.so.1 => (0x00007fffa1120000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f318bfd8000)
    libprotobuf-lite.so.3.11.4 => /usr/lib64/mysql/private/libprotobuf-lite.so.3.11.4 (0x00007f318c377000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f318bda1000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f318bb99000)
    libssl.so.10 => /lib64/libssl.so.10 (0x00007f318b927000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f318b4c4000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f318b2c0000)
    libaio.so.1 => /lib64/libaio.so.1 (0x00007f318b0be000)
    libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f318aeb2000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f318abaa000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f318a8a8000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f318a692000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f318a2c4000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f318c1f4000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007f318a0c1000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f3189e74000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f3189b8b000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f3189987000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f3189754000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f318953e000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f318932e000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f318912a000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f3188f10000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f3188ce9000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f3188a87000)
    weifan
        22
    weifan  
    OP
       2021-04-12 10:47:23 +08:00
    @retanoj make 、make install 降了 openssl 的版本,但是它库好像没降,还是库也要操作什么?
    iloveayu
        23
    iloveayu  
       2021-04-12 10:48:03 +08:00
    先 uname -r 给带伙看看你用的是不是 ARM 架构服务器?
    weifan
        24
    weifan  
    OP
       2021-04-12 10:49:11 +08:00
    @gstqc 😂 你仔细看下,不是 x86,我是 arm !
    0ZXYDDu796nVCFxq
        25
    0ZXYDDu796nVCFxq  
       2021-04-12 10:50:53 +08:00
    @weifan 跟架构有啥关系
    internelp
        26
    internelp  
       2021-04-12 10:52:27 +08:00
    @weifan 你 centos 是什么版本呀
    retanoj
        27
    retanoj  
       2021-04-12 11:04:28 +08:00
    @weifan
    https://www.123si.org/os/article/openssl-upgrade-or-degradation-of-centos-system/
    参考一下降级方案
    `make install` 之后应该还需要改一些软连接
    weifan
        28
    weifan  
    OP
       2021-04-12 11:31:43 +08:00
    @retanoj 我做软链接了,但是没成功,没看到有这个库 libssl.so
    weifan
        29
    weifan  
    OP
       2021-04-12 11:39:37 +08:00
    gBurnX
        30
    gBurnX  
       2021-04-12 11:40:35 +08:00
    @weifan

    我这种也是需要网络来解决部分冲突的...

    方案都给了你,照抄不就行了..
    retanoj
        31
    retanoj  
       2021-04-12 11:56:02 +08:00
    @weifan
    需要看一下 /usr/lib64/libssl.so 指哪去了
    以及,如果是裸着`make install`,我不清楚会不会覆盖旧有的 openssl 1.1.1 部分文件或怎样。。
    skiy
        32
    skiy  
       2021-04-12 13:45:56 +08:00
    @retanoj 按理来说,如果包里的依赖是这样子的,那还是得安装的。但我的也是 OpenSSL 1.1.1k FIPS 25 Mar 2021, 也能安装 mysql 8 啊。
    weifan
        33
    weifan  
    OP
       2021-04-12 14:18:28 +08:00
    @gBurnX 我说过了,我这边不是你理解的问题!
    weifan
        34
    weifan  
    OP
       2021-04-12 14:26:13 +08:00
    @retanoj #31 /usr/lib64/ 下的库还是原来的,编译后似乎没有 libssl 那两个库
    ![image.png]( https://pic.rmb.bdstatic.com/bjh/1b7de1cfa3a4591ed91fdf73a124178f.png)
    ![image.png]( https://pic.rmb.bdstatic.com/bjh/cba92e8407d427df28e22e3fef9b9eed.png)
    retanoj
        35
    retanoj  
       2021-04-13 10:31:43 +08:00
    @weifan
    我在 docker 下尝试了一下。
    编译旧版 openssl 安装,是会有 lib.so/libcrpyt.so 的,但是不解决问题。
    yum install compat-openssl10.x86_64 可以解决 lib.so.10 和 libcrypt.so.10 的问题,但我这边又遇到了缺失新的依赖。

    最后我还是靠 https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm 这个源来装的 mysql-server
    vivisidea
        36
    vivisidea  
       2021-04-13 23:00:05 +08:00
    直接下 libc 的二进制包

    https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.22-el7-x86_64.tar.gz

    最近正好配置过 MySQL 主备,力推 ansible,搞一次,到处部署,效率极高
    参考

    https://www.jianshu.com/p/f79db0e5f37c
    liuxu
        37
    liuxu  
       2021-04-18 03:48:22 +08:00
    拉鸡 centos,看我 gentoo

    localhost ~ # equery belongs /lib64/libcrypt.so.1
    * Searching for /lib64/libcrypt.so.1 ...
    sys-libs/glibc-2.32-r5 (/lib64/libcrypt-2.32.so)
    sys-libs/glibc-2.32-r5 (/lib64/libcrypt.so.1 -> libcrypt-2.32.so)

    localhost ~ # equery belongs /usr/lib64/libssl.so
    * Searching for /usr/lib64/libssl.so ...
    dev-libs/openssl-1.1.1i (/usr/lib64/libssl.so.1.1)
    dev-libs/openssl-1.1.1i (/usr/lib64/libssl.so -> libssl.so.1.1)


    直接装 sys-libs/glibc 和 dev-libs/openssl 就可以了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:37 · PVG 04:37 · LAX 12:37 · JFK 15:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.