rpm yum book
RPM(RedHat Package Manager)管理
rpm是一种在互联网下,打包及安装工具,安装时需要已下好rpm包。
| 命令 | 解释 |
| rpm -qa | (query all) 查询安装的所有rpm软件 |
| rpm -qa |grep mysql | 查询是否安装了mysql |
| rpm -ivh MySQL-server-5.5.32-1.el6.x86_64.rpm | (install=安装 verbose=提示 hash=进度条) 安装rpm包 |
| rpm -e MySQL-server-5.1.7-0.i386 --nodeps | 卸载rpm安装的软件 (其它样例: rpm -e jdk) |
| rpm -e --nodeps rpm包名称 | 强制卸载rpm, 就算别的rpm依赖了本rpm也忽视掉, --nodeps是NoDependencies的缩写 |
| rpm -U rpm包全路径名 | 升级rpm |
| rpm -qi tigervnc-server | 查看某个软件的版本信息 |
| rpm -qc tigervnc-server | 查看某个软件的配置文件有哪些 |
| rpm -ql tigervnc-server |grep bin | 查看某个软件有哪些bin |
yum(Yellow dog Updater)管理
从CentOS8开始 , dnf 取代了yum作为默认包管理工具的。对于旧版本的系统,仍然可以使用yum命令进行软件包管理。
yum repo list 查看仓库列表和包内容。
可以通过 cat /etc/yum.repos.d/CentOS-linux-Base.repo 查看该文件分析目前使用了哪些yum源
rpm -ivh安装需要虚拟机上有rpm包, 而yum 安装直接让虚拟机从云端下载
| 命令 | 解释 | |
| yum list | 查看所有yum方式安装的软件 | |
| yum list |grep mysql | 查看yum安装的mysql | |
| yum list installed mariadb* | 查看是否已安装了mariadb | 具体效果超链接 |
| yum install mysql | 安装mysql,带提示 | |
| yum install -y mysql | 安装mysql,不带提示 , 相当于一路按y通行 | |
| yum -y remove mysql-libs-5.1.61* | 卸载所有mysql-libs-5.1.61开头的包 | -y 意为不用询问 |
| yum update --exclude=perl | 更新除了perl之外的所有软件 | (验证貌似无效) |
| yum search "*nginx*" | 搜索 nginx 这个软件 | |
| yum provides "*nginx*" | 查看哪些仓库提供了 nginx 这个软件 | |
yum install --enablerepo=powertools libev-devel |
指定从 powertools 仓库中安装libev-devel |
📌有用 |
yum list installed softName
[root@centos7_3_1611 local]# yum list installed mariadb* Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cn99.com * extras: mirrors.cn99.com * updates: mirrors.cn99.com Installed Packages mariadb.x86_64 1:5.5.60-1.el7_5 @base mariadb-libs.x86_64 1:5.5.60-1.el7_5 @base
更换镜像源
切换到源配置文件目录, 删除所有镜像配置
cd /etc/yum.repos.d
rm -rf *.repo
下载新的CentOS-Base.repo 到/etc/yum.repos.d/ -o 参数指定下载到目标文件,没有则创建.
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
替换了镜像源后
yum clean all
yum makecache
yum -y update
库文件存在与确认[chatgpt]
-
确认库文件存在: 确保
libVNCServer和wsock32的库文件存在于系统中。你可以使用yum provides命令查找这些库文件的位置。yum provides '*libvncserver*'yum provides '*libwsock32*' -
检查库文件路径: 确保这些库文件的路径包含在你的
LD_LIBRARY_PATH环境变量中。export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
redhat安装yum
rpm包下载地址 http://mirrors.163.com/centos/7/os/x86_64/Packages/
主要参考以下三文章,需要自己理解:
Redhat-7配置yum源==>https://www.cnblogs.com/archer-wen/p/9643927.html
RedHat7 配置yum源==>https://www.cnblogs.com/Rexcnblog/p/11139306.html
Red Hat Enterprise Linux 7.3更换CentOS 7 yum源==>https://www.linuxidc.com/Linux/2018-12/155855.htm
4.清除原有缓存
使用命令 yum clean all 清除原来的缓存。
5.重新建立缓存
使用命令 yum makecache 重建缓存。
遇见异常
安装nginx时nginx安装错误:No package nginx available
yum makecache yum install epel-release yum install nginx
Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
解决方法
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
改成
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch #metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
conflicting requests
有冲突 那就重置下有冲突的模块 yum module reset perl-IO-Socket-SSL perl-libwww-perl
[root@hcss-ecs-a471 yum.repos.d]# yum install -y perl
Last metadata expiration check: 0:50:12 ago on Tue 09 Jul 2024 05:56:55 PM CST.
Modular dependency problems:Problem 1: conflicting requests
- nothing provides module(perl:5.26) needed by module perl-IO-Socket-SSL:2.066:8030020201222215140:1e4bbb35.x86_64
Problem 2: conflicting requests
- nothing provides module(perl:5.26) needed by module perl-libwww-perl:6.34:8030020201223164340:b967a9a2.x86_64
No match for argument: perl
Error: Unable to find a match: perl
[root@hcss-ecs-a471 yum.repos.d]#
[root@hcss-ecs-a471 yum.repos.d]# yum module reset perl-IO-Socket-SSL perl-libwww-perl
Last metadata expiration check: 0:53:08 ago on Tue 09 Jul 2024 05:56:55 PM CST.
Unable to find a match: libev-devel (无效, 但仍有参考价值)
安装 libev-devel 报错了
[root@hcss-ecs-a471 yum.repos.d]# yum install -y libev-devel
Last metadata expiration check: 1:05:17 ago on Tue 09 Jul 2024 05:56:55 PM CST.
No match for argument: libev-devel
Error: Unable to find a match: libev-devel
有时候遇到 a模块不能装, 可以先 搜索下有没有替代版, 可能它有更优解
yum search libev 发现有Plus版 libevdevPlus-devel
[root@hcss-ecs-a471 yum.repos.d]# yum search libev Last metadata expiration check: 1:13:02 ago on Tue 09 Jul 2024 05:56:55 PM CST. ================================================================================================================================================================================================================================================================================================================================================================================================ Name & Summary Matched: libev ================================================================================================================================================================================================================================================================================================================================================================================================= libevdevPlus.x86_64 : A C++ wrapper around libevdev libevdevPlus-devel.x86_64 : Development files for libevdevPlus libevent-doc.noarch : Development documentation for libevent libverto-libevent.i686 : libevent module for libverto libverto-libevent.x86_64 : libevent module for libverto ===================================================================================================================================================================================================================================================================================================================================================================================================== Name Matched: libev ====================================================================================================================================================================================================================================================================================================================================================================================================== libevent.x86_64 : Abstract asynchronous event notification library libevent.i686 : Abstract asynchronous event notification library ==================================================================================================================================================================================================================================================================================================================================================================================================== Summary Matched: libev ==================================================================================================================================================================================================================================================================================================================================================================================================== lua-event.x86_64 : This is a binding of libevent to Lua perl-EV.x86_64 : Wrapper for the libev high-performance event loop library python3-pyev.x86_64 : Python3 binding for the libev library
那就用plus版呗
[root@hcss-ecs-a471 yum.repos.d]# yum install -y libevdevPlus-devel
好吧, 还是没有用, 那只能源码安装了
libev 官网地址 https://libev.cn/base/install.html
在 CentOS 8 上使用源码编译 libdev 后,yum 还是无法识别依赖怎么办, chatgpt答 , 服了, 这么麻烦, 打住打住!
您遇到的问题是由于使用 make 和 make install 从源代码安装 libdev 导致的。当您使用此方法编译并安装库时,它通常会将库文件安装到系统目录(例如 /usr/local/lib 和 /usr/local/include)中。这使得库可供您的系统使用,但它不会更新系统的包数据库,而这是 yum 用于识别和管理已安装包及其依赖项的工具。
因此,当您尝试使用 yum 安装依赖于 libdev 的软件包时,它会在系统包数据库中找不到 libdev,因此会报告无法找到所需的依赖项 libev-devel。
要解决此问题,您有两个主要选择:
- 使用包管理器安装
libdev: 如果libdev可作为您 CentOS 8 系统的软件包,您可以使用适当的包管理器命令(例如yum或dnf)进行安装。这将确保库正确注册在系统包数据库中,并正确管理其依赖项。
sudo yum install libdev
- 为
libdev创建 Yum 存储库: 如果libdev不适用于您的系统作为软件包,您可以创建该库的自定义 Yum 存储库并从该存储库进行安装。这涉及创建具有必要元数据和软件包文件的存储库结构,然后配置yum以使用该存储库。
此过程比从软件包安装要复杂,但它允许您安装未针对您的系统正式打包的库。
完成上述任一方法安装 libdev 后,您应该可以使用 yum 无问题地安装依赖于 libdev 的软件包。
以下是关键点的摘要:
-
从源代码安装
libdev不会更新系统的包数据库,导致yum出现问题。 -
使用包管理器安装
libdev或创建自定义 Yum 存储库以正确管理依赖项。 -
正确安装
libdev后,yum应该能够解析其依赖项。
📌Centos8使用yum报错 Couldn‘t resolve host name for http://mirrorlist.centos.org/?release
进入到 /etc/yum.repos.d 目录 , 会看到一䧲文件, 其中 xx.repo是仓库地址配置文件 , xx.repo.rpmsave 是原版备份文件
[root@hcss-ecs-a471 yum.repos.d]# ll
total 112
-rw-r--r-- 1 root root 748 Jul 17 2023 CentOS-AppStream.repo.rpmsave
-rw-r--r-- 1 root root 729 Jul 9 16:45 CentOS-Base.repo.rpmsave
-rw-r--r-- 1 root root 815 Jul 17 2023 CentOS-centosplus.repo.rpmsave
-rw-r--r-- 1 root root 1337 Jul 17 2023 CentOS-CR.repo.rpmsave
-rw-r--r-- 1 root root 773 Jul 17 2023 CentOS-Extras.repo.rpmsave
-rw-r--r-- 1 root root 355 Jul 17 2023 CentOS-fasttrack.repo.rpmsave
-rw-r--r-- 1 root root 871 Jul 9 19:53 CentOS-Linux-AppStream.repo
-rw-r--r-- 1 root root 1036 Jul 9 17:27 CentOS-Linux-BaseOS.repo
-rw-r--r-- 1 root root 1130 Sep 15 2021 CentOS-Linux-ContinuousRelease.repo
-rw-r--r-- 1 root root 318 Sep 15 2021 CentOS-Linux-Debuginfo.repo
-rw-r--r-- 1 root root 732 Sep 15 2021 CentOS-Linux-Devel.repo
-rw-r--r-- 1 root root 860 Jul 9 19:53 CentOS-Linux-Extras.repo
-rw-r--r-- 1 root root 719 Sep 15 2021 CentOS-Linux-FastTrack.repo
-rw-r--r-- 1 root root 740 Sep 15 2021 CentOS-Linux-HighAvailability.repo
-rw-r--r-- 1 root root 693 Sep 15 2021 CentOS-Linux-Media.repo
-rw-r--r-- 1 root root 706 Sep 15 2021 CentOS-Linux-Plus.repo
-rw-r--r-- 1 root root 724 Sep 15 2021 CentOS-Linux-PowerTools.repo
-rw-r--r-- 1 root root 1124 Sep 15 2021 CentOS-Linux-Sources.repo
-rw-r--r-- 1 root root 753 Jul 17 2023 CentOS-PowerTools.repo.rpmsave
-rw-r--r-- 1 root root 2117 Jun 29 10:49 docker-ce.repo
-rw-r--r-- 1 root root 1513 Jul 17 2023 epel-modular.repo
-rw-r--r-- 1 root root 1680 Apr 17 2023 epel-modular.repo.rpmnew
-rw-r--r-- 1 root root 1450 Jul 17 2023 epel.repo
-rw-r--r-- 1 root root 1332 Apr 17 2023 epel.repo.rpmnew
-rw-r--r-- 1 root root 1779 Jun 28 03:06 epel-testing-modular.repo
-rw-r--r-- 1 root root 1431 Jun 28 03:06 epel-testing.repo
-rw-r--r-- 1 root root 1026 Jan 30 2019 rpmfusion-free-updates.repo
-rw-r--r-- 1 root root 1098 Jan 30 2019 rpmfusion-free-updates-testing.repo
我们把下面四个文件的仓库地址变更下
- CentOS-Linux-BaseOS.repo : 基本仓库
- CentOS-Linux-Extras.repo : 忽略解释
- CentOS-Linux-AppStream.repo : 忽略解释
- CentOS-Linux-PowerTools.repo : CentOS 8 / Rocky Linux 8 / RHEL 8 Linux / Alma Linux 等系统默认不启用PowerTools存储库。如果需要使用的话,可以通过下面的方式进行操作(临时指定存储库)
yum install --enablerepo=powertools libev-devel
把原配置注释掉 , 统一换成华为云的或阿里云的配置
BaseOS.repo
[baseos]
#20240709 bobo add
name=CentOS-$releasever - Base
baseurl=https://repo.huaweicloud.com/centos-vault/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Extras.repo
[extras]
#20240709 bobo add
name=CentOS-$releasever - Extras
baseurl=https://repo.huaweicloud.com/centos-vault/$contentdir/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
AppStream.repo
[appstream]
#20240709 bobo add
name=CentOS-$releasever - AppStream
baseurl=https://repo.huaweicloud.com/centos-vault/$contentdir/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
CentOS-Linux-PowerTools.repo
[powertools]
#20240709 bobo add
name=CentOS-$releasever - PowerTools
baseurl=https://repo.huaweicloud.com/centos-vault/$contentdir/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
最后清空yum, 重置缓存
yum clean all
yum makecache
本小节参考
Centos8使用yum报错 Couldn‘t resolve host name for http://mirrorlist.centos.org/?release ==> https://developer.aliyun.com/article/1252860?spm=5176.26934562.main.1.6bbfd436rjvC8N
解决 CentOS/Alma 安装 libpcap-devel 报错:No match for argument: libpcap-devel==>https://blog.csdn.net/peng2hui1314/article/details/131164408

浙公网安备 33010602011771号