三种安装方式;
rpm包安装
源码包安装
二进制包安装
18. linux------rpm包安装 | yum安装工具 - 图1
一,使用rpm工具安装rpm软件包

安装软件包 -i
显示安装过程 -v
显示安装进度条 -h

一,rpm包管理工具

CentOS6和CentOS7都要安装的企业运维常用基础工具包 yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y

1.安装rpm包

  1. [root@xuliangwei ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
  2. [root@xuliangwei ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

2.安装互联网上的rpm包(没有依赖)

  1. [root@oldboy ~]# rpm -ivh /mnt/Packages/unixODBC-2.3.1-11.el7.x86_64.rpm
  2. [root@oldboy ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm

3.安装软件包,有依赖关系 ( 很麻烦 )
rpm -ivh /mnt/Packages/samba-4.8.3-4.el7.x86_64.rpm
18. linux------rpm包安装 | yum安装工具 - 图2

  1. ps rpm安装A软件,如果该软件依赖了B软件,必须先安装BC。才能安装A软件。
  2. 选择使用yum来安装( 自动处理依赖关系
  3. yum仅仅负责安装软件。至于后续查询软件安装在哪,或者软件安装与否 ,都可以使用rpm命令来实现。(配合使用)

2.升级rpm包

         rpm -Uvh  xx.rpm
             安装  zabbix-agent3.0   升级 zabbix-agent4.0        


1.检查软件包zabbix-agent3.0安装了没有
    [root@oldboy ~]# rpm -qa zabbix-agent
    zabbix-agent-3.0.0-1.el7.x86_64

2.希望升级到zabbix-agent4.0,首先要找到zabbix-agent4.0的包,然后进行升级
[root@oldboy ~]#

[root@oldboy ~]# wget https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
[root@oldboy ~]# rpm -Uvh zabbix-agent-4.0.0-2.el7.x86_64.rpm
准备中… ################################# [100%]
正在升级/安装…
1:zabbix-agent-4.0.0-2.el7 ################################# [ 50%]
正在清理/删除…
2:zabbix-agent-3.0.0-1.el7 ################################# [100%]

3.检查升级后的版本
[root@oldboy ~]# rpm -qa zabbix-agent
zabbix-agent-4.0.0-2.el7.x86_64

3.卸载rpm包

( 不太建议生产环境执行卸载操作 )
[root@oldboy ~]# rpm -e zabbix-agent #卸载软件(清理对应的文件)
[root@oldboy ~]# rpm -qa zabbix-agent #检查是否已卸载

4.查询rpm包

选项 描述
rpm -q 查看指定软件包是否安装

[root@oldboy ~]# rpm -q zabbix-agent
zabbix-agent-4.0.0-2.el7.x86_64

rpm -qa 查看系统中已安装的所有RPM软件包列表

[root@oldboy ~]# rpm -qa zabbix-agent
zabbix-agent-4.0.0-2.el7.x86_64

查多个包(不太记得包名时)

[root@oldboy ~]# rpm -qa | grep -E "zabbix-agent|bash"
bash-completion-2.1-6.el7.noarch
zabbix-agent-4.0.0-2.el7.x86_64
bash-4.2.46-30.el7.x86_64

rpm -qi 查看指定软件的详细信息

[root@oldboy ~]# rpm -qi zabbix-agent

rpm -ql 查询指定软件包所安装的目录、文件列表

[root@oldboy ~]# rpm -ql zabbix-agent
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf
.....

rpm -qc 查询指定软件包的配置文件

[root@oldboy ~]# rpm -qc zabbix-agent
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

rpm -qf 查询文件或目录属于哪个RPM软件 rpm $(which ) ; yum provides

[root@oldboy ~]# which wget
/usr/bin/wget
[root@oldboy ~]# rpm -qf /usr/bin/wget
wget-1.14-15.el7_4.1.x86_64

rpm -qf 有一个弊端: 只能查看系统中已经存在的命令和文件—->对应的软件包?
当真正要查询一个系统中不存在的命令,或文件,我们会选择使用 yum provides 去查询

[root@oldboy ~]# yum provides chattr

总结下rpm牵扯到哪些相关的参数:
rpm
选项:
-ivh 安装一个rpm包,并显示详细信息,同时打印安装的进度条
-Uvh 升级一个rpm包,并显示详细信息,同时打印安装的进度条 (如果软件不存在则按安装操作)

    (提供软件名称即可,不用带软件的版本号之类的)
    -e    卸载软件包
    -q    查询软件包
    -qa    查询所有已安装的软件包
    -ql    查询软件的存放路径    (所以的文件)
    -qc    查询软件的配置文件
    -qf    查询系统中已存在的命令或者文件 所属那个rpm包提供

扩展
[root@testvm02 ~]# rpm -q ghostscript #查看对应的rpm包.
ghostscript-8.70-19.el6.x86_64
[root@testvm02 ~]# rpm -qR ghostscript #R的意思就是requires就是依赖哪些软件包.


二,yum安装工具

一,什么yum?、什么是yum源? 什么是yum仓库?

一个源,就是一个网址。这个网址对应的就是一个仓库,这个仓库中有很多的rpm包。
加一个源网址,就相当于是在添加一个仓库。

二,配置的源:
base源: 基础软件包 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
epel源: 第三方软件 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

学习服务:
nginx: 官方提供的repo文件
zabbix:
docker:

三,yum的基本使用、安装、卸载、升级、查询等操作

1. 使用yum安装软件包

1. yum非交互式安装
[root@web01 ~]# yum install vsftpd -y #非交互(yum通过公网仓库搜索进行安装)

2.yum直接安装公网的rpm包, 会自动查找当前系统上已有的仓库解决依赖关系
[root@web01 ~]# yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba-4.8.3-4.el7.x86_64.rpm

3.yum直接安装本地rpm包,会自动查找当前系统上已有的仓库解决依赖关系
[root@www.oldboyedu.com ~]# yum localinstall samba-4.8.3-4.el7.x86_64.rpm

    rpm -ivh 进行安装  (安装过程碰到了依赖怎么处理呢?) 缺什么找什么,然后安装
    yum localinstall  (安装过程碰到了依赖怎么处理?)   他会自动处理依赖
        1.分析软件的依赖
        2.通过所有已经配置的repo源,上对应的仓库去寻找所需要的依赖包
        3.安装所有的依赖包,最后安装本地的rpm

下载一个rpm包到本地
[root@container ~]# wget https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.6/x86_64/RPMS/mongodb-org-3.6.0-1.el7.x86_64.rpm

安装 rpm -ivh mongodb-org-3.6.0-1.el7.x86_64.rpm
#配置一个MongoDB的源
[root@container ~]# cat /etc/yum.repos.d/mongodb.repo
[mongodb-org]
name = MongoDB Repository
baseurl = https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ (源)
gpgcheck = 0
enabled = 1
gpgkey = https://www.mongodb.org/static/pgp/server-3.6.asc

通过yum localinstall本地方式安装软件
[root@container ~]# yum localinstall mongodb-org-3.6.0-1.el7.x86_64.rpm


1.使用yum重新安装软件包的方式
[root@web01 ~]# rm -f /etc/vsftpd/vsftpd.conf
[root@web01 ~]# yum reinstall vsftpd
[root@web01 ~]# rpm -qc vsftpd


2.使用yum更新软件包

1.对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[root@web01 ~]# yum check-update

2.更新acl软件
[root@web01 ~]# yum update acl -y

3.更新整个系统所有的软件,包括内核 (通常刚装完系统会进行执行) 非常危险
[root@web01 ~]# yum update -y


3..使用yum卸载软件包

[root@container ~]# yum install vsftpd -y
[root@container ~]# yum remove vsftpd -y

四,与yum仓库相关指令(扩展了解)
[root@web01 ~]# yum repolist #查看 当前可用的仓库
[root@web01 ~]# yum repolist all 查看所有的仓库(不管是否可用)

如何启用或禁止仓库
两种方式:
1.找到该仓库的repo文件,将里面的enable 修改为 0不启用 1启动
2.gzip /etc/yum.repos.d/xx.repo 压缩该文件,让该文件失效

3.查找一个命令或文件所属的软件包是什么?
[root@web01 ~]# rpm -qf $(which cd)
bash-4.2.46-31.el7.x86_64

PS: rpm需要知道命令的绝对路径, 如果不存在该命令是无法查找到该命令所属的软件包
[root@web01 ~]# yum provides cd
[root@web01 ~]# yum provides ifconfig
PS: yum不需要知道命令的绝对路径,只需要知道命令即可
  yum会通过所有已启用的仓库进行查找那些软件包中涵盖了需要查询的命令
ps:
  1.如果查询不到,检查命令是否写错,如果写错,修改即可.
  2.如果修改命令还是查询不到,请检查是否仓库真的没有软件包涵盖此命令, 建议添加更多yum源(仓库)

三,与yum缓存相关指令

1.缓存rpm包方式一、修改yum全局配置文件
[root@web01 ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
cache=keep1 #启动缓存

2.清除yum缓存
[root@web01 ~]# yum clean all #清除所有的缓存信息
[root@web01 ~]# yum clean packages #清除缓存的软件包

了解即可
[root@web01 ~]# yum install -y yum-plugin-downloadonly #插件
[root@web01 ~]# yum install httpd -y —downloadonly —downloaddir=/tmp

六 .组包相关指令,(了解即可)
[root@web01 ~]# yum groups list
#安装一整个组的软件
[root@xuliangwei ~]# yum groups install Development tools
Compatibility libraries
Base Debugging Tools

yum删除包组
[root@web01 ~]# yum groups remove -y Base

七,历史记录指令,(了解即可)
#1.查看历史执行yum命令
[root@web01 ~]# yum history

2.查询历史执行yum命令ID详细信息
[root@web01 ~]# yum history info N

3.撤销历史执行过的yum命令
[root@web01 ~]# yum history undo N

八,如何搭建一个本地的yum仓库:

1.准备一个iso镜像文件  (它里面有很多的rpm包,可以使用   wget  tree,练习用系统镜像包就好 )
       连接上虚拟机

2.挂载我们的光盘至本地的某个目录下
[root@container ~]# mount /dev/cdrom  /mnt
mount: /dev/sr0 is write-protected, mounting read-only

3.注释掉所有的repo文件,然后自己 新添加一个repo文件   (  添加一个本地源 )
[root@container ~]# gzip  /etc/yum.repos.d/*
[root@container ~]# cat /etc/yum.repos.d/oldboy.repo
[local-oldboy]
name = Local Packages
baseurl = file:///mnt
enabled = 1
gpgcheck = 0

4.使用yum命令安装软件测试

[root@container ~]# yum remove wget -y
[root@container ~]# yum  install wget

Dependencies Resolved Package Arch Version Repository Size Installing: wget x86_64 1.14-15.el7_4.1 local-oldboy 547 k Transaction Summary Install 1 Package

注释:
[root@container ~]# cat /etc/yum.repos.d/oldboy.repo
[local-oldboy] #仓库名称,可随意表示
name = Local Packages #仓库的描述 可通过 yum repolist查看
baseurl = file:///mnt #我们的仓库在那里,使用什么协议访问 #http:// ftp:// file://
enabled = 1 #是否启用该仓库 1 表示启动 0表示不启用
gpgcheck = 0 #是否要校验软件包的合法性 ( 0 不校验 )

总结:
1.yum 源(地址) —-> ( 公网| 本地 ) (仓库平台) 仓库里面就是一推的rpm
2.yum相关的指令
yum install 安装
yum reinstall 重装
yum update 更新
yum remove 删除
yum localinstall 本地安装
yum repolist 查看仓库总和的rpm包
yum repolist all 查看所有的仓库 ( 包括启用和禁用 )

    yum provides        查询命令是 哪个仓库下的哪个软件包提供
    yum groups install     #安装组包
    yum groups remove      #移除组包

    yum history 
    yum history info
    yum history undo 

    yum clean all                #清理所有的缓存
    yum clean packages        #清理所有已缓存的rpm包