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。

要解决此问题,您有两个主要选择:

  1. 使用包管理器安装 libdev: 如果 libdev 可作为您 CentOS 8 系统的软件包,您可以使用适当的包管理器命令(例如 yum 或 dnf)进行安装。这将确保库正确注册在系统包数据库中,并正确管理其依赖项。
Bash
sudo yum install libdev
  1. 为 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

 

我们把下面四个文件的仓库地址变更下

  1. CentOS-Linux-BaseOS.repo  : 基本仓库
  2. CentOS-Linux-Extras.repo : 忽略解释
  3. CentOS-Linux-AppStream.repo    :  忽略解释
  4. 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

 

 

其它链接

✨阿里云ECS(CentOS/Alibaba Cloud Linux)安装最新 Docker 方法[转]==>https://www.yuque.com/puredream/windsnow/frgaviuuwldunozx

posted @ 2018-03-22 08:29  苦涩泪滴  阅读(218)  评论(0)    收藏  举报