«

rpm软件包管理

指尖二进制 • 1 年前 • 732 次点击 • LINUX


RPM概述:RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

[root@localhost ~]# ls /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
/mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
zsh-5.0.2-28.el7.x86_64.rpm
软件名主版本号次版本号修订elease(第几次发布版本)操作系统版本软件包是64位包

修订指是的第几次修改bug。发布指的是:第几次发布。 发布时,可能只是对软件安装的默认参数做了修改,而没有其它改动。

安装rpm软件
RPM工具使用分为安装、查询、验证、更新、删除等操作

-i是install的意思,安装软件包
-v显示附加信息,提供更多详细信息
-V校验,对已经安装的软件进行校验
-h--hash 安装时输出####标记

rpm在安装和更新升级时,使用包的全名
rpm对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。
它默认是去目录/var/lib/rpm下面进行搜索。当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。

从本地下载安装

[root@localhost ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
[root@localhost ~]# cat /etc/shells |grep zsh
/bin/zsh

网上下载直接安装centos epel扩展源

[root@localhost ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

安装centos epel扩展yum源。 注:epel源是对centos7系统中自带的base源的扩展。base源可以理解位光盘的镜像

rpm查询功能

-a查询所有已安装的软件包
-f系统文件名(查询系统文件所属哪个软件包),反向查询
-i显示已经安装的rpm软件包信息,后面直接跟包名
-l查询软件包中文件安装的位置
-p查询未安装软件包的相关信息,后面要跟软件的命名
-R查询软件包的依赖性

查询指定的包是否安装

[root@localhost ~]# rpm -q zsh

查询所有已安装包中带vim关键字的包

[root@localhost ~]# rpm -qa|grep vim

查看find命令的路径

[root@localhost ~]# which zsh
/usr/bin/zsh
[root@localhost ~]# rpm -qf /usr/bin/zsh 
zsh-5.0.2-28.el7.x86_64

查询已经安装的rpm包的详细信息或作用

[root@localhost ~]# rpm -qi lrzsz

针对没有安装的RPM包,要加参数:-p

[root@localhost ~]# rpm -qpi /mnt/Packages/php-mysql-5.4.16-42.el7.x86_64.rpm 

查看rpm安装后,将生成哪些文件

[root@localhost ~]# rpm -qpl /mnt/Packages/zip-3.0-11.el7.x86_64.rpm 

rpm包卸载和升级

[root@localhost ~]# rpm -qa zsh
zsh-5.0.2-28.el7.x86_64
[root@localhost ~]# rpm -e zsh
[root@localhost ~]# rpm -qa zsh

参数:--nodeps 忽略依赖,建议在卸载时不要用rpm去卸载有依赖关系的包,应该用yum

[root@localhost ~]# rpm -e --nodeps lrzsz

因为升级时会有一些依赖包要解决。 所以一般我们使用yum update来升级。

[root@localhost ~]# rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm 

YUM的使用
yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记

YUM:解决依赖关系问题,自动下载软件包,它是基于C/S架构
C=client S=ftp\http\file

[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Media.repo 
[centos7]            #yum源名称,在本服务器上唯一的,用来区分不同的yum源          
name=CentOS7         #对yum源描述信息
baseurl=file:///mnt  #yum源的路径,提供方式包括FTP(ftp://...)、HTTP(http://...)、本地(file:///...光盘挂载目录所在的位置)
enabled=1            #为1,表示启用yum源;0为禁用
gpgcheck=0           #为1,使用公钥检验rpm包的正确性;0为不校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  #指定进行rpm校验的公钥文件地址

网络yum源

[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

get 下载文件 ,-O 将wget下载的文件,保存到指定的位置,保存时可以重新起一个名字,或者直接写一个要保存的路径,这样还用原来的文件名。

yum常用操作:

[root@localhost ~]# yum install -y httpd        #安装软件包, -y 直接安装
[root@localhost ~]# yum -y update               #升级软件包,改变软件设置和系统设置,系统版本内核都升级
[root@localhost ~]# yum -y upgrade              #升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变
[root@localhost ~]# yum -y update               #不加任何包,表示整个系统进行升级
[root@localhost ~]# yum info  httpd             #查询rpm包作用
[root@localhost ~]# yum provides /usr/bin/find  #查看命令是哪个软件包安装的
[root@localhost ~]# yum -y remove 包名          #卸载包
[root@localhost ~]# yum search keyword          #按关键字搜索软件包

yum安装开发工具软件包组

[root@localhost ~]# yum grouplist   #查看有哪些软件包组

显示中文,如果想变成英文,则执行以一下命令

[root@localhost ~]# echo $LANG
zh_CN.UTF-8
[root@localhost ~]# LANG=en_US.UTF-8
[root@localhost ~]# yum grouplist

测试:
卸载开发工具软件组中的gcc包

[root@localhost ~]# yum remove gcc -y

安装开发工具软件包组,安装这组软件包时,把gcc再安装上了

[root@localhost ~]# yum groupinstall 'Development Tools' -y
还没收到回复