软件管理的操作

软件管理

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中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

image-20260117154317188

环境配置

客户端环境

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
posted @ 2026-01-28 17:12  容器生态守护者  阅读(1)  评论(0)    收藏  举报