Linux系统管理体系-软件包管理

1、linux常见的安装软件方式

Linux下面的软件包格式为:rpm格式(红帽系列系统,Cent0S,麒麟系统)或deb格式(Debian,Ubuntu)

安装方式 举例 说明 应用场景
yum/apt 方式 点外卖,缺啥少啥,外卖解决 通过网络下载软件包,替我们安装,如果有依赖自动下载依赖并安装。 自动. 大部分场景,没有网络可以自建yum软件仓库,内网使用。
rpm/dpkg方式 半成品,缺啥少啥,自己解决 手动下载rpm包,手动安装rpm包,缺少依赖需要自己解决 没有网络,误删除软件包,依赖较少。
编译安装方式 自己做,缺啥少啥,自己解 可以自定义安装,比较漫长,缺少依赖自己解决 软件进行自定义,增加功能
二进制安装方式 点外卖+自取,缺啥少啥,自已解决(绿色软件免安装) 类似于绿色软件,解压既用,可能需要准备环境,并非每个软件都有,一般是服务,数据库,k8s,promethues监控。 如果有可以选用,优先选择yum,没有那就选择二进制方式

2、rpm安装方式

rpm命令 选项及含义
增加-安装 -ivh xxx.rpm
查看-检查 -qa 查看软件包是否安装(query all)
-ql 查看软件包内容
-qf 文件或命令绝对路径 文件或命令所归属的软件包
修改-升级 -Uvh 升级软件包(如果软件包不存在,相当于ivh安装)
删除 -e 删除软件包

1)增加-安装rpm包

perl 复制代码
#下载软件包
wget --no-check-certificate -P /server/tools/ https://*.com/.../*.rpm
​
wget下载指定内容,默认下载到当前目录
-P 下载到指定目录,目录不存在会创建
--no-check-certificate 下载地址https,加上这个选项

2)查询-检查安装

perl 复制代码
#书写方法 利用管道+grep进行过滤 推荐
rpm -qa |grep zabbix
​
#不使用管道 直接写软件包的名字,全名不能出错
rpm -qa zabbix-agent2
​
#检查软件包的内容(已经安装)
rpm -ql 软件名
rpm -ql zabbix-agent2
​
# 查询某个命令或文件属于哪个软件包
[root@nanjing ~]# rpm -qf "$(pwd)"
filesystem-3.2-25.el7.x86_64

软件包不等同于命令。

一般情况下一个软件包中有1个命令,tree,telnet软件包。

更多情况中1个软件包下面可能有多个命令lrzsz(rz,sz)

3)修改-升级

bash 复制代码
rpm -Uvh /server/tools/新软件.rpm

4)删除

删除对应的软件包(rpm安装或yum安装),其他方式(编译二进制)无法删除。

yum,rpm安装软件,删除软件的时候,建议通过rpm命令删除,非必须不推荐删除软件

复制代码
rpm -e 软件包

3、yum安装方式

yum是软件包管理器,替我们下载rpm包,替我们安装

推荐安装 命令补全增强工具

复制代码
yum install -y bash-completion bash-completion-extras

1)yum安装软件全流程

  • yum命令:下载与安装软件包,配置文件/etc/yum.conf
  • yum仓库/源:存放软件包地方,配置目录/etc/yum.repos.d/*.repo repository

2)yum源配置

使用虚拟机(私有云),物理服务器需要配置yum源

如果使用公有云,则一般都是配置好的

ini 复制代码
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.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目录,这是yum配置的核心
enabled=1 是否开启是个yum源
gpgcheck=1 开启软件包检查,未来自建仓库可以关闭
gpgkey 用于检查的秘钥,如果关闭检查gpgkey省略

那么我们应该如何配置yum源呢?我们以阿里云为例

链接指引

bash 复制代码
#1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#2、下载yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#3、下载增强yum源(企业增强包) https://developer.aliyun.com/mirror/epel
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
#4、刷新缓存
yum makecache

3)yum命令配置文件

未来在正式环境中几乎很少修改。未来也就是我们想把yum安装过的rpm包进行保存。

适用于把常用的rpm包安装后,留下缓存,这样就形成了一个自己的yum源。

修改/etc/yum.conf配置,找出keepcache行=0改为=1即可

keepcache

=0关闭缓存,软件下载安装后自动删除rpm包。

=1开启缓存,软件下载安装后保留rpm包。(自建yum源)

ini 复制代码
[root@nanjing ~]# vim /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

测试重新安装即可

复制代码
yum reinstall -y sl

4)yum命令详解

yum命令 格式和说明
yum insatll -y 软件
yum provides 内容
yum search all 内容
yum repolist 查看源地址
删除 yum remove 删除软件包和依赖
yum clean all 清除缓存
yum update/upgrade
选项 -y 遇到yes/no的时候选择yes
a)增-安装软件
makefile 复制代码
必会:yum install -y tree
-y表示提示是否安装,是否确认的时候默认选择yes
熟悉:重新安装软件包
yum reinstall -y tree
b)查-检查软件/搜索软件
less 复制代码
必会:根据软件包内容
yum provides 命令或文件 找出这个命令或文件属于的软件包
#rpm -qf进阶版本,软件要已经安装
备用搜索命令
yum search all ifconfig 
结果会很多。一个一个测试。

查看yum源信息

复制代码
yum repolist

显示yum仓库中所有软件

复制代码
yum list
c)删

尽量不要使用yum命令删除软件,删除的时候可能会把依赖删除掉

删除软件包yum remove

不推荐使用,remove会删除依赖,如果要删除推荐使用rpm -e

删除/情况本地缓存.

yum clean all 自建yum仓库需要使用,使用公有云一般不需要使用

d)改-升级

yum insatll 的时候安装或升级

专用更新的命令

yum update 或 yum upgrade,软件或命令有BUG或漏洞,需要更新下.

【必备】那些年想用缺没装的软件(Linux必备工具及软件包名称)

kotlin 复制代码
tree   vim wget  bash-completion  bash-completion-extras  lrzsz  net-tools sysstat  iotop iftop htop unzip nc nmap telnet bc  psmisc httpd-tools  bind-utils nethogs expect
相关推荐
oioihoii1 分钟前
C++20协程如何撕开异步编程的牢笼
linux·服务器·c++20
叫致寒吧1 分钟前
自动化运维工具 Ansible
运维·自动化·ansible
冉佳驹6 分钟前
Linux ——— Git的核心操作流程、进程状态及环境变量相关知识
linux·git·进程·环境变量·进程状态·fork
黑不溜秋的7 分钟前
Ubuntu 20.04 安装 搜狗输入法
linux·运维·服务器
norsd7 分钟前
CentOS 设置 DNS
linux·运维·centos
XXYBMOOO17 分钟前
使用 HTML5 Canvas 实现可交互的数据瀑布流(隐藏式运维模式)
运维·交互·html5
KaDa_Duck19 分钟前
DASCTF 2025下半年赛 PWN-CV_Manager复盘笔记
linux·笔记·安全
Blossom.11821 分钟前
Transformer时序预测实战:用PyTorch构建股价预测模型
运维·人工智能·pytorch·python·深度学习·自动化·transformer
模型启动机22 分钟前
Google推出托管MCP服务器,让AI Agent轻松接入其工具生态
运维·人工智能·ai·大模型
星夜落月23 分钟前
从零开始:在服务器上部署Material for MkDocs完全指南
运维·markdown·建站