第九篇:系统管理体系之软件包管理
Linux常见的安装软件方式
- Linux下面软件包格式:
- rpm格式(红帽系列系统,CentOS,麒麟系统)
- deb格式(Debian,Ubuntu)
安装软件方式 | 举例 | 说明 | 应用场景 |
yum/apt方式 | 点外卖,缺啥少啥,外卖解决(不需要手动安装依赖) | 通过网络下载软件包,替我们安装,如果有依赖则自动下载依赖并安装 | 大部分场景,没有网络可以自建yum软件仓库 |
rpm/dpkg方式 | 半成品,缺啥少啥,自己解决(需要手动安装依赖) | 手动下载rpm包,手动安装rpm包,缺少依赖需要自己解决 | 没有网络、误删除软件包、依赖较少 |
编译安装方式 | 自己做,缺啥少啥,自己解决(需要手动安装依赖) | 可以自定义安装,比较漫长,缺少依赖需要自己解决 | 软件安装需要自定义、增加功能 |
二进制安装方式 | 点外卖+自取,缺啥少啥,自己解决(需要手动安装依赖) |
类似于绿色软件,解压即可,可能需要准备环境 并非每个软件都有,一般数据库、服务、k8s、promethues监控有 |
如果有可以选用,优先选择yum,没有那么选择二进制 |
安装方式推荐:yum > rpm > 二进制 > 编译安装
rpm安装方式
rpm命令 | 选项及其含义 |
增加--安装 | -ivh(-i install) xxx.rpm |
查看--检查 | -qa(query all)查看软件包是否安装 |
-ql 查看软件包内容 | |
-qf 文件或命令绝对路径 查询某个文件或命令所归属的软件包 | |
修改--升级 | -Uvh 升级软件包(如果软件包不存在,相当于ivh安装) |
删除 | -e 删除软件包 |
增加-安装rpm包⭐⭐⭐⭐⭐
-ivh | |
-i | install 下载 |
-v | verbose 详细,显示过程 |
-h | human readable 人类可读形式显示 |
# 案例:安装rpm包 # 下载软件包 [root@yuan ~]# wget --no-check-certificate -P /server/tools/ https://mirrors-i.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent-6.0.0-1.el7.x86_64.rpm [root@yuan tools]# ll 总用量 508 -rw-r--r-- 1 root root 517992 2月 14 2022 zabbix-agent-6.0.0-1.el7.x86_64.rpm wget下载指定内容,默认下载到当前目录 -P 下载到指定目录,目录不存在则自动创建 --no-check-certificate 下载地址https,需要加上该选项 # 安装依赖 yum install -y pcre2 # 安装软件包zabbix-agent [root@yuan tools]# rpm -ivh zabbix-agent-6.0.0-1.el7.x86_64.rpm
查看--检查
选项 | 说明 |
-q | query 查询 |
-l | list 列表 表示指出rpm包中包含的文件 |
-f | file 文件 表示查询那个包提供了指定的文件 |
# 检查软件包是否安装成功⭐⭐⭐⭐⭐ # 利用管道+grep方式(推荐) [root@yuan ~]# rpm -qa |grep zabbix zabbix-agent-6.0.0-1.el7.x86_64 # 不利用管道,直接写出软件包的名字 [root@yuan ~]# rpm -qa zabbix-agent zabbix-agent-6.0.0-1.el7.x86_64 # 案例:检查软件包的内容(软件包已安装)⭐⭐⭐⭐⭐ [root@yuan ~]# rpm -ql zabbix-agent /etc/logrotate.d/zabbix-agent /etc/zabbix/zabbix_agentd.conf /usr/lib/systemd/system/zabbix-agent.service 温馨提示:软件包不等同于命令 一般情况下一个软件包中有一个命令(tree、telnet软件包) 更多情况下一个软件包中可能有多条命令(lrzsz(rz、sz))
修改--升级(Upgrade)
用于通过rpm包的方式升级软件
# 案例:升级软件(小版本) 6.0.0 升级到 6.0.7版本
-Uvh -U表示update/upgrade 升级
如果直接使用-ivh安装,会提示配置文件的一些冲突导致安装失败
删除
- 删除对应的软件包(rpm安装或yum安装),其他方式(编译,二进制)无法删除
- yum,rpm安装/删除软件时,推荐使用rpm命令删除,非必须不推荐删除软件
- 删除软件包 -e (erase)
rpm -e 软件包 rpm -e zabbix-agent2 rpm -qa |grep zabbix
yum软件包管理
- yum是红帽系列系统中默认的软件包管理器
- 会自动下载默认的rpm包并且安装,安装过程中如果有依赖会自动下载
- 推荐安装命令补全工具
- yum install -y bash-completion bash-completion-extras
- 安装后重启Linux,可以对yum选项进行tap
yum安装全流程
- 运行yum install -y tree 命令
- 解析tree软件包是否有依赖
- yum会根据本地配置的yum源地址,进行请求(请求相关软件包、依赖软件包)
- 如果yum源存在对应的软件包,则会通知yum进行下载,rpm包就会下载到yum缓存目录中
- 软件包和依赖都下载好,则开始安装
- 安装完成删除刚刚下载的rpm包(默认)
yum命令:下载与安装软件包(配置文件:/etc/yum.conf)
yum仓库/源:存放软件包的地方(配置目录:/etc/yum.repos.d/*.repo repository源)
yum源配置
为何配置yum源地址
- 使其下载速度更快
- 系统默认的yum源无法满足要求(需要的软件yum源没有)
使用虚拟机(私有云)、物理服务器需要配置yum源,使用公有云,则一般都是配好的
一键配置阿里云的yum源
-
查看系统正在使用的yum源列表
[root@yuan ~]# yum repolist # 查看系统正在使用的源 源标识 源名称 状态 !base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072 !epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,791 !extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 526 !updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 6,173 repolist: 30,562 上述有base、extras、updates、epel四个yum源 base、extras、updates是系统默认的yum源 epel是额外的yum源
-
设置系统的yum源为阿里云
https://developer.aliyun.com/mirror/ 选择centos # 1、备份已有yum源的配置文件 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 2、配置系统默认的源,改为阿里的源 使用wget或curl命令下载,下载阿里云到yum源的配置文件(/etc/yum.repos.d/)的目录 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo -O :下载并改名,存放到指定目录 base、extras、updates系统默认的yum源改为阿里云
-
增加epel源
# 1、备份(由于epel源不是系统默认的源,所以第一次使用时,提示文件不存在) mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup # 2、增加系统的epel源(企业级Linux的额外的软件包) wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum配置文件详解
存放在/etc/yum.repos.d/目录下,都是以.repo结尾且只能识别.repo结尾的文件
[base] name=CentOS-$releasever - Base - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
yum源配置文件详情 | |
[base] | yum源文件 |
name= | 说明信息 |
baseurl= | yum源地址,浏览器打开地址后要看到repodata文件 |
enabled=1 | 是否开启这个源 |
gpgcheck=1 | 开启软件包检查,未来自建yum仓库可以关闭 |
gpgkey | 用于检查的密钥,如果关闭检查gpgkey省略 |
yum命令配置文件
- 未来在正式环境中几乎很少修改
- 未来把yum安装过的rpm包进行保存时使用
- 修改/etc/yum.conf配置,找出keepcache行=0改为=1即可
/etc/yum.conf | 说明 |
keepcache |
=0关闭缓存,软件下载安装后自动删除rpm包 =1开启缓存,软件下载安装后保留rpm包 |
cachedir | yum下载软件包的缓存目录:/var/cache/yum/$basearch/$releasever |
logfile | yum命令的记录 /var/log/yum.log |
yum命令详解⭐⭐⭐⭐⭐
yum命令 | 格式与说明 |
增 | yum install -y tree |
yum reinstall -y tree 重新安装 | |
查 | yum provides 内容 |
yum search all 内容 | |
yum repolist 查看源列表 | |
删除 | yum remove 删除软件包及依赖 |
yum clean all 清空缓存 | |
改 | yum update/upgrade |
选项 | -y 遇到有yes/no的时候选择yes |
- 增-安装软件
# yum安装软件包 yum install -y tree # 重新安装软件包(使用较少) yum reinstall -y tree
- 查-检查命令/依赖/文件属于哪个软件包
查询某个命令属于哪个软件包,查询某个依赖属于哪个软件包
# 根据软件包内容找到被查询的命令或文件属于的软件包 yum provides 命令或文件 [root@yuan ~]# yum provides ls 已加载插件:fastestmirror ...... coreutils-8.22-24.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts 源 :@anaconda 匹配来源: 文件名 :/usr/bin/ls # 备用搜索命令 yum search all ifconfig # 先用provides,查不到再用search # search命令查询的结果会非常的多,需要一个个的测试 # 必会:查询yum源信息 yum repolist # 熟悉:显示yum仓库中所有的软件 yum list
- 删
- 删软件包(yum remove)
- 不推荐使用,remove会删除依赖,如果要删除使用rpm -e
-
- 删除本地缓存(yum clean all 自建yum仓库使用)
- 改-升级
yum install的时候(安装/升级)
更新的命令:yum update 或者 yum upgrade ,软件或命令有BUG或漏洞,需要更新下
Ubantu系统软件包管理
debian(Ubuntu) | 红帽(CentOS、麒麟) |
apt源 | yum源 |
apt/apt-get | yum |
dpkg | rpm |
配置源
vim /etc/apt/sources.list 将/etc/apt/sources.list文件中原有的内容替换成 https://developer.aliyun.com/mirror/ubuntu中的内容 编辑完成后运行 apt update # 用于生成本地apt缓存,如果不做则无法安装软件 提示该内容则本地apt缓存已生成 Fetched 39.1 MB in 44s (888 kB/s) Reading package lists . Done Building dependency tree Reading state information . Done 103 packages can be upgraded. Run 'apt list -upgradable' to see them.
安软件
apt install -y cmatrix lolcat root@yuan-virtual-machine:~# ll /etc/passwd |lolcat -rw-r--r-- 1 root root 2924 9月 21 09:27 /etc/passwd
检查软件
功能 | debian(ubuntu) | 红帽(CentOS、麒麟) |
检查是否安装 | dpkg -l | rpm -qa |
安装 | dpkg -i | rpm -ivh |
检查软件包内容 | dpkg -L | rpm -ql |
删除 | dkkg -r | rpm -e |
root@yuan-virtual-machine:~# dpkg -l |grep lolcat ii lolcat 42.0.99-1 all colorful `cat` root@yuan-virtual-machine:~# dpkg -l |grep cmatrix ii cmatrix 2.0-2 amd64 simulates the display from "The Matrix"
编译安装
- 自定义
- yum安不上,rpm没有包
编译本质:源代码(C语言)-->命令
编译安装三部曲:配置-->编译-->编译安装
编译安装的步骤
- 安装依赖的软件包,工具......
- ./configure 进行配置,安装到哪个目录(默认是/usr/local下面)、开启或关闭功能
- make 编译(代码-->命令)
- make install 安装(创建目录、复制命令、复制配置(复制到指定目录))
编译安装黑客帝国
# 上传软件包并安装依赖 1、上传压缩包 lrzsz包 上传文件:rz 下载文件:sz filename 2、解压压缩包 tar xf cmatrix-1.2a.tar.gz 3、进入压缩包 cd cmatrix-1.2a/ 4、安装依赖 yum install -y ncurses-devel # ./configure 进行配置,按转到哪个目录(默认是/usr/local下面)、开启或关闭功能
需要在代码目录下面执行./configure (cd cmatrix-1.2a/)
.configure 执行该命令后屏幕上会输出一堆内容
echo $? 如果结果为0,则表示上一条命令执行成功
# 继续编译
make # 运行该命令即可
echo $? 检查上一条命令是否执行成功
# 安装
make install
# 运行cmatrix命令,检查结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App