Linux 之RPM和YUM包管理

在Linux的日常维护管理中,管理员要不停的和Linux的程序安装,升级,卸载打交道,这里面用到最多的两个命令就是rpm和yum,甚至有时候我们还涉及源程序的编译安装,用来更高效利用我们的设备,本次博客的主题就是关于rpm和yum命令的介绍和使用。



一:包程序管理简介

过去,许多 Linux 程序以源代码的形式发行,用户把源代码构建为所需的程序或程序集;源代码还附带必需的手册页、配置文件等等,但对于很多系统管理员原来说源代码要想安装上,必须要经过编译才行,但是编译过程又是一个复杂繁琐的过程,对于系统管理很是不方便,也很不容易上手。后来redhat公司提出了程序安装包的发行机制rpm( Red Hat Package Manager)。rpm包之前是用Perl语言编写后来改为使用c语言,因为rpm出现使程序的安装大为方便,现在许多Linux发行商也都采用这种机制,现在rpm包依然成为Linux工业化标准,现在我们把rpm称为Rpm is Package Manager更好些。



二:RPM

1)rpm的命名格式

name-version-relase.arch.rpm

name:程序包的名称

version:程序包源代码的发行号。

relase:rpm程序包版本号.

arch:适用于的硬件平台(x86.x86_64,ppc等)

2)rpm包的安装

命令:rpm [option] /path/to/package_file

选项【option】

-i  :install 安装

-v  :可视安装进度

-h  :可以看到安装进度条

组合在一起 -ivh :在安装过程中能够看到安装进度,安装rpm包时必须要找到rpm本身。

      rpm包的重新安装 (当之前的配置文件修改错误,或删错某个文件此时想重新安装)

--replacepkgs

--test :测试安装,仅测试不给于安装。

rpm包的依赖特性:安装rpm包会遇到一个很让人头疼的事情就是安装时有可能会遇到依赖关系此时,你如果想要继续想安装此包有两种方法可以解决。一是忽略此包继续安装,但安装后可能就不能使用此包,二是根据提示的内容一一把所依赖的包安装上。

如果你想忽略次依赖关系继续安装的话可以使用 --nodepes这个命令来安装。

3)rpm包的卸载

命令:rpm [option] package_name  (注意:后面跟的是所要卸载安装包的名字,不是路径)。

选项【option】

-e: 卸载,擦除。

卸载rpm包时也会遇到依赖关系,你如果想要继续想安装此包有两种方法可以解决。一是忽略继续卸载,二是根据提示的内容一一把所依赖的包卸载掉。--nodepes

4) 升级程序包

命令:rpm [option] /path/to/package_file

选项【option】

-Uvh:升级或安装 :有没有老版本都没问题有就替换,没有就安装。

-Fvh:纯升级  :必须要有老版本才能升级。

--force  : 强制升级。

注意:对内核不能进行升级,只能对内核进行安装。

5)查询程序包

命令:rpm [option] package_name....

选项【option】

-q:查询某包是否安装

-qa:查询所有已经安装的包,通常和grep一起使用。

-qi:查询包的详细信息(已安装的程序包);-qpi(未安装的程序包后面要跟程序全名)下图为已安装包示例(下同)。

-ql:查询某包安装生成了哪些文件;-qpl:查询未安装包生成文件

-qc:查询某包安装生成了哪些配置文件;-qpc:查询未安装包生成了哪些配置文件。

-qd:查询某包生成了哪些帮助文件;-qpd:查询未安装包生成了哪些帮助文件。

6)rpm包的合法性检测

网上有众多的rpm包我们怎样才能判别这些包的合法性呢,这里边引入了公钥的检测方法。我们在当前系统上导入rpm包作者的公钥信息。



三:YUM

   YUM 在 RPM 系统中增加了自动更新和包管理采用C/S架构,包括依赖关系管理。YUM 使用存储库。存储库是包的集合,通常可以通过网络连接访问它们。yum通过内建的微型数据库可以对所要安装的文件进行分析看安装此软件需要哪些depend的文件然后再安装的时侯统一对他们进行安装。yum安装的时候采用先从服务器统一把所需要的文件下载到本地,然后再统一对他们进行安装,对于这些缓存文件我们可以选择是否删除他们。

1)yum客户端

yum客户端提供repo配置文件,里面有仓库的访问路径及各种配置信息。yum客户端的配置文件分为主配置文件及仓库yum源地址配置文件。

yum主配置文件在/etc/yum.conf

在程序缓存目录里有一个$basearch和$releasever.下面对这两个变量做一下解释说明。

$basearch: 系统基本架构,如i686,i586等的基本架构为i386;

$releasever: 程序的版本,对Yum而言指的是redhat-release版本;只替换为主版本号,如RedHat 6.5,则替换为6;

yum源地址配置文件在/etc/yum.repos.d/

yum源地址配置可以分开配置也可以在一个baseurl里进行配置,配置格式如下:

baseurl=ftp://server/path/to/repository

http://server/path/to/repository

nfs://server/nfs_path

file:///path/to/repository

下面的连接地址不能顶格写。

2)yum安装

命令:yum install package_name

yum命令执行后会自动分析安装文件所依赖的包并下载下来后一并安装。

3)yum卸载

命令:yum remove package_name

注意:我遇到了以下情况

***********在给 rhel 6  配置本地源时,有个问题一直都很麻烦。********

Error: Cannot retrieve repository metadata (repomd.xml) for repository: InstallMedia. Please verify its path and try again

原来是rhel 6 新引进的一个包管理工具 Packagekit,这个工具似乎会在每次读取软件仓库之后,会把原本光盘根目录下,也就是一同被你拷贝到软件仓库目录的media.repo 复制一份到/etc/yum.repos.d/,并重命名为 packagekit-media.repo ,而该文件也就是导致本地yum源失效的罪魁祸首。

解决方法:

删除软件仓库中的 media.repo,并删除或重命名/etc/yum.repos.d/packagekit-media.repo

但由于我直接使用 iso 文件作为源,所以无法删除 iso 中的该文件,单单只是删除或重命名 packagekit-media.repo 只能起一次作用,之后又会产生新的packagekit-media.repo 文件,只好索性卸载Packagekit 了。yum remove -y PackageKit看起来一切都正常

-------转自http://yueyizx.blog.51cto.com/

4)清理缓存

yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}

5)升级

yum update package_name

6)yum查询命令

列出所有可用的repo:yum repolist {enabled|disabled|all}

列出rpm包:yum list {all|installed|available}

包的描述信息:yum info package_name



 四:总结

    上面对Linux系统软件管理的rpm和yum的使用方法做了简单的总结,自从有了yum的安装方式Linux对软件的安装已经方便了许多,所以我们也要会自建一个yum源,有时对于只有源的软件我们还要会对他进行编译安装,这些在以后的博客里我在给大家做一介绍。

时间: 2024-10-14 13:27:09

Linux 之RPM和YUM包管理的相关文章

Linux总rpm、yum软件包管理

rpm -q <关键字>  查询相关rpm安装包 rpm -qa |grep <关键字> rpm -ev <包名> 删除特定rpm包,-v显示过程 rpm -e --nodeps <包名> ,遇到依赖包,无法删除时.不检查依赖,直接删除 rpm -e --allmatches --nodeps <包名>删除所有名字相同的包,并忽略依赖. rpm -U <包名>更新软件包 rpm -Uvh fliename.rpm filename1.

linux下rpm,yum学习

linux下RPM及yum学习 linux中程序管理程序主要分为两类 dpkg(Debian Packager):debian,Ubuntu,Knoppix        rpm(Redhat Package Manager):Redhat,Centos,Fedora linux通过管理程序实现程序的安装,但不管是dpkg还是rpm安装软件时若软件存在依赖性关系,则自动安装所需要软件及相关配置,为实现此功能,rpm需包含自己的数据库(/var/lib/rpm),将安装程序分别安装到指定位置,本次

Linux中rpm和yum

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序" 1 rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包,能自动解决包的倚赖性问题,能便于管理大量系统的更新问题.它还

Linux RPM、TAR包管理

一.RPM软件包命令的使用 RPM主要有5种基本操作模式:安装.卸载.刷新.升级及查询.下面分别介绍. 1.安装软件包 命令语法: rpm -ivh [RPM包文件名称] 命令中各参数的含义如下: -i:表示安装软件包. -v:表示在安装过程中显示详细的信息. -h:表示显示水平进度. 例1:安装 sqldeveloper-4.0.1.14.48-1.noarch.rpm软件包. [[email protected] ~]# rpm -ivh sqldeveloper-4.0.1.14.48-1

9.10 rpm yum 包管理

程序包的组成部分 二进制程序:/bin /sbin /usr/bin  /usr/sbin /usr/local/bin  /usr/local/sbin 库文件:/lib64 /usr/lib64 (64位系统) 配置文件:/etc  下子目录 帮助文档:manual.readme.info等 包管理器功能: 打包.安装.卸载.升级.查询.校验 程序包分包机制:(哲学思想:每一个包实现一种功能,组合小程序完成复杂任务) 核心包 支包 程序包命名机制:major.minor.release rp

Linux 基础教程 35-软件包管理-YUM

YUM基础 ? ? 使用RPM在Linux中安装.卸载软件或服务进会经常碰到RPM包的依赖,而我们在安装软件A时,提示依赖于软件B,安装软件B时又会出现提示依赖于软件C等一系列的依赖关系.这时大家会提出有没有一键可以解决在安装过程中所有依赖项的问题?这时就该Linux中的YUM命令展示强大功能的时候了. ? ? YUM全称为Yellow dog Updater, Modified,可执行名为yum,是一个在Fedora/RedHat/CentOS中的Shell前端软件包管理.它是基于RPM包管理

Linux系统之前端程序包管理器-yum

[前言] 当我们使用rpm命令安装程序时,时常会因为程序包之间的依赖关系而焦头烂额,使得很多程序的安装过程复杂而费力,那有没有一种工具可以帮我们解决这个问题呢?当然有啦!这就是我们今天的重点yum,让我们一块来学习总结下吧! [什么是yum] yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依

Linux之Redhat系列程序包管理

安装.升级和卸载应用软件是每个系统不可或缺的一部分:对于在企业使用越来越广泛的Linux操作系统而言,强大而简洁的程序包管理机制为工程师们带来了很大的便利:下文主要介绍在RedHat系列的系统上如何使用RPM/YUM/编译三种方式去管理程序包. 一.RPM程序包管理 PRM全称是Red Hat Package Manager(RedHat 包管理器).Linux RPM软件包的命名有一定的规律:名称-版本-修正版-类型.rpm 例如: RPM命令详解: 功能: 安装.卸载.升级.查询和数据库维护

linux中rpm 、yum详解

一.程序包的组成: 1.底层内核:进程管理.内存管理.网络协议栈.驱动程序等 2.应用程序 :各种应用 使大家更好的通过它完成工作. 二.一个合格的程序包包含以下内容: 1.二进制程序,通常在linux /bin./sbin./usr/bin. /usr/sbin等目录下. 2.库文件.通常在linux /lib./lib64./usr/lib./usr/lib64等目录下. 3.配置文件.一般存放在linux /etc目录下. 4.说明和帮助文档,Linux man 和 info文件中. 三.