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 - 细节讨论
- 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
如:rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1 - 如果我们就是要删除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映像文件。
步骤3:进入CentOS7里打开,在桌面上在光驱上单击右键,选择在终端打开
步骤4:进入到终端后,输入pwd查看所在目录,然后输入ls -l列出当前目录的所有内容。
步骤5:输入cd Packages,
查询firefox软件包:ls -l firefox-60.2.2-1.el7.centos.x86_64.rpm
步骤6:将firefox rpm包移动到/opt/目录下
cp firefox-60.2.2-1.el7.centos.x86_64.rpm /opt/
步骤7:进入到/opt/目录,cd /opt/
然后输入rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm,等待安装完成即可
步骤8:查询firefox安装包是否安装上,输入rpm -qa | grep firefox
YUM包管理
YUM包基本介绍
Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
使用YUM的前提是Linux可以联网。
yum的基本指令
- 查询yum服务器是否有需要安装的软件
yum list | grep xx:会列出指定软件 - 安装指定的yum包
yum install xxx:下载安装
yum应用案例
案例:请使用yum的方式来安装firefox。
- 先查看firefox rpm包在yum服务器上是否存在,bash->yum list | grep firefox
- 安装firefox,bash->yum install firefox,默认安装最新的版本
- 输入y
- 等待安装完成即可
修改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
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