Linux——RPM、Yum 安装及yum本地安装

RPM包管理器通过建立统一的文件数据库,对在Linux系统中安装、卸载、升级的各种.rpm软件包进行详细的记录,并能够自动分析软件包之间的依赖关系,保持各应用程序在一个协调、有序的整体环境中运行。

使用RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用“软件名-软件版本-发布次数.操作系统类型.硬件架构类型 .rpm”的文件名形式,如“bash-4.1.2-15.e16_4.x86_64.rpm”。其中硬件平台通常为“i386”“i686”等,表示适用于Intel公司的处理器,“x86_64”表示适用于64位的系统,如果是“noarch”表示不区分硬件架构(支持不同硬件体系的处理器)。

RPM命令具有相当复杂 的命令格式,结合不同的选项及子选项主要可以实现以下三类功能

  • 查询、验证RPM软件包的相关信息
  • 安装、升级、卸载RPM软件包
  • 维护RPM数据库信息等综合管理

维护RPM数据库

重建数据库

init 初始化的意思

rebuild 重新建立 db(datebase)数据库

rebuilddb重新建立数据库

[root@localhost ~]#rpm --rebuilddb
或
[root@localhost ~]#rpm --initdb
导入验证公钥

import 导入的意思

[root@localhost ~]#rmp --import
/media/cdrom/RPM-GPG-KEY-redhat-release

查询RPM软件包信息

查询已安装的RPM软件包信息

rpm [选项] 软件包

查询功能主要通过 “ -q ” 来实现,主要针对当前系统中已经安装的软件包

  • -qa 查看已安装所有软件包
  • -qi 查看软件包更详细信息
  • -ql 查看软件包安装的所有文件包括路径
  • -qf 根据指定文件,查看属于哪个软件包
  • -qc 查看此软件包所有配置文件以.conf .cnf .ini文件属于配置文件,包括路径
  • -qd 查看软件包的文档(包括路径)
查询未安装的RPM软件包信息

rpm [选项] 软件包

通过 “ -qp ” 可以针对尚未安装的RPM包文件进行查询

  • -qpi 查看未安装软件包详细信息
  • -qpl 查看该软件包准备要安装的所有目标目录、文件列表

安装和升级RPM软件包

  • rpm -i 指安装指定的软件包

  • rpm -U 升级指定的软件包

  • rpm -v显示详细信息

  • rpm -h友好的显示文件大小

卸载指定的RPM软件包

  • rpm -e + 软件包名

  • rpm -v显示详细信息

  • rpm -h友好的显示文件大小

通常安装指定软包包时使用:rpm -ivh + 软件包名,卸载指定软件包时使用:rpm -evh +软件包名

如何查看yum源:

首先找一个目录作为挂载点,这里我们就使用/mnt,将/dev/sr0挂载到/mnt/目录下

mount /dev/sr0 /mnt

/mnt/packages (packages 包 里面有各种安装包)

yum list

挂载语法:

mout 设备名称 挂载点*(本地目录)*

rpm安装:

Linux——RPM、Yum 安装及yum本地安装_第1张图片
Linux——RPM、Yum 安装及yum本地安装_第2张图片

rpm安装过程中遇到依赖性问题,无法解决

yum安装:

可以使用yum仓库来解决:(如果使用官方,则使用的都是最新包)

[root@localhost ~]# yum install httpd -y
已加载插件:fastestmirror, langpacks
base                                                         | 3.6 kB  00:00:00     
extras                                                       | 2.9 kB  00:00:00     
updates                                                      | 2.9 kB  00:00:00     
updates/7/x86_64/primary_db                                  | 2.8 MB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn
正在解决依赖关系
…………省略部分内容…………
已安装:
  httpd.x86_64 0:2.4.6-90.el7.centos                                                

作为依赖被安装:
  apr.x86_64 0:1.4.8-5.el7                       apr-util.x86_64 0:1.5.2-6.el7      
  httpd-tools.x86_64 0:2.4.6-90.el7.centos       mailcap.noarch 0:2.1.41-2.el7
  

rpm卸载:

[root@localhost ~]# rpm -evh bind
准备中...                          ################################# [100%]
正在清理/删除...
   1:bind-32:9.9.4-50.el7             ################################# [100%]

yum卸载:

[root@localhost ~]# yum -y remove httpd
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-90.el7.centos 将被 删除
--> 解决依赖关系完成

……………省略部分内容………………

删除:
  httpd.x86_64 0:2.4.6-90.el7.centos                                                

完毕!

yum私网仓库

yum公网仓库

  • 1)自建仓库

  • 2)官方仓库

yum list 加载yum列表
yum安装语法:yum -y install 软件包
yum 包卸载语法:yum -y remove 软件包
清空缓存:yum -clean all (出现卡顿,延迟可使用)

安装过成功需要手动确认, 安装时或卸载时 -y 可以免交互

Linux——RPM、Yum 安装及yum本地安装_第3张图片
Linux——RPM、Yum 安装及yum本地安装_第4张图片

在无网络情况下建立本地yum仓库

yum文件,都以.repo为结尾的配置文件

进入yum本地配置文件

[root@localhost ~]# ping www.baidu.com       //确定目前无网络状态
ping: www.baidu.com: 未知的名称或服务
[root@localhost ~]# cd /etc/yum.repos.d/      //进入yum配置文件目录
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

repo结尾的全是配置文件(需要使用网络,因为我们是在无网络情况下,所以暂时用不到,可以创建一个目录移动进去)

[root@localhost yum.repos.d]# mkdir yum
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  yum
[root@localhost yum.repos.d]# mv CentOS* yum
[root@localhost yum.repos.d]# ls
yum

现在,我们在yum.repos.d里面建立手工配置,建立一个文件,名字随意,如:abc

格式 vim abc.repo

进入后进行配置(如下图):

[文件名字]

描述信息,yum仓库的名称

指定软件所放的路径 ,file:// 是固定格式 /mnt是路径

1为开启yum仓库

0为关闭校验,不需要检查了

:wq 保存退出
Linux——RPM、Yum 安装及yum本地安装_第5张图片
这时使用yum list 就可以加载出来软件包了

[root@localhost yum.repos.d]# vim abc.repo
[root@localhost yum.repos.d]# yum list
已加载插件:fastestmirror, langpacks
abc                                             | 3.6 kB     00:00     
(1/2): abc/group_gz                               | 156 kB   00:00     
(2/2): abc/primary_db                             | 3.1 MB   00:00     
Loading mirror speeds from cached hostfile
已安装的软件包
GConf2.x86_64                         3.2.6-8.el7             @anaconda
GeoIP.x86_64                          1.5.0-11.el7            @anaconda
ModemManager.x86_64                   1.6.0-2.el7             @anaconda
ModemManager-glib.x86_64              1.6.0-2.el7             @anaconda
NetworkManager.x86_64                 1:1.8.0-9.el7           @anaconda
NetworkManager-adsl.x86_64            1:1.8.0-9.el7           @anaconda
………………省略部分内容…………

Linux——RPM、Yum 安装及yum本地安装_第6张图片

然后就可以进行安装了

[root@localhost yum.repos.d]# yum -y install httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-67.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-67.el7.centos,它被软件包 httpd-2.4.6-67.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-67.el7.centos 将被 安装
--> 解决依赖关系完成

…………省略部分内容…………

已安装:
  httpd.x86_64 0:2.4.6-67.el7.centos                                   

作为依赖被安装:
  httpd-tools.x86_64 0:2.4.6-67.el7.centos                             

完毕!

安装成功。通过实验可以看本地yum源会存在列表中没有此源文件而造成无法安装RPM包的问题,但是本地

yum源是可以在无网络情况下正常安装RPM包。

并且yum可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

你可能感兴趣的:(Linux)