软件管理的操作
软件管理
rocky系统
包管理rpm
准备工作
准备目录
[root@rocky9 ~]# mkdir web ; cd web
[root@rocky9 web]#
下载文件
[root@rocky9 web]# yum --downloadonly --downloaddir=./ install nginx
[root@rocky9 web]# ls
nginx-1.20.1-16.el9_4.1.x86_64.rpm nginx-filesystem-1.20.1-
16.el9_4.1.noarch.rpm
nginx-core-1.20.1-16.el9_4.1.x86_64.rpm rocky-logos-httpd-90.15-2.el9.noarch.rpm
rpm命令介绍
命令格式
rpm {-i|--install} [install-options] PACKAGE_FILE…
常用选项
-q # 检查安装软件
-ivh # 安装软件
-evh # 卸载软件
-Uvh # 有旧版程序包,则“升级”,如果不存在旧版程序包,则“安装”
-Fvh # 有旧版程序包,则“升级”,如果不存在旧版程序包,则不执行安装操作
镜像文件环境
准备工作
获取软件
[root@rocky9 ~]# mkdir /tmp/softs ; cd /tmp/softs
下载三个软件
wget https://mirrors.aliyun.com/centos-stream/9-
stream/AppStream/x86_64/os/Packages/vsftpd-3.0.3-49.el9.x86_64.rpm
wget https://mirrors.aliyun.com/centos-stream/9-
stream/AppStream/x86_64/os/Packages/vsftpd-3.0.5-6.el9.x86_64.rpm
wget https://mirrors.aliyun.com/centos-stream/9-
stream/AppStream/x86_64/os/Packages/httpd-2.4.57-3.el9.x86_64.rpm
检查效果
[root@rocky9 softs]# ll
总用量 392
-rw-r--r-- 1 root root 49437 7月 19 2023 httpd-2.4.57-3.el9.x86_64.rpm
-rw-r--r-- 1 root root 173002 11月 24 2021 vsftpd-3.0.3-49.el9.x86_64.rpm
-rw-r--r-- 1 root root 171615 8月 20 12:13 vsftpd-3.0.5-6.el9.x86_64.rpm
安装演示
不需要依赖
[root@rocky9 softs]# rpm -ivh vsftpd-3.0.3-49.el9.x86_64.rpm
需要依赖
[root@rocky9 softs]# rpm -ivh httpd-2.4.57-3.el9.x86_64.rpm
升级演示
升级新版本vsftpd
[root@rocky9 softs]# rpm -Uvh vsftpd-3.0.5-6.el9.x86_64.rpm
升级旧版本vsftpd
[root@rocky9 softs]# rpm -Uvh vsftpd-3.0.3-49.el9.x86_64.rpm
注意:如果已安装版本高,待安装版本低,默认不安装
卸载演示
[root@rocky9 softs]# rpm -evh vsftpd
准备中... ################################# [100%]
正在清理/删除...
1:vsftpd-3.0.5-6.el9 ################################# [100%]
[root@rocky9 softs]# rpm -q vsftpd
未安装软件包 vsftpd
如果存在软件包就卸载
[root@rocky9 softs]# rpm -q vsftpd && rpm -evh vsftpd
整体演示
演示 -fvh
[root@rocky9 softs]# rpm -Fvh vsftpd-3.0.3-49.el9.x86_64.rpm
演示 -Uvh
[root@rocky9 softs]# rpm -Uvh vsftpd-3.0.3-49.el9.x86_64.rpm
演示 -q || -evh
[root@rocky9 softs]# rpm -q vsftpd && rpm -evh vsftpd
包查询
列出所有己安装的包
查看所有安装的包
[root@rocky9 softs]# rpm -qa
......
过滤已安装的包
[root@rocky9 softs]# rpm -qa | grep passwd
passwd-0.80-12.el9.x86_64
mkpasswd-5.5.9-4.el9.x86_64
检查软件是否安装
[root@rocky9 ~]# rpm -q vsftpd
未安装软件包 vsftpd
[root@rocky9 ~]# rpm -q tree
tree-1.8.0-10.el9.x86_64
根据文件查询包信息
查看已安装软件的文件
[root@rocky9 ~]# rpm -qf /bin/tree
tree-1.8.0-10.el9.x86_64
查看未安装的包文件来源于哪里
[root@rocky9 ~]# rpm -qpf /tmp/softs/vsftpd-3.0.3-49.el9.x86_64.rpm
警告:/tmp/softs/vsftpd-3.0.3-49.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID
8483c65d: NOKEY
vsftpd-3.0.3-49.el9.x86_64
yum和dnf
简介
yum 和 dnf 都是 Linux 系统中用于软件包管理的工具【python脚本】,它们允许用户安装、更新、
删除和查询软件包。尽管它们在功能上非常相似,但它们属于不同的软件包管理系统,并且在技术实现和背后的
设计上存在一些差异。
工作原理
架构模式
yum/dnf 是基于C/S 模式
- yum 服务器存放rpm包和相关包的元数据库
- yum 客户端访问yum服务器进行安装或查询等
yum实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

环境配置
客户端环境
yum客户端配置文件
/etc/yum.conf #为所有仓库提供公共配置
/etc/yum.repos.d/*.repo #为每个仓库的提供配置文件
基础命令
查看帮助
man 5 yum.conf
获取软件源信息
yum makecache
清理软件源信息
yum clean all
查看仓库的信息
yum repolist
yum repolist -v # 查看更多信息
全局配置
配置解析
[root@rocky9 ~]# ll /etc/yum.conf
lrwxrwxrwx. 1 root root 12 4月 14 07:20 /etc/yum.conf -> dnf/dnf.conf
查看文件的默认内容效果
[root@rocky9 ~]# cat /etc/yum.conf
[main]
gpgcheck=1 #安装包前要做包的合法和完整性校验
installonly_limit=3 #同时可以安装3个包,最小值为2,如设为0或1,为不限制
clean_requirements_on_remove=True #删除包时,是否将不再使用的包删除
best=True #升级时,自动选择安装最新版,即使缺少包的依赖
skip_if_unavailable=False #跳过不可用的
repo仓库配置文件指向的定义
[repositoryID]
name=Some name for this repository #仓库名称
baseurl=url://path/to/repository/ #仓库地址
mirrorlist=http://list/ #仓库地址列表,在这里写了多个 baseurl指向的地址
enabled={1|0} #是否启用,默认值为1,启用
gpgcheck={1|0} #是否对包进行校验,默认值为1
gpgkey={URL|file://FILENAME} #校验key的地址
enablegroups={1|0} #是否启用yum group,默认值为 1
failovermethod={roundrobin|priority} #有多个baseurl,此项决定访问规则,
#roundrobin 随机,priority:按顺序访问
cost=1000 #开销,或者是成本,
#YUM程序会根据此值来决定优先访问哪个源,默认为1000
metadata_expire=6h #rocky-9中新增配置,metadata 过期时间
countme=1 #rocky-9中新增配置,默认值false,
#附加在mirrorlist之后,便于仓库收集客户端信息
baseurl 有多种写法,支持多种协议
baseurl=file:///cdrom/AppStream/
baseurl=https://mirrors.aliyun.com/rockylinux/9.4/AppStream/x86_64/os/
baseurl=http://mirrors.aliyun.com/rockylinux/9.4/AppStream/x86_64/os/
baseurl=ftp://10.0.0.159/
注意:
yum仓库指向的路径一定必须是repodata目录所在目录
国内源
RockyLinux国内源
阿里云
https://mirrors.aliyun.com/rockylinux/
中国科学技术大学
http://mirrors.ustc.edu.cn/rocky/
上海交通大学
https://mirrors.sjtug.sjtu.edu.cn/rocky/
南京大学
https://mirrors.nju.edu.cn/rocky/
定制软件源
Rocky9.4上配置aliyun的repo源
[root@rocky9 yum.repos.d]# cat aliyun-baseos.repo
[aliyun-baseos]
name=aliyun baseos
baseurl=https://mirrors.aliyun.com/rockylinux/9.4/BaseOS/x86_64/os/
gpgcheck=0
更新软件源
[root@rocky9 yum.repos.d]# yum makecache
查看源
[root@rocky9 yum.repos.d]# yum repolist
查看源信息
[root@rocky9 yum.repos.d]# yum repolist -v
查看指定源信息
[root@rocky9 yum.repos.d]# yum repolist --repoid=aliyun-baseos -v
定制其他源
Rocky9.4上配置南京大学的repo源
[root@rocky9 yum.repos.d]# cat nju-extras.repo
[nju-appstream]
name=nju AppStream
baseurl=https://mirrors.nju.edu.cn/rocky/9.4/AppStream/x86_64/os/
gpgcheck=0
[nju-baseos]
name=nju BaseOS
baseurl=https://mirrors.nju.edu.cn/rocky/9.4/BaseOS/x86_64/os/
gpgcheck=0
[nju-extras]
name=nju extras
baseurl=https://mirrors.nju.edu.cn/rocky/9.4/extras/x86_64/os/
gpgcheck=0
测试效果
[root@rocky9 yum.repos.d]# yum install sl
测试命令
[root@rocky9 yum.repos.d]# sl
查看帮助
[root@rocky9 yum.repos.d]# man sl
清理缓存
查看缓存日志信息
[root@rocky9 ~]# ls /var/cache/dnf/
清理缓存信息
[root@rocky9 ~]# yum clean all
yum命令用法
命令格式:
yum [options] COMMAND
常用子命令
autoremove #卸载包,同时卸载依赖
clean #清除本地缓存
install #包安装
list #列出所有包
makecache #重建缓存
search #包搜索,包括包名和描述
显示程序包
查看所有软件
[root@rocky9 yum.repos.d]# yum list
查看所有可更新的包
[root@rocky9 yum.repos.d]# yum list --updates
查看所有以 z 开头的包,包括己安装的和可安装的
[root@rocky9 yum.repos.d]# yum list --all z*
查看所有可用的包
[root@rocky9 yum.repos.d]# yum list --available
查看指定软件可用的包
[root@rocky9 yum.repos.d]# yum list --available sos
删除软件
卸载单个软件
[root@rocky9 yum.repos.d]# yum remove httpd
卸载多个软件
[root@rocky9 yum.repos.d]# yum erase httpd ngnix
Ubuntu软件管理
软件包管理
dpkg:
package manager for Debian,类似于rpm, dpkg是基于Debian的系统的包管理器。可以安装,删除和构建软件包,但无法自动下载和安装软件包或其依赖项
apt:
Advanced Packaging Tool,功能强大的软件管理工具,甚至可升级整个Ubuntu的系统,基于客户/服务器架构(c/s)
ubuntu 24.04 系统
root@ubuntu24:/etc/apt# cat /etc/apt/sources.list.d/ubuntu.sources
Types: deb
URIs: http://cn.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
配置文件格式说明
deb URL section1 section2
#字段说明
deb #固定开头,表示是二进制包的仓库,如果deb-src开头,表示是源码库
URL #库所在的地址,可以是网络地址,也可以是本地镜像地址
section1 #Ubuntu版本的代号,可用 lsb_release -sc 命令查看,也可以用 cat /etc/osrelease
section2 #软件分类,main完全自由软件 restricted不完全自由的软件,universe社区支持的软件,multiverse非自由软件
section1 #主仓
section1-backports #后备仓,该仓中的软件当前版本不一定支持
section1-security #修复仓,主要用来打补丁,有重大漏洞,需要在当前版本中修复时,会放此仓
section1-updates #非安全性更新仓,不影响系统安全的小版本迭代放此仓
section1-proposed #预更新仓,可理解为新版软件的测试放在此仓,
#测试一段时间后会移动到 updates仓或security仓,非专业人士勿用
apt源加速
Ubuntu使用阿里云和清华源的镜像仓库
参考资料:
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
https://developer.aliyun.com/mirror/ubuntu
定制源文件
root@ubuntu24:~# vim /etc/apt/sources.list
# 定制阿里云镜像仓库
deb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe
multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe
multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe
multiverse
# 定制清华源镜像仓库
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe
multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted
universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted
universe multiverse
更新软件源
root@ubuntu24:~# mkdir /data/backup/apt_source -p
root@ubuntu24:~# mv /etc/apt/sources.list.d/* /data/backup/apt_source/
root@ubuntu24:~# apt update
apt命令用法
| apt命令 | 命令的功能 |
|---|---|
| apt install | 安装软件包 |
| apt remove | 移除软件包 |
| apt purge | 移除软件包及配置文件 |
| apt update | 刷新存储库索引 |
| apt upgrade | 升级所有可升级的软件包 |
| apt autoremove | 自动删除不需要的包 |
| apt full-upgrade | 在升级软件包时自动处理依赖关系 |
| apt search | 搜索应用程序 |
| apt list | 列出所有包 |
| apt list --installed | 列出所有己安装的包 |
安装软件
安装一个软件
root@ubuntu24:~# apt install nginx
同时安装多个包
root@ubuntu24:~# apt install nginx redis -y
安装指定版本的包,默认安装最新版
root@ubuntu24:~# apt install nginx=1.14.0-0ubuntu1
安装nginx 包,如果己存在,则不升级
root@ubuntu24:~# apt install nginx --no-upgrade
只升级不安装
root@ubuntu24:~# apt install nginx --only-upgrade
卸载软件
仅卸载nginx包
root@ubuntu24:~# apt remove -y nginx
卸载所有依赖包
root@ubuntu24:~# apt autoremove nginx
更新和升级
纺计源中可更新的信息,并不执行具体更新
root@ubuntu24:~# apt update
...
更新所有己安装的包
root@ubuntu24:~# apt upgrade
更新某个具体的包
root@ubuntu24:~# apt install --only-upgrade nginx
查看是否是开机启动
root@ubuntu24:~# systemctl is-enabled cron.service
enabled

浙公网安备 33010602011771号