1. rpm命令安装和查看
.rpm #红帽系,gcc编译过的二进制可以执行
.deb #debian系
tar 源码包:需要编译
RPM:RedHat Package Manager的缩写
2. Rpm软件包管理
a) 光盘
b) Rpmfind.net
c) 官网下载
d) Yum源下载
2.1 yum管理软件包
[root@mytest001-18-56 ~]# ls /mnt/AppStream/Packages/h/httpd-2.4.37-56.module+el8.8.0+1284+07ef499e.6.x86_64.rpm
/mnt/AppStream/Packages/h/httpd-2.4.37-56.module+el8.8.0+1284+07ef499e.6.x86_64.rpm
- release(rpm自身的发布版本号,表示这个rpm软件包是第几次编译生成的,与程序源码的发行号无关)
- #修订指是的第几次修改bug。
- 发布指的是:第几次发布。 发布时,可能只是对软件安装的默认参数做了修改,而没有其它改动,就做了一次编译。
- el8 redhat8.x/RockyLinux.x
- x86_64:表示软件包是64位
.rpm:.rpm和.src.rpm,是rpm包类型后缀,rpm是编译好的二进制包,.src.rpm是源码包
devel:表示这个rpm包是软件的开发包 noarch:说明这样的软件包可以在任何平台安装和运行,不需要特定的硬件平台
2.2 安装rpm包
命令格式:rpm [参数] 软件包
参数:
-i 是install的意思, 安装软件包
-v 显示附加信息,提供更多详细信息
-V 校验,对已经安装的软件进行校验
-h --hash 安装时输出####标记
[root@mytest001-18-56 ~]# rpm -ivh /mnt/AppStream/Packages/z/zsh-html-5.5.1-10.el8.noarch.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:zsh-html-5.5.1-10.el8 ################################# [100%]
[root@mytest001-18-56 ~]#
2.3 rpm查询功能
用法:rpm -q(query) 常与下面参数组合使用
-a(all) 查询所有已安装的软件包
-f(file)系统文件名(查询系统文件所属哪个软件包),反向查询
-i 显示已经安装的rpm软件包信息,后面直接跟包名
-l(list) 查询软件包中文件安装的位置
-R 查询软件包的依赖性
[root@mytest001-18-56 ~]# rpm -qa anyware*
anyware-manager-k3s-1.26.0-393.el8.x86_64
anyware-manager-selinux-23.08.0~rc10-368.el8.noarch
anyware-connector-23.08.2-0.el8.x86_64
[root@mytest001-18-56 ~]# rpm -qa net-tools
net-tools-2.0-0.52.20160912git.el8.x86_64
[root@mytest001-18-56 ~]# rpm -qi net-tools #查看详细信息
Name : net-tools
Version : 2.0
Release : 0.52.20160912git.el8
Architecture: x86_64
Install Date: Wed 26 Jun 2024 11:33:40 AM CST
Group : System Environment/Base
Size : 964894
License : GPLv2+
Signature : RSA/SHA256, Mon 12 Apr 2021 06:31:49 AM CST, Key ID 15af5dac6d745a60
Source RPM : net-tools-2.0-0.52.20160912git.el8.src.rpm
Build Date : Wed 07 Apr 2021 11:41:10 AM CST
Build Host : ord1-prod-x86build001.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager : infrastructure@rockylinux.org
Vendor : Rocky
URL : http://sourceforge.net/projects/net-tools/
Summary : Basic networking tools
Description :
The net-tools package contains basic networking tools,
including ifconfig, netstat, route, and others.
Most of them are obsolete. For replacement check iproute package.
[root@mytest001-18-56 ~]# rpm -qR net-tools #查看依赖包
/bin/sh
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libselinux.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)
systemd
systemd
systemd
[root@mytest001-18-56 ~]#
[root@mytest001-18-56 ~]# pwd
/root
[root@mytest001-18-56 ~]# echo thisagoodday >> /usr/bin/find
[root@mytest001-18-56 ~]# rpm -Vf /usr/bin/find #查看是否被改过
S.5....T. /usr/bin/find
[root@mytest001-18-56 ~]#
2.4 rpm卸载和升级
rpm -e
参数:–nodeps , 不建议用rpm删除,以为有很多依赖关系,建议用yum的方式删除
Sample:
[root@mytest001-18-56 ~]# rpm -Va > rpm_check0717.txt
[root@mytest001-18-56 ~]# vim rpm_check0717.txt
[root@mytest001-18-56 ~]# rpm -e zsh
[root@mytest001-18-56 ~]# rpm -Uvh /mnt/BaseOS/Packages/l/lrzsz-0.12.20-43.el8.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
package lrzsz-0.12.20-43.el8.x86_64 is already installed
[root@mytest001-18-56 ~]# rpm -ivh /mnt/AppStream/Packages/m/mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64.rpm
error: Failed dependencies:
/etc/my.cnf is needed by mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64
/etc/my.cnf.d is needed by mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64
libmecab.so.2()(64bit) is needed by mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64
libprotobuf-lite.so.15()(64bit) is needed by mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64
mysql(x86-64) is needed by mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64
mysql-common(x86-64) = 8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1 is needed by mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64
mysql-errmsg(x86-64) = 8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1 is needed by mysql-server-8.0.32-1.module+el8.8.0+1283+4b88a3a8.0.1.x86_64
[root@mytest001-18-56 ~]# ## 系统发现很多依赖没有安装
3. yum软件管理
yum:Yellow dog Updater Modified前端软件包管理器,基于RPM包管理,可以自动处理依赖性关系,一次性安装所有依赖的软件。
yum源格式:
app:系统之外的软件包安装
base: 操作系统相关的软件包
3.1本地源
Sample
[root@mytest001-18-56 yum.repos.d]# cat local.repo
[app]
name=app #
baseurl=file:///mnt/AppStream
enabled=1 #1是启用
gpgcheck=0 #检查完整性,本地0可以不检查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial #/etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial密钥文件
[base]
name=base
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
[root@mytest001-18-56 yum.repos.d]# ls /mnt
AppStream BaseOS EFI images isolinux LICENSE media.repo TRANS.TBL
[root@mytest001-18-56 yum.repos.d]# yum clean all
38 files removed
[root@mytest001-18-56 yum.repos.d]# vim local.repo
[root@mytest001-18-56 yum.repos.d]# yum clean all
[root@mytest001-18-56 yum.repos.d]# yum makecache
Rocky Linux 8 - AppStream 8.7 MB/s | 11 MB 00:01
Rocky Linux 8 - BaseOS 4.2 MB/s | 5.0 MB 00:01
Rocky Linux 8 - Extras 16 kB/s | 14 kB 00:00
app # [ === ] --- B/s | 0 B app:-- ETA # 80 MB/s | 8.4 MB 00:00
base 74 MB/s | 2.6 MB 00:00
Metadata cache created.
[root@mytest001-18-56 yum.repos.d]# yum repolist
repo id repo name
app app #
appstream Rocky Linux 8 - AppStream
base base
baseos Rocky Linux 8 - BaseOS
extras Rocky Linux 8 - Extras
[root@mytest001-18-56 yum.repos.d]# yum list|wc -l
11472
[root@mytest001-18-56 yum.repos.d]# ll /usr/bin/yum
lrwxrwxrwx. 1 root root 5 May 16 2023 /usr/bin/yum -> dnf-3
3.2 网络源
Sample:
[root@mytest001-18-56 yum.repos.d]# cp /opt/Rocky-AppStream.repo /opt/Rocky-BaseOS.repo .
cp: overwrite './Rocky-AppStream.repo'? y
cp: overwrite './Rocky-BaseOS.repo'? y
[root@mytest001-18-56 yum.repos.d]# ll
total 12
-rw-r--r-- 1 root root 310 Jul 17 16:55 local.repo
-rw-r--r-- 1 root root 710 Jul 17 17:03 Rocky-AppStream.repo
-rw-r--r-- 1 root root 695 Jul 17 17:03 Rocky-BaseOS.repo
[root@mytest001-18-56 yum.repos.d]# ls
local.repo Rocky-AppStream.repo Rocky-BaseOS.repo
[root@mytest001-18-56 yum.repos.d]# sed -e 's|^mirrorlist=|#mirrorlist=|g' \
> -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
> -i.bak \
> /etc/yum.repos.d/Rocky-*.repo
[root@mytest001-18-56 yum.repos.d]# dnf makecache
Rocky Linux 8 - AppStream 573 kB/s | 11 MB 00:19
Rocky Linux 8 - BaseOS 990 kB/s | 5.0 MB 00:05
app # [ === ] --- B/s | 0 B app:-- ETA # 4.2 MB/s | 4.3 kB 00:00
base 3.8 MB/s | 3.9 kB 00:00
Metadata cache created.
[root@mytest001-18-56 yum.repos.d]# yum list|wc -l
11416
[root@mytest001-18-56 yum.repos.d]# ls
local.repo Rocky-AppStream.repo Rocky-AppStream.repo.bak Rocky-BaseOS.repo Rocky-BaseOS.repo.bak
[root@mytest001-18-56 yum.repos.d]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
Last metadata expiration check: 0:03:36 ago on Wed 17 Jul 2024 05:06:56 PM CST.
epel-release-latest-8.noarch.rpm 192 kB/s | 24 kB 00:00
Dependencies resolved.
==============================================================================================================================================================================================================================
Package Architecture Version Repository Size
==============================================================================================================================================================================================================================
Installing:
epel-release noarch 8-20.el8 @commandline 24 k
Transaction Summary
==============================================================================================================================================================================================================================
Install 1 Package
Total size: 24 k
Installed size: 34 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : epel-release-8-20.el8.noarch 1/1
Running scriptlet: epel-release-8-20.el8.noarch 1/1
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.
Verifying : epel-release-8-20.el8.noarch 1/1
Installed:
epel-release-8-20.el8.noarch
Complete!
[root@mytest001-18-56 yum.repos.d]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
[root@mytest001-18-56 yum.repos.d]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
[root@mytest001-18-56 yum.repos.d]# yum repolist
repo id repo name
app app #
appstream Rocky Linux 8 - AppStream
base base
baseos Rocky Linux 8 - BaseOS
epel Extra Packages for Enterprise Linux 8 - x86_64
[root@mytest001-18-56 yum.repos.d]# yum list|wc -l
21589
[root@mytest001-18-56 yum.repos.d]#
功能说明:
这些命令行主要是为了配置 Rocky Linux 使用阿里云的镜像源,并安装 EPEL(Extra Packages for Enterprise Linux)仓库。以下是每个命令行的详细解释:
-
sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/Rocky-*.repo
- 使用
sed
命令修改/etc/yum.repos.d/
目录下所有以Rocky-
开头的.repo
文件。 - 将以
mirrorlist=
开头的行注释掉(前面加#
)。 - 将以
#baseurl=http://dl.rockylinux.org/$contentdir
开头的行替换为baseurl=https://mirrors.aliyun.com/rockylinux
。 - 生成一个备份文件(以
.bak
为后缀)。
- 使用
-
dnf makecache
- 生成 YUM/DNF 缓存,用于加速后续的软件包操作。
-
yum list|wc -l
- 列出所有可用的软件包并统计其数量。
-
ls
- 列出当前目录下的文件和目录。
-
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
- 从阿里云镜像安装最新的 EPEL 仓库。
-
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
- 使用
sed
命令修改/etc/yum.repos.d/
目录下所有以epel
开头的文件。 - 将以
#baseurl=https://download.example/pub
开头的行替换为baseurl=https://mirrors.aliyun.com
。
- 使用
-
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
- 将
/etc/yum.repos.d/
目录下所有以epel
开头的文件中以metalink
开头的行注释掉(前面加#
)。
- 将
-
yum repolist
- 列出所有已配置的 YUM 仓库。
-
yum list|wc -l
- 再次列出所有可用的软件包并统计其数量,以确认镜像源配置成功。
这些步骤通过切换到阿里云镜像源和配置 EPEL 仓库,确保系统可以快速访问并下载需要的软件包。
3.3 yum更新
yum update #更新系统和所有应用
yum upgrade #不更新内核
yum -y install httpd #安装应用
yum upgrade httpd #升级应用
yum info httpd #查询应用信息
yum provides /usr/bin/find #查询应用调用
yum deplist httpd #查询应用依赖
yum remove httpd #删除应用
yum search httpd
yum grouplist
Sample:
[root@mytest001-18-56 yum.repos.d]# yum -y install httpd
Last metadata expiration check: 0:07:07 ago on Wed 17 Jul 2024 05:11:42 PM CST.
Package httpd-2.4.37-64.module+el8.10.0+1717+030a9fed.x86_64 is already installed.
Dependencies resolved.
==============================================================================================================================================================================================================================
Package Architecture Version Repository Size
==============================================================================================================================================================================================================================
Upgrading:
httpd x86_64 2.4.37-65.module+el8.10.0+1830+22f0c9e0 appstream 1.4 M
httpd-filesystem noarch 2.4.37-65.module+el8.10.0+1830+22f0c9e0 appstream 43 k
httpd-tools x86_64 2.4.37-65.module+el8.10.0+1830+22f0c9e0 appstream 111 k
Transaction Summary
==============================================================================================================================================================================================================================
Upgrade 3 Packages
Total download size: 1.6 M
Downloading Packages:
(1/3): httpd-filesystem-2.4.37-65.module+el8.10.0+1830+22f0c9e0.noarch.rpm 212 kB/s | 43 kB 00:00
(2/3): httpd-tools-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64.rpm 314 kB/s | 111 kB 00:00
(3/3): httpd-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64.rpm 418 kB/s | 1.4 MB 00:03
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 462 kB/s | 1.6 MB 00:03
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: httpd-tools-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64 1/1
Upgrading : httpd-tools-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64 1/6
Running scriptlet: httpd-filesystem-2.4.37-65.module+el8.10.0+1830+22f0c9e0.noarch 2/6
Upgrading : httpd-filesystem-2.4.37-65.module+el8.10.0+1830+22f0c9e0.noarch 2/6
Upgrading : httpd-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64 3/6
Running scriptlet: httpd-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64 3/6
Running scriptlet: httpd-2.4.37-64.module+el8.10.0+1717+030a9fed.x86_64 4/6
Cleanup : httpd-2.4.37-64.module+el8.10.0+1717+030a9fed.x86_64 4/6
Running scriptlet: httpd-2.4.37-64.module+el8.10.0+1717+030a9fed.x86_64 4/6
Cleanup : httpd-filesystem-2.4.37-64.module+el8.10.0+1717+030a9fed.noarch 5/6
Cleanup : httpd-tools-2.4.37-64.module+el8.10.0+1717+030a9fed.x86_64 6/6
Running scriptlet: httpd-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64 6/6
Running scriptlet: httpd-tools-2.4.37-64.module+el8.10.0+1717+030a9fed.x86_64 6/6
Verifying : httpd-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64 1/6
Verifying : httpd-2.4.37-64.module+el8.10.0+1717+030a9fed.x86_64 2/6
Verifying : httpd-filesystem-2.4.37-65.module+el8.10.0+1830+22f0c9e0.noarch 3/6
Verifying : httpd-filesystem-2.4.37-64.module+el8.10.0+1717+030a9fed.noarch 4/6
Verifying : httpd-tools-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64 5/6
Verifying : httpd-tools-2.4.37-64.module+el8.10.0+1717+030a9fed.x86_64 6/6
Upgraded:
httpd-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64 httpd-filesystem-2.4.37-65.module+el8.10.0+1830+22f0c9e0.noarch httpd-tools-2.4.37-65.module+el8.10.0+1830+22f0c9e0.x86_64
Complete!
[root@mytest001-18-56 yum.repos.d]# yum upgrade httpd
Last metadata expiration check: 0:09:19 ago on Wed 17 Jul 2024 05:11:42 PM CST.
Dependencies resolved.
Nothing to do.
Complete!
[root@mytest001-18-56 yum.repos.d]#
3.4 yum 组 安装
安装一组相关的工具
在Rocky Linux中,yum
已被 dnf
(Dandified Yum)所替代,作为默认的包管理器,提供了更高效的包管理和依赖处理机制。尽管如此,yum
的许多概念和命令在 dnf
中仍有对应的功能。关于组相关的操作,以下是使用 dnf
实现与 yum group
类似功能的命令:
-
查看所有可用的组:
dnf group list
-
查看组的详细信息:
dnf group info group_name
-
安装程序组:
dnf group install group_name
-
卸载程序组:
dnf group remove group_name
-
升级程序组中的软件包:
dnf group upgrade group_name
请注意,尽管上述命令是在 dnf
环境下使用的,但在一些较旧或特定配置的Rocky Linux系统中,如果依然使用 yum
,相关命令可能如下:
-
查看所有可用的组:
yum grouplist
-
查看组的详细信息:
yum groupinfo group_name
-
安装程序组:
yum groupinstall group_name
-
卸载程序组:
yum groupremove group_name
-
检查组更新:
yum groupupdate group_name
由于 yum
被 dnf
取代,推荐使用 dnf
命令进行操作,以获得更好的性能和兼容性。
Sample:
[root@mytest001-18-56 yum.repos.d]# yum group list
Last metadata expiration check: 0:21:50 ago on Wed 17 Jul 2024 05:11:42 PM CST.
Available Environment Groups:
Server with GUI
Minimal Install
Workstation
KDE Plasma Workspaces
Virtualization Host
Custom Operating System
Installed Environment Groups:
Server
Installed Groups:
Container Management
Development Tools
Headless Management
System Tools
Available Groups:
Fedora Packager
Xfce
.NET Core Development
RPM Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Network Servers
Scientific Support
Security Tools
Smart Card Support
[root@mytest001-18-56 yum.repos.d]# yum groupinstall 'Development Tools'
Last metadata expiration check: 0:18:34 ago on Wed 17 Jul 2024 05:11:42 PM CST.
Dependencies resolved.
==============================================================================================================================================================================================================================
Package Architecture Version Repository Size
==============================================================================================================================================================================================================================
Upgrading:
automake noarch 1.16.1-8.el8 appstream 713 k
binutils x86_64 2.30-123.el8 baseos 5.8 M
cpp