RPM包管理

RPM包的基本介绍

  一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
Linux的分发版本都有采用(suse,redhat,centos等等),可以算是公认的行业标准了。

RPM包的简单查询指令

查询已经安装的rpm列表,bash->rpm -qa | grep 软件名称。

比如:请查询看一下,当前的Linux有没有安装firefox
bash->rpm -qa | grep firefox

rpm包的其他查询指令

rpm -ql 软件包 : 查询软件安装了哪些文件以及安装的目录rpm-ql firefox

rpm -qa:查询所安装的所有rpm软件包
rpm -qa | more,分页显示
rpm -qa | grep X: 查询指定软件包,比如查询火狐rmp包[rpm -qa | grep firefox

rpm -qf:文件全路径名查询文件所属的软件包,比如rpm -qf /etc/passwd,查询passwd文件所属的rpm包

rpm -q 软件包名:查询软件包是否安装,比如rpm -q firefox

rpm -qi 软件包名:查询软件包详细信息,比如查看firefox的详细信息rpm -qi firefox

rpm包名基本格式

一个rpm包名:firefox-60.2.2-1.el7.centos.x86_64.rpm
名称:firefox
版本号:60.2.2-1
适用操作系统:el7.centos.x86_64,表示centos7.x的64位系统,如果是i686、i386表示32位系统,noarch表示通用。

卸载rpm包

  • 基本语法
    rpm -e RPM包的名称
  • 应用案例
    案例1:
    删除firefox软件包
    bash->rpm -e firefox
  • 细节讨论
  1. 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
    如:rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1
  2. 如果我们就是要删除foo这个rpm包,可以增加参数—nodeps,就可以强制删除,
    但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
    如:rpm -e —nodeps foo

安装rpm包

  • 基本语法
    rpm -ivh RPM包全路径名称
  • 参数说明
    i = install 安装
    v = verbose 提示
    h = hash 进度条
  • 应用案例
    案例
    卸载和安装firefox浏览器
    步骤:先找到firefox包,你需要挂载上我们安装的centos的iso文件,然后到/run/media/crazyyang/CentOS\ 7\ x86_64/ 下去找rpm包,CentOS\ 7\ x86_64表示的是CentOS 7 x86_64目录。

具体做法:
步骤1:在虚拟机软件的菜单栏中点击虚拟机->设置
步骤2:在硬件选项中,点击CD/DVD,然后指定ISO映像文件。

1610803413612.png

步骤3:进入CentOS7里打开,在桌面上在光驱上单击右键,选择在终端打开

步骤4:进入到终端后,输入pwd查看所在目录,然后输入ls -l列出当前目录的所有内容。

1610803413675.png

步骤5:输入cd Packages,
查询firefox软件包:ls -l firefox-60.2.2-1.el7.centos.x86_64.rpm

1610803413715.png

步骤6:将firefox rpm包移动到/opt/目录下
cp firefox-60.2.2-1.el7.centos.x86_64.rpm /opt/

1610803413748.png

步骤7:进入到/opt/目录,cd /opt/
然后输入rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm,等待安装完成即可

1610803413798.png

步骤8:查询firefox安装包是否安装上,输入rpm -qa | grep firefox

1610803413838.png

YUM包管理

YUM包基本介绍

  Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
使用YUM的前提是Linux可以联网。

yum的基本指令

  • 查询yum服务器是否有需要安装的软件
    yum list | grep xx:会列出指定软件
  • 安装指定的yum包
    yum install xxx:下载安装

yum应用案例

案例:请使用yum的方式来安装firefox。

  1. 先查看firefox rpm包在yum服务器上是否存在,bash->yum list | grep firefox
  2. 安装firefox,bash->yum install firefox,默认安装最新的版本
  3. 输入y
  4. 等待安装完成即可

1610803413871.png

1610803413902.png

修改yum数据源

备份原配置文件

进入yum源配置目录: cd /etc/yum.repos.d

如果没有先安装wget: sudo yum install wget

  修改yum源,就是修改CentOS-Base.repo的内容,所以我们要先备份一下原来的: sudo mv CentOS-Base.repo CentOS-Base.repo.backup

下载新配置文件

然后用wget下载国内的yum源(即CentOS-Base.repo文件),新的在哪呢?目前国内主要有三个yum源:

使用阿里云即可

阿里云

  • CentOS7
  1. sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • CentOS6
sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

网易

  • CentOS7
sudo wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
  • CentOS6
sudo wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo

中科大

  • CentOS7
sudo wget -O CentOS-Base.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
  • CentOS6
sudo wget -O CentOS-Base.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=2

更新元数据

先清除原来的元数据缓存

sudo yum clean all

更新新的元数据缓存

sudo yum makecache