运维SRE-05 软件管理体系

软件管理体系

概述与Linux安装软件方式

软件安装方式简介详细特点优势缺点
rpm软件包安装rpm是linux软件包格式买回来后只需要简单的加工就可以食用. 但是,没有相关依赖,需要自己解决.自己下载rpm包,自己安装。缺少依赖自己手动解决依赖.只要你有rpm包.通过rpm命令安装.缺少依赖.只能手动解决依赖.
yum命令安装依赖自行解决yum安装软件,替我们下载rpm包,替我们安装rpm包,缺少依赖yum替我们下载.自动检查依赖,自动下载安装依赖网络(也可以自搭建yum仓库解决
编译安装可以自己定义.编译: 源代码—>命令(二进制文件) 编译安装三部曲: ./configure(配置,备菜)—>make(编译,炒菜)—>make install (安装,上菜)可以自定义功能, 这个软件没有rpm包或yum安装不了.步骤繁琐.缺少的依赖需要自己解决.大型软件时间长.
二进制包绿色软件(解压即用)别人配置好,我们只需要解压,简单配置,即可使用方便不是所有软件都有

软件管理体系之rpm命令

  • 目标:熟练通过rpm命令对系统软件进行(查/增)
  • 小知识点:rpm包是Linux(红帽系列)软件包的格式。类似于windows.exe格式
  • rpm命令,管理软件包

1)增加软件

  • 安装/升级
案例01 安装软件包
  • 1.U盘插入系统
  • 2.挂载光盘
/dev/cdrom 
#检查/mnt是否被挂载,如果挂载,umount /mnt卸载下.
#然后挂载光盘到/mnt 
mount /dev/cdrom   /mnt
[root@oldboy81-golden-lnb /oldboy]# mount /dev/cdrom   /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@oldboy81-golden-lnb /oldboy]# df -h
Filesystem                                 Size Used Avail Use% Mounted on
devtmpfs                                   979M     0 979M   0% /dev
tmpfs                                       991M     0 991M   0% /dev/shm
tmpfs                                       991M  9.6M 981M   1% /run
tmpfs                                       991M     0 991M   0% /sys/fs/cgroup
/dev/mapper/centos_oldboy--81--golden-root   50G  8.1G   42G  17% /
/dev/sda1                                 1014M 138M 877M  14% /boot
/dev/mapper/centos_oldboy--81--golden-home   47G   33M   47G   1% /home
tmpfs                                       199M     0 199M   0% /run/user/0
/dev/loop0                                  2.0M   34K  1.8M   2% /inode
/dev/sr0                                    4.4G  4.4G     0 100% /mnt
[root@oldboy81-golden-lnb /oldboy]# ll /dev/cdrom 
lrwxrwxrwx. 1 root root 3 Mar 17 14:45 /dev/cdrom -> sr0
老
案例01 安装软件包 tree telnet
rpm  -ivh   xxxx.rpm 
#删除 tree telnet 
rpm -e tree telnet
#安装tree软件包
[root@oldboy81-golden-lnb ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:tree-1.6.0-10.el7                ################################# [100%]
#安装telnet 
[root@oldboy81-golden-lnb ~]# rpm -ivh /mnt/Packages/telnet-0.17-65.el7_8.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:telnet-1:0.17-65.el7_8           ################################# [100%]
#错误提示 需要依赖
[root@oldboy81-golden-lnb ~]# rpm -ivh /mnt/Packages/tomcat-7.0.76-15.el7.noarch.rpm
error: Failed dependencies:
 apache-commons-collections is needed by tomcat-0:7.0.76-15.el7.noarch
 apache-commons-daemon is needed by tomcat-0:7.0.76-15.el7.noarch
 apache-commons-dbcp is needed by tomcat-0:7.0.76-15.el7.noarch
 apache-commons-logging is needed by tomcat-0:7.0.76-15.el7.noarch
 apache-commons-pool is needed by tomcat-0:7.0.76-15.el7.noarch
 java >= 1:1.6.0 is needed by tomcat-0:7.0.76-15.el7.noarch
 tomcat-lib = 0:7.0.76-15.el7 is needed by tomcat-0:7.0.76-15.el7.noarch

2)查询

案例01 检查软件包是否安装成功
#显示系统中所有已经安装的软件包(高能预警)
rpm -qa
#方法01 rpm -qa |grep/egrep ....   推荐使用.
[root@oldboy81-golden-lnb ~]# rpm -qa |grep tree 
tree-1.6.0-10.el7.x86_64
[root@oldboy81-golden-lnb ~]# rpm -qa |grep telnet 
telnet-0.17-65.el7_8.x86_64
#方法02 rpm -qa 软件包名字(不能缺少内容)
[root@oldboy81-golden-lnb ~]# #方法02 rpm -qa 软件包名字(不能缺少内容)
[root@oldboy81-golden-lnb ~]# 
[root@oldboy81-golden-lnb ~]# 
[root@oldboy81-golden-lnb ~]# rpm -qa tree telnet 
telnet-0.17-65.el7_8.x86_64
tree-1.6.0-10.el7.x86_64
[root@oldboy81-golden-lnb ~]# rpm -qa tree telnet vim
telnet-0.17-65.el7_8.x86_64
tree-1.6.0-10.el7.x86_64
案例02 检查软件包内容
#检查 tree软件包内容
[root@oldboy81-golden-lnb ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
#检查 lrzsz软件包内容
[root@oldboy81-golden-lnb ~]# rpm -ql lrzsz 
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz
案例03 检查ip命令属于哪个软件包(已安装)
  • 一般来说Linux一些命令独立软件包tree,telnet…
  • 还有一些命令属于一个软件包里面的,这个软件包中包含多个命令
#ip命令属于哪个软件包.
[root@oldboy81-golden-lnb ~]# rpm -ql ip 
package ip is not installed
[root@oldboy81-golden-lnb ~]# #ip命令属于软件包,软件包不叫ip 
[root@oldboy81-golden-lnb ~]# rpm -qf /sbin/ip
iproute-4.11.0-30.el7.x86_64
[root@oldboy81-golden-lnb ~]# rpm -ql iproute 
#ifconfig命令属于哪个软件包.
[root@oldboy81-golden-lnb ~]# rpm -ql ifconfig 
package ifconfig is not installed
[root@oldboy81-golden-lnb ~]# which ifconfig 
/usr/sbin/ifconfig
[root@oldboy81-golden-lnb ~]# rpm -qf /sbin/ifconfig 
net-tools-2.0-0.25.20131004git.el7.x86_64
案例04 检查系统软件包中的文件是否发生改变
mv /bin/zcat   /tmp/
touch /bin/zcat
rpm -aV  #显示出当前环境中与系统安装后(rpm安装后) 是否发生变化.
只要T 表示文件被修改mtime 
5   md5表示文件内容发生变化.
[root@oldboy81-golden-lnb ~]# rpm -aV
S.5....T. c /etc/profile/CentOS-Base.repo
S.5....T. c /etc/sudoers

3)删除

  • Linux下面一些不用的软件(已安装),尽量不删,关闭放着即可

4)修改

  • 新旧版本替换
  • 旧版本软件/命令,有漏洞
rpm -Uvh   新的软件包.rpm 
系统有zabbix-agent软件 老版本
系统下载zabbix-agent新版本 升级.
#安装老版本 5.0.0
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm
rpm -ivh zabbix-agent-5.0.0-1.el7.x86_64.rpm
#下载并安装
#rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm
#安装新版本 5.0.21
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.21-1.el7.x86_64.rpm
rpm -Uvh zabbix-agent-5.0.21-1.el7.x86_64.rpm

5)rpm命令补充

案例01 安装或删除软件时候忽略依赖关系
--nodeps
#直接安装软件包提示 没有安装依赖,安装软件包失败.
[root@oldboy81-golden-lnb ~]# rpm -ivh zabbix-agent-6.0.0-1.el7.x86_64.rpm 
warning: zabbix-agent-6.0.0-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
error: Failed dependencies:
 libpcre2-8.so.0()(64bit) is needed by zabbix-agent-6.0.0-1.el7.x86_64
 [root@oldboy81-golden-lnb ~]# 
#加上--nodeps 安装的时候忽略依赖. 强制安装.
[root@oldboy81-golden-lnb ~]# rpm -ivh --nodeps zabbix-agent-6.0.0-1.el7.x86_64.rpm 
warning: zabbix-agent-6.0.0-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-agent-6.0.0-1.el7         ################################# [100%]

6)rpm命令记录

功能具体指令与含义
增加(安装)rpm -ivh
-i install 安装
-v 显示过程
-h 显示过程
查询rpm -qa 检查软件包是否安装
rpm -ql 检查软件包内容
rpm -qf 检查指定的命令或文件属于哪个软件包
rpm -aV 检查系统软件包中文件或命令与刚刚安装的时候是否变化
-q query 查询
-a all 所有
-l list 显示软件包内容
-V verify 校验/检验
删除-e erase 删除
修改-Uvh 如果软件包存在则会升级,如果软件包不存在,则直接安装
-U upgrade 升级
其他–node no deps(dependency)忽略依赖进行安装或删除

软件包管理体系-yum

yum源及yum源配置

1)yum源

  • yum仓库,repository(repo)
  • yum源(仓库):软件包存放地方(我们使用yum命令下载软件包的时候,yum源是随机的)
  • yum源(仓库)类似于手机,应用商城(app store). 下载流程: 商城中输入软件名,自动下载与安装.

在这里插入图片描述

2)yum源配置文件

  • 规定在linux使用yum命令的时候连接哪个仓库(仓库的地址)
  • 配置文件目录: /etc/yum.repos.d/ yum repos(源) d(目录)
[root@hb-sre-001 yum.repos.d]# pwd
/etc/yum.repos.d
[root@hb-sre-001 yum.repos.d]# ll
总用量 4
drwxr-xr-x. 2 root root  220 8月   1 19:36 bak
-rw-r--r--. 1 root root 2523 8月   2 10:53 CentOS-7.9.repo
[root@hb-sre-001 yum.repos.d]# 
  • yum源的核心配置文件详解(常用的yum仓库的名字)
#Base 系统默认源.
#epel 软件仓库扩展. Extra Packages for Enterprise Linux
#yum源配置文件格式
[base]    #源名字,可以随意.
name=CentOS-$releasever - Base - mirrors.aliyun.com  #注释.说明下源作用与地址.
failovermethod=priority    # 很少用, 如果yum源地址挂了.切换备用.
                           # baseurl yum仓库的地址. 这个地址要能访问到repodata目录.
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1                  #这个源是否开启. 使用yum下载是否从这个地址下载.
gpgcheck=1                 #gppcheck 是否进行检查. 对下载后的软件包进行校验. 自己搭建的yum仓库可以关闭enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#源核心配置
[base]  #名字
name=这是个yum #从阿里云下载
enabled=1 #开启这个源
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/ #仓库地址
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

  • 没有epel源的配置方法
#如何增加 epel源.
yum install -y wget
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#-O大写字母O,下载到指定目录的指定文件中.(文件不存在则创建)

3)修改yum源(仓库)的配置

  • 常见的镜像站
http://mirrors.aliyun.com #镜像,yum源..
https://mirrors.tuna.tsinghua.edu.cn/

#阿里云的源
[base]    #源名字,可以随意.
name=CentOS-$releasever - Base - mirrors.aliyun.com   
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1                  
gpgcheck=1                  
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#清华源
[base]    #源名字,可以随意.
name=CentOS-$releasever - Base - mirrors.tuna.tsinghua.edu.cn
baseurl=https:/mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
enabled=1                  
gpgcheck=1                  
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-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

4)使用系统使用的yum源

yum repolist 
[root@oldboy81-golden-lnb /etc/yum.repos.d]# yum repolist 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
repo id               repo name                                           status
base/7/x86_64         CentOS-7 - Base - mirrors.aliyun.com                 10,072
epel/x86_64           Extra Packages for Enterprise Linux 7 - x86_64       13,745
extras/7/x86_64       CentOS-7 - Extras - mirrors.aliyun.com                  509
updates/7/x86_64       CentOS-7 - Updates - mirrors.aliyun.com               3,570
repolist: 27,896

5)yum源小结

  • 使用yum命令流程:yum安装软件,yum命令访问yum仓库
  • yum仓库配置及配置文件格式,掌握每一行含义即可([base])
  • 熟练掌握:给系统配置yum源(增加epel源,修改系统yum源(默认—>清华/阿里云)

yum指令

  • yum增删改查
    1)查询
yum list |grep java 
yum list |grep '^java'
yum list |grep '^^java-1.8.0'

2)某个文件或命令属于哪个软件包

类似于
rpm -qf `which ifconfig`

yum search all ifconfig
yum provides ifconfig


3)查询系统yum源

yum repolist

4)查询软件包信息

yum info

5)查询yum安装过什么软件

yum history
yum history info 3

# yum日志记录
less /var/log/yum.log

6)安装

#01 必会 安装软件
yum install  -y tree 
#-y表示安装的时候不要询问是否安装,是否继续,默认选择yes .
#安装常用工具
yum install -y   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

#02 重新安装
yum reinstall  -y tree 
#03 了解 安装软件包组
yum groups list #软件包组列表
yum groups install  "软件包组名字"
#04 必会 升级
升级所有或某一个软件包。
#更新某个或多个软件包
yum install -y tree  #安装或升级。
#更新所有软件包,安装完成系统后做的。
yum update   #更新所有
yum upgrade  #与update一致。不会更新过时命令

7)删除

不要用
通过rpm -e 删除某个或多个软件包。
#工作推荐: 通过rpm -e删除或关闭放着即可。

8)其他指令(缓存)

#生产缓存
yum makecache

#清理缓存
yum clean all

9)yum命令小结

  • yum安装软件:yum install -y tree
  • yum查询软件包: yum list ; yum provides ;yum search all
  • yum删除软件包: yum remove
  • yum升级: yum update /yum upgrade
  • yum缓存处理: 清除缓存: yum clean all;创建缓存 yum makecache
  • yum localinstall 总结的时候补充下.

10)yum命令配置文件

  • yum源的配置文件/etc/yum.repo.d是以.repo结尾.yum仓库.从哪里下载软件
  • yum命令配置文件:yum缓存存放的位置,yum下载的rpm包是否保留
  • yum命令的配置文件:/etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever   #yum命令下载的软件包缓存目录
keepcache=0                                     #是否保留yum下载的软件包.
$basearch x86_64
$releasever 7
ll /var/cache/yum/x86_64/7/

企业项目:yum仓库搭建

  • 项目背景:日常工作中需要使用到很多的软件包(rpm包),现在在一个没有网络的环境中.想安装一些软件.
  • 项目目标: 安装软件,部署服务.
  • 项目方案选择
    • 方案01: 找个机器,开启keepcache,下载与安装常用软件包,安装服务.把对应的软件包打包并发送到对应的服务器. 优点:简单. 缺点:无
      法知晓依赖关系.
    • 方案02: 自己搭建yum仓库,仓库中存放常用的软件包即可. 精确, 优点:随意根据自己要求定义仓库中软件包.可以变换(增减), 可以被
      其他机器访问. 缺点: 搭建较为复杂.
    • 方案03: 折中方案,通过光盘搭建yum仓库. 优点:简单,快速. 缺点:软件包不全.只能自己使用.仅仅是本地仓库,无法互联.
  • 结果: 目前我们选择方案03, 第2阶段结束选择方案02(未来工作中.)

方案3:配置步骤:

  • 1、挂载光盘
  • 2、配置光盘yum源配置文件.local.repo文件()
  • 3、清除缓存与注释其他yum源
#01 光盘挂载
mkdir -p /data/cdrom 
mount /dev/cdrom /data/cdrom/
tail /etc/fstab
/dev/cdrom                               /data/cdrom             iso9660 defaults        0 0
#02 书写本地光盘源的配置文件
[local]
name=this is local yum yuan
enabled=1
baseurl=file:///data/cdrom/
#baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0

#注释其他的源
cd /etc/yum.repos.d/
 gzip *
 gzip  -d local.repo.gz 
#生成缓存
yum makecache 
#检查本地源
 yum repolist

总结

  • yum源的配置:配置文件的格式
    • 配置文件的格式;
    • 增加yum源(epel源)
    • 更改yum源(系统默认—>阿里或清华)
  • yum指令
    • yum安装软件yum install -y tree
    • yum查询软件:yum list ;yum provides /yum search all
    • yum删除软件包: yum remove
    • yum升级: yum update /yum upgrade
    • yum缓存处理: 清除缓存: yum clean all ; 创建缓存 yum makecache
    • yum localinstall 自己下载rpm包,让yum解决依赖.
  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值