安装R包RMysql时遇依赖问题:yum安装mysql-devel与openssl-devel版本冲突
安装R包RMysql时遇依赖问题:yum安装mysql-devel与openssl-devel版本冲突
嗨,刚接触Linux就碰到这种依赖冲突的问题确实挺闹心的,别慌,我来一步步帮你搞定~
首先咱们得明确:安装RMysql必须依赖mysql-devel这个开发包,而你遇到的openssl冲突,大多是因为系统自带的openssl版本和yum仓库里的mysql-devel所要求的版本不匹配导致的。下面给你几个可行的解决办法,你可以根据自己的情况试试:
方法一:改用MySQL官方源安装mysql-devel(推荐)
系统自带的yum源里的mysql包版本可能比较老,和openssl兼容性差,换成官方源大概率能解决问题:
- 先清理可能存在的冲突包(如果之前装过不完整的mysql-devel可以执行,没装过就跳过):
sudo yum remove mysql-devel openssl-devel -y - 配置MySQL官方的YUM源:
创建一个新的repo文件:
然后根据你的Linux发行版粘贴对应的配置内容(比如CentOS 7的配置如下):sudo vi /etc/yum.repos.d/mysql-community.repo[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql - 导入MySQL的GPG密钥(确保包的合法性):
要是系统里没有这个密钥文件,你可以去MySQL官方下载对应的密钥保存到这个路径后再执行导入。sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql - 现在安装mysql-devel:
sudo yum install mysql-devel -y
方法二:降级openssl-devel到兼容版本
如果不想换源,也可以把openssl-devel降到和mysql-devel兼容的版本:
- 先查看当前系统里的openssl-devel版本:
rpm -qa | grep openssl-devel - 列出yum仓库里所有可用的openssl-devel版本:
yum --showduplicates list openssl-devel - 安装指定的兼容版本(比如找到的兼容版本是
1.0.2k-25.el7_9.x86_64,替换成你查到的版本):sudo yum install openssl-devel-1.0.2k-25.el7_9.x86_64 -y - 再安装mysql-devel:
sudo yum install mysql-devel -y
方法三:用yum的冲突绕过选项(临时救急,不推荐)
如果上面两种方法都不行,可以试试让yum跳过冲突或者选择最优版本:
- 跳过损坏的依赖安装:
sudo yum install mysql-devel --skip-broken -y - 让yum选择最兼容的版本安装:
sudo yum install mysql-devel --nobest -y
不过这种方法可能会导致部分依赖不完整,后续运行RMysql可能出问题,尽量优先用前两种方法。
最后安装RMysql包
等mysql-devel装完之后,打开R终端,执行:
install.packages("RMysql")
如果还是提示找不到mysql库,可以手动指定路径:
install.packages("RMysql", configure.args = "--with-mysql-lib=/usr/lib64/mysql --with-mysql-include=/usr/include/mysql")
备注:内容来源于stack exchange,提问作者surpavan




