Linux软件安装之rpm—yum

一,Linux软件包:有二进制包与源代码包

包管理器:包含数据库和程序组成清单,能将编译好的程序打包成一个或几个文件,可用于实现安装,卸载,升级,检验,数据库管理,主流的有RedHat的rpm后缀为.prm,Debian的dpkg后缀为.deb

数据库包含

程序名及版本,程序之间的依赖关系,功能说明,安装生成的个文件路径级校验信息

程序组成清单包含

文件清单,安装卸载时运行的脚本

程序的命名格式

源代码命名:name-version.tar.{gz|gz2|xz}

Version包含:major.minor.release

Rpm命名:name-version-release.arch.rpm

Release为rpm包的版本号与源码发行号无关。

arch适用的硬件平台

程序间的依赖关系:程序间的依赖关系非常繁杂,为了解决这个问题

Debian的dpkg升级为apt-get

RedHat的rpm升级为yum(依赖于rpm工作)

二,rpm包:

rpm的分包机制:主包命名和源程序一样

子包需要在name后加上功能说明

例如:主包:

bash-4.2.3-3.centos7.x86_64.rpm

子包:

bash-a-4.2.3-3.centos7.x86_64.rpm

bash-b-4.2.3-3.centos7.x86_64.rpm

bash-devel-4.2.3-3.centos7.x86_64.rpm

rpm包的获取途径

1,  发行光盘或站的服务器

http://mirrors.163.com

http://mirrors.sohu.com/

2,  项目官网

3,  第三方机构或个人制作并公开的rpm包

http://rpmfind.net

http://rpm.pbone.net

rpm包的合法性验证:

来源合法性

数据完整性

rpm包的安装

rpm [option] /path/to/package_file

-i:install安装

-v:显示较详细信息

-vv:详细信息

-vvv:更详细的信息

-h:使用#号表示安装进度,一个#代表2%

组合-ivh

--test:测试是否可安装,而不安装

--prefix PATH:将软件安装到指定目录

--nodeps:不考虑依赖关系,强制安装。

--replacepkgs:重新安装,如果原文件作了修改,则不执行替换,而是将应该安装的

配置文件重命名为.rpnew文件

rpm包的升级:

新版本替换老版本

rpm[option] /path/to/pakage_file

-u:有老版本则升级,没有则安装  -Uvh

-F:必须有老版本,否则不安装   -Fvh

--force:强制升级,可能会使依赖此包的程序无法运行

rpm包的卸载:

Rpm[option] package_name

-e:卸载

如果存在依赖,一种是将依赖于此的安装包一并卸载,二是忽略依赖关系,但可能回事依赖的安装包运行不正常–nodeps

如果包的配置文件安装后曾被改动过,卸载时不会卸载而是被重命名为.rpmsave文件

rpm查询操作:

1,  查询包是否安装

rpm –qpackage_name …可以查询多个,空格分隔

2,  查询所有已安装的包:

rpm –qa   按条件过滤rpm –qa|grep ‘pattern’

3,  查询包的描述信息

rpm –qipackage_name

4,  查询包安装生成了那些文件

rpm –qlpackage_name

5,查询某包安装生成了那些配置文件

rpm –qc package_name

6,查询某包安装生成了那些文件

rpm –qdpackage_name

7,查询程序包的相关脚本

rpm –q –scriptspackage_name

8,查询某文件是由那个包安装生成的

rpm –qf/path/to/package_file

9,对尚未安装的包进行查询

rpm –qpi /path/to/package_file

rpm –qpl /path/to/package_file

rpm –qpc /path/to/package_file

rpm –qpd /path/to/package_file

效验:检查包安装后生成的文件属性是否发生变化

rpm –V package_name

各属性代表的意义,某属性为变化显示为.

S file Size differs

M Mode differs (includes permissions and file type)

5 digest (formerly MD5 sum)differs

D Devicemajor/minor number mismatch

L readLink(2) path mismatch

U User ownership differs

G Group ownership differs

T mTime differs

P caPabilities differ

rpm包来源合法性及完整性检验

前提:在当前系统上导入包的制作者的公钥

导入:

rpm --import/path/to/key_file

# rpm -qa gpg-pubkey*

显示所有已经导入的gpg格式的公钥

# rpm -qi gpg-pubkey-NAME

显示密钥的详细信息

检查包:安装过程中会自动执行

手动检查:

rpm -K /path/to/package_file

rpm --checksig /path/to/package_file

不检查包完整性:

rpm-K --nodigest

不检查来源合法性:

rpm-K –nosignature

数据库重建

上边我们说过,数据库里包含了程序名及版本,程序之间的依赖关系,功能说明,安装生成的个文件路径级校验信息,如果书没有数据库,那么rpm包的安装将会无法确定依赖关系等所以我们要学会数据库的重建

数据库的目录为/var/lib/rpm

初始化:rpm - -initdb如果没有库则会创建一个,如果有则不创建

重建:rpm - -rebuilddb:直接重建覆盖原有数据

三,yum  

yum的功能

可以解决rpm包的依赖关系

yum的工作流程

第一步:获取仓库数据缓存与本地/var/cache/yum

第二部:yum客户端程序在本地分析元数据文件,并结合本地系统环境(已安装的包)做出

要安装的程序包的决策

第三部:获取程序包根据决策联系Yum仓库,下载各程序包缓存于本地后,一并进行安装;

 yum配置文件中可用的四个变量

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

如RedHat6.5,则替换为6;

$arch:系统架构

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

$uuid:

$YUM0-9:在系统中定义的环境变量,可以在yum中使用

文件中以变量的方式指定对应的参数就是为了适应文件路径下的更新,而不用每次都更新路

径。

yum使用机制

要使用yum必须确保有yum仓库可用

Rpm包的文件服务器中,repodate目录的父目录就是一个仓库

Rpm包的获取路径

ftp格式的        ftp://server/path/to/repository

http格式的    http://server/path/to/repository

nfs格式的      nfs://server/nfs_path

file本地文件    file:///path/to/repository

光盘镜像文件         file:///media/cdrom

yum还提供了repo格式的配置文件,在其中指明仓库访问路径及各种属性

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

其他配置文件:/etc/yum.repos.d/下以.repo结尾的

yumrepo文件的格式。

[REPOID]

name=somefor this repository

baseurl=file:///media/cdrom

http://server/path/to/repository

enabled={0|1} 默认不启用为0,启用为1(仓库状态)

gpgcheck={0|1}0不检测,1检查,默认

gpgkey=URL(指向KEY地址)

mirrorlist=URL to a file (可以讲baseurl指定在一个文件中,用mirrorlist指定)

cost={1..n}指定仓库访问开销,默认1000,越小优先级越高

yum仓库包含:

数据:各种rpm包

元数据:数据文件,包名,版本信息,各个包所含的文件类表,依赖关系,报分组信息

Yum下的各种数据包,只显示了10个

yum仓库的类型

base库:通常为系统发行版所提供的程序包

updates库:升级安装包库,优先级高于base

yum仓库自建

1、如何自建基于光盘镜像的yumrepo

找一个挂载镜像

创建一个yum仓库指向镜像

2、自建提供yum仓库的中心服务器

ftp,http, nfs

以http为例,步骤:

(1)安装httpd程序,并启动服务

#rpm -ivh httpd-

或者

#yum install httpd

我选择yum安装

安装成功

启动服务

#service httpd start

#chkconfig httpd on (设定开机启动状态)

(2)httpd的文档根目录为/var/www/html:

创建子目录,存放某相关的所有rpm包

我们在html创建一个repository作为仓库目录

(3)为仓库生成元数据文件,以使能够作为仓库使用

#rpm -ivh createrepo-

或者

#yum install createrepo

#createrepo /path/to/rpm_repo/

这就是我们自己创建的仓库,然后配置/etc/yum.repos.d/*即可使用

(4) 配置yum客户端使用此仓库即可

配置方法见yum的使用机制

Rpm与yum的使用及仓库创建就完成了

时间: 2024-12-15 07:15:46

Linux软件安装之rpm—yum的相关文章

linux软件安装、rpm操作命令、本地yum配置(有什么用)

1.yum是什么? yum的全称是yellow dog updater,modified,是一个shell前端软件包管理器;基于RPM包管理,能够从指定的服务器下载RPM包并自动安装,可以自动处理依赖性关系,并且一次性安装所有依赖的软件包,无需一次次频繁的下载.安装. 2.yum有什么作用? yum可以避免源码安装,从而简化安装过程. [RPM格式的安装包:是在redhat系列下的软件安装包,无法在ubuntu系统中识别,是一种可执行程序; deb格式的安装包:是ubuntu系统特有的安装包格式

Linux软件安装之RPM

linux程序包管理的实现,rpm包管理器 rpm命令实现程序管理: 安装:i,--install 升级:-U,update,-F,--freshen 卸载:-e,--erase 查询:-q,--query 校验:-V,--verify 数据库维护:--builddb,--initdb 安装,升级是要用 Package_File (zsh-4.3.11-4.el6.centos.2.x86_64.rpm ) 卸载,查询是要用 Package_name  (zsh) 安装: rpm {-i|--i

Linux 软件安装与卸载YUM

除了可以帮助用户安装程序包之外,还可以帮客户解决程序包之间的依赖关系 YUM本身是一个程序包管理程序,YUM的客户端如果想要安装程序,需要到程序包仓库服务器上寻找相关资源. YUM客户端会从程序包仓库那里下载一个软件信息列表,上面包含了程序包仓库服务器上拥有的程序包信息以及程序包之间的依赖关系.程序包仓库服务器会制作一个软件信息列表的校验码,客户端每次使用YUM时会自己计算一个软件信息列表的校验码与仓库服务器的比较,如果不一样说明服务器的软件有改动,需要重新下载软件信息列表. YUM程序不能解决

linux软件安装管理之yum

yum(全程为yellow dog Updater,Modified),是一个前段软件包管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无需繁琐的一次下载,安装. 基于c/s架构 yum源文件在/etc/yum.repos.d/目录下 CentOS-Base.repo文件是默认生效的 其余的几个是不生效的 cat /etc/yum.repos.d/CentOS-Base.repo [base]: 容器名称,就是个标称 n

linux软件安装rpm、srpm,yum功能

1.linux软件安装方式,常用的有: 1)dpkg:Debian Linux社区开发出来的,使用的linux版本有,B2F,Ubuntu等 2)RPM:最早由Red Hat公司研发出来,使用的版本有Fedora,CentOS,SUSE等. 2.RPM(RedHat Package Manager):是一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套管理机制. 3.软件安装的目录: 1)/etc:一些配置文件放置的目录 2)/usr/bin:一些可执行的文件案 3)/usr/

16、Linux软件管理工具rpm详解

1 Linux软件安装概述 安装程序的方式: 软件包概述 RPM RPM的缺点 RPM包 RPM分包 RPM命令的使用 rpm 包管理 升级注意项 如何安装rpm软件包 如何卸载rpm软件包 如何升级rpm软件包 如何查询rpm软件包 如何查看与rpm包相关的文件和其他信息 如何校验rpm包 RPM的数据库 1 Linux软件安装概述 安装程序的方式: 通用二进制格式:直接解压压缩文件,就可以使用.但一定要注意安装平台. 软件包管理器:如RPM. 软件包管理器的前端工具:如YUM. 源代码编译.

Linux软件安装——软件包

Linux软件安装——软件包 摘要:本文主要学习了Linux下软件安装的相关知识. 软件包 简介 Linux下的软件包众多,且几乎都是经GPL授权.免费开源(无偿公开源代码)的.这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改. GPL,全称General Public License,中文名称“通用性公开许可证”,简单理解GPL就是一个保护软件自由的一个协议,经GPL协议授权的软件必须开源. Linux下的软件包可细分为两种,分别是源码包和二进制包. Linux源码包 实际上,

Linux软件安装——安装软件的命令

Linux软件安装——安装软件的命令 摘要:本文主要学习了如何在Linux系统中安装.更新.卸载软件. rpm命令 rpm命令用来在Linux系统上进行软件的安装. 基本语法 安装命令: 1 [[email protected] ~]# rpm -ivh 包全名 如果没有安装则安装,如果已经安装则升级: 1 [[email protected] ~]# rpm -Uvh 包全名 如果没有安装则不安装,如果已经安装则升级: 1 [[email protected] ~]# rpm -Fvh 包全名

Linux温习(一)Linux软件安装及管理

Linux软件包管理系统种类 APT(Advanced Package Tool ) 包名:packagename_version_arch.deb 组成:debian-binary +control.tar.gz +data.tar.gz 常见系统:Ubuntu.Debian等 RPM(RedHat Package Management) 包名:packagename_version_arch.rpm packagename_version_arch.src.rpm 组成:spec文件+应用程