1.Linux系统管理体系——软件包管理
Linux下面的软件包格式为:rpm格式(红帽系列系统,CentOS,麒麟系统)或deb格式(Debian,Ubuntu)
安装软件方式 | 举例 | 说明 | 应用场景 |
---|---|---|---|
yum/apt 方式 | 点外卖,缺啥少啥,外卖解 决 | 通过网络下载软件包,替我们安装, 如果 有依赖自动下载依赖并安装. 自动. | 大部分场景,没有网络可以自 建yum软件仓库,内网使用。 |
rpm/dpkg 方式 | 半成品,缺啥少啥,自己解 决 | 手动下载rpm包,手动安装rpm包,缺少依 赖需要自己解决 | 没有网络,误删除软件包,依 赖较少 |
编译安装 方式 | 自己做,缺啥少啥,自己解 决 | 可以自定义安装,比较漫长,缺少依赖自 己解决 | 软件进行自定义,增加功能 |
二进制安 装方式 | 点外卖+自取,缺啥少啥,自 己解决(绿色软件免安装) | 类似于绿色软件,解压既用,可能需要准 备环境, 并非每个软件都有,一般是服务,数据 库,k8s,promethues监控 | 如果有可以选用,优先选择 yum,没有那就选择二进制方式 |
- 安装方式推荐
- 1️⃣yum优先
- 2️⃣rpm包
- 3️⃣二进制
- 4️⃣ 编译安装
1.1 rpm安装方式
- 增,删,改,查
rpm命令 | 选项及含义 |
---|---|
增加-安装 | ⭐-ivh (-i install ) xxxx.rpm |
查看-检查 | ⭐-qa (query all) 查看软件包是否安装 |
-ql 查看软件包内容 | |
-qf 文件或命令绝对路径 文件或命令所归属的软件包 | |
修改-升级 | -Uvh 升级软件包(如果软件包不存在,相当是ivh安装) |
删除 | ⭐-e 删除软件包 |
1.2 增加-安装rpm包
-ivh
-i install
-v 显示过程
-h 人类可读显示过程
案例01 安装rpm包
#下载软件包
wget --no-check-certificate -P /server/tools/ https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.0-1.el7.x86_64.rpmwget下载指定内容,默认下载到当前目录
-P 下载到指定目录,目录不存在会创建
-no-check-certificate 下载地址https,加上这个选项,如果不加(下载失败)#安装依赖(后面yum部分可以解决软件包依赖和查找依赖)
yum install -y pcre2#安装软件包zabbix-agent2
rpm -ivh zabbix-agent2-6.0.0-1.el7.x86_64.rpm
如果不安装依赖,则会提示缺少依赖而安装失败
1.3 查询 - rpm
- 检查软件包是否安装成功 ⭐️⭐️⭐️⭐️⭐️
# 书写方法 利用管道+grep进行过滤 推荐
rpm -qa |grep zabbix #不使用管道 直接写软件包的名字
rpm -qa zabbix-agent2
- 检查软件包的内容(已经安装) ⭐️⭐️⭐️⭐️⭐️
rpm -ql #listrpm -ql 软件rpm -ql zabbix-agent2
⚠️软件包不等同于命令。
一般情况下一个软件包中有1个命令,tree,telnet软件包。
更多情况中1个软件包下面可能有多个命令,lrzsz(rz,sz),net-tools
- 查询某个命令或文件属于哪个软件包 (熟悉)
rpm -qf 命令或文件的绝对路径,用于查找已经安装命令或文件属于哪个软件包。 后面我们使用yum provides命令查找即可。
未来 一个软件包中可能包含多个命令.
直接通过yum安装就会失败
cowsay 软件包-> cowsay命令-> animalsay命令-> cowthink命令
yum install -y animalsay 则安装失败.
原因: yum/rpm 安装的是软件包,而不是软件包中的命令或文件.
如何通过命令,文件找出归属的软件包(软件包要已经安装)rpm -qf /sbin/ifconfig
1.4 修改-升级 ⭐
用于通过rpm包的方式升级软件。
- 升级软件(小版本
6.0.0 升级到 6.0.7 版本
-Uvh -U表示update/upgrade升级的
wget -P /server/tools/ --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpmroot@myvps ~]# rpm -Uvh /server/tools/zabbix-agent2-6.0.7-1.el7.x86_64.rpm
警告:/server/tools/zabbix-agent2-6.0.7-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中... ################################# [100%]
正在升级/安装...1:zabbix-agent2-6.0.7-1.el7 ################################# [ 50%]
正在清理/删除...2:zabbix-agent2-6.0.0-1.el7 ################################# [100%]
[root@myvps ~]# rpm -qa |grep zabbix
zabbix-agent2-6.0.7-1.el7.x86_64
如果直接使用-ivh安装,会提示配置文件的一些冲突导致安装失败(文件冲突)
1.5 删除
-
删除对应的软件包(rpm安装或yum安装),其他方式(编译,二进制)无法删除。
-
yum,rpm安装软件,删除软件的时候, 建议通过rpm命令删除 , 非必须不推荐删除软件。
-
删除软件包,-e(erase)
rpm -e 软件包
rpm -e zabbix-agent2
rpm -qa |grep zabbix
5.1加餐
echo $?-----------表示上个命令是否执行成功(0表示成功)
2. yum软件包管理
- yum是软件包管理器,替我们下载rpm包,替我们安装.
- 推荐安装 命令补全增强工具
yum install -y bash-completion bash-completion-extras
安装后重新登录Linux,可以对yum选项进行tab键
- yum安装软件流程
- yum源的配置(从哪里下)
- yum命令的配置(如何下载与保存到哪里)
- yum命令
2.1 yum软件安装全流程
- yum命令: 下载与安装软件包 配置文件/etc/yum.conf
- yum仓库/源: 存放软件包地方, 配置目录/etc/yum.repos.d/*.repo repository源
2.2 yum源配置 ⭐️⭐️⭐️⭐️⭐️
- 使用虚拟机(私有云),物理服务器需要配置yum源
- 如果使用公有云,则一般都是配置好的.
yum源配置文件详解 | |
---|---|
[base] | yum源的名字 |
name= | 说明信息 |
baseurl= | yum源地址,打开后要看到repodata目录,这是yum配置的核心. |
enabled=1 | 是否开启这个yum源 |
gpgcheck=1 | 开启软件包检查,未来自建yum仓库可以关闭. |
gpgkey | 用于检查的秘钥. 如果关闭检查gpgkey省略. |
-
更多操作yum源配置文件详解
- 配置文件格式(掌握格式即可)
[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源列表
yum repolist # repo源 list列表
中间的路过
源标识(repo id)
源标识 源名称 状态
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
目前这里从这里可以看出有base,extras,updates,epel 4个yum源
- base extras updates 是系统默认的yum源
- epel 是额外的yum源
- 如何配置置⭐️⭐️⭐️⭐️⭐️
- 阿里云 /etc/yum.repos.d/ CentOS-Base.repo epel.repo
https://developer.aliyun.com/mirror/
#配置base源
1.备份已有yum源的配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.rep
https: /mirrors.aliyun.com/repo/Centos-7.repo# 增强yum源 epel源 ()
yum install -y wget# 2.配置系统默认的源,改为阿里云的。
使用wget或者curl 下载阿里云的yum源的配置文件到/etc/yum.repos.d/目录下
wget -O /etc/yum.repos.d/epel.repo http: /mirrors.aliyun.com/repo/epel-7.repo
下载并改名,存放到指定目录中。# 3.修改了bash,extras,updates是系统默认的yum源,改为了阿里云
https: /mirrors.aliyun.com/
#配置base源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo
https: /mirrors.aliyun.com/repo/Centos-7.repo
#增强yum源 epel源 ()
yum install -y wget
wget -O /etc/yum.repos.d/epel.repo http: /mirrors.aliyun.com/repo/epel-7.repo
- 清华
https: /mirrors.tuna.tsinghua.edu.cn/
# 对于 CentOS 7 新安装的centos 7 没有配置源
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e
's|^#baseurl=http: /mirror.centos.org|baseurl=https: /mirrors.tuna.tsinghua.edu.cn|g
' \-i.bak \/etc/yum.repos.d/CentOS-*.repo
如果已经配置了阿里云的源,修改为清华源,命令如下
CentOS-Base.repo epel.repo
vim中进行替换
:%s#http: /mirrors.aliyun.com#https: /mirrors.tuna.tsinghua.edu.cn#g
:%s#找啥#替换成啥#g
:1,20s#找啥#替换成啥#g
2.3 yum命令配置文件
未来在正式环境中几乎很少修改,未来也就是我们想把yum安装过的rpm包进行保存
- 修改/etc/yum.conf,找出keepcache行=0改为=1即可;
/etc/yum.conf yum命令的配置文件 | |
---|---|
keepcache | =0关闭缓存,软件下载安装够自动删除rpm包 =1开启缓存,软件下载安装后保留rpm。(自建yum源) |
cachedir | yum下载软件包的缓存目录,/var/cache/yum/$basearch/$relesever |
logfile | yum命令的记录 /var/log/yum.log |
/etc/yum.conf[main]
cachedir=/var/cache/yum/$basearch/$releasever #缓存目录
keepcache=1 #是否保留缓存, 0表示不保留缓存, 1表示保留缓存# 测试 重新安装
yum reinstall -y tree cowsay
生产应用的建议keepcache,未来没有网络的环境,可以找个有公网的主机,开启keepcache,下载各种服务软件. 保留缓存,通过缓存的rpm包进行安装.
2.4 yum命令详情 ⭐️⭐️⭐️⭐️⭐️
- 增删改查
yum命令 | 格式与说明 |
---|---|
增 | yum install -y tree |
查 | yum provides 内容 |
yum search all 内容 | |
yum repolist 查看源列表 | |
删除 | yum remove 删除软件包及依赖 |
yum clean all 清空缓存 | |
改 | yum update/upgrade |
选项 | -y 遇到有yes/no的时候选择yes |
4.1增-安装软件
- yum安装软件包
必会:yum install -y tree
-y表示提示是否安装,是否确认的时候默认选择yes使用较少:重新安装软件包
yum reinstall -y tree
4.2查-检查软件/搜索软件
- 查询某个命令属于哪个软件包,查询某个依赖属于哪个软件包。
必会:根据软件包内容
yum provides 命令或文件 找出这个命令或文件属于的软件包
#rpm -qf进阶版本 ,软件要已经安装.
ifconfig备用搜素命令
yum search all ifconfig 结果会很多。
一个一个测试。
[root@oldboy-lnb-king-v3 ~]# yum provides ifconfig 中间内容略net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools 源 :@base 匹配来源: 文件名 :/usr/sbin/ifconfigifconfig属于的软件包:net-tools
- 必会:查看yum源信息
yum repolist
- 熟悉: 显示所有yum仓库中所有软件,未来用于根据软件包名字查找。
yum list
4.3 删
尽量不要使用yum命令删除软件,删除的时候可能会把依赖删除掉。
-
删除软件包-yum remove
-
不推荐使用,remove会删除依赖,如果要删除使用rpm -e
-
删除/情况本地缓存
-
yum clean all 自建yum仓库需要使用,使用公有的yum源,一般不用.
4.4 改-升级
yum install的时候安装或升级。
-
更新的命令。
-
yum update 或 yum upgrade,软件或命令有BUG或漏洞,需要更新下。
yum install -y tree vim wget bash-completion bash-completion-extras lrzsz nettools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bindutils nethogs expecthttps: /www.jianshu.com/p/604b4d79a227 软件说明
3. Ubuntu系统软件包管理
- apt源
- apt/apt-get --------> yum
- dpkg -----------> rpm
3.1配置源
vim /etc/apt/sources.lis
deb https: /mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb https: /mirrors.aliyun.com/ubuntu/ focal-security main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb https: /mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe
multiverse# deb https: /mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe
multiverse
# deb-src https: /mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe
multiversedeb https: /mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse编辑完成一定运行
apt update #命令,用于生成本地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.表示OK了。
3.2安装软件
安装软件并测试
apt install -y cmatrix lolcat sl cowsay
3.3 检查软件
功能 | debian(ubuntu) | 红帽(Centos,麒麟) |
---|---|---|
检查是否安装 | dpkg -l | rpm -qa |
安装 | dpkg -i | rpm -ivh |
检查软件包内容 | dpkg -L | rpm -ql |
删除 | dkkg -r | rpm -e |
root@oldboy-ubuntu-server:~# dpkg -l |grep lolcat
ii lolcat 42.0.99-1 all colorful `cat`
root@oldboy-ubuntu-server:~# dpkg -l |grep cmatrix
ii cmatrix 2.0-2 amd64 simulates the display from "The Matrix"