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文件中。

三、检验一个合格的包管理器需要从哪几方面入手:

1、打包,就是将一个合格的程序包打包成合格的归档文件也就是我们所说的压缩文件。

2、安装,将归档文件也就是压缩文件展开到本地硬盘中,使其可以正常使用。

3、升级,更新程序包的新功能和bug.

4、卸载,从本地硬盘中移除已展开的归档文件;将其删除。

5、 校验。和归档文件的源包进行对比确保程序包是否被人修改过、是否完整一致。

四、根据系统划分由包管理器的种类:

1 、debian和ubuntu使用的deb.

2、redhalt cnetos等Linux使用的rpm.

注:发展到后期RPM is Package Manager.

五、rpm的基础知识

1、rpm是由rpm build打包工具根据specs文件打包生成。

2、rpm包根据功能的不同分为核心包跟支包,核心包是比较常用的功能;支包是特定功能,且在版本号前面有个devel作为标识。

3、 rpm包的名字,如:bash-4.2.4-1.el7.x86_64.rpm

1)bash 是包的名字;

2)第一个4 是包的主版本号;

3)第一个2是修正版本号;

4)第二个4是第一次的包的release号;

5)第一个1是RPM针对本包所做的release号;

6)el7代表本包可以用在哪个系统上什么版本。

7)x86_64表示包属于32位还是64位平台。

4、rpm包在本地生成的数据库是/var/lib/rpm/。

5、rpm包和包之间存在依赖关系,加入A和B依赖于C,卸载了C;AB就无法运行使用。

6、获取rpm的途径:

1)发行版提供的程序包;
       2)Fedora-EPEL
       3)项目的官方站点
       4)搜索引擎

5)系统安装光盘镜像。

六 、用RPM的基本命令对程序包进行管理

1、RPM的命令格式

rpm [命令选项] [ 命令参数] 操作的程序包名称

2、RPM的安装

       rpm –ivh --nodeps –-force sudo

[解析]  i为安装,v为显示详细信息,h为hash是进度信息,nodeps忽略包的依赖关系,force是强制的意思!

3、RPM的卸载

rpm  –e  [--nodeps]  sudo

[解析]  需要注意的是在卸载软件包的时候若和其它包有依赖关系,可以用--nodeps来强制卸载

4、RPM的更新

rpm –Uvh sudo

  rpm –Fvh sudo

解析:Uvh为判断是否有旧版程序包,有则升级;如果没有,则安装;Fvh 判断是否有旧版程序包,有则升级;如果没有不进行任何操作;

5、RPM的查询

rpm  –q[a |f |p |i |l |d |c]  sudo

[解析]

-qa  查询所有已安装的软件包;

-qf  查询 文件所属软件包;

-qp  查询软件包(通常用来看下还未安装的软件包);

-qi  显示软件包信息;

-ql  显示软件包中的文件列表;

-qd  显示被标注为文档的文件列表;

-qc  显示被标注为配置文件的文件列表;

-p: 查询针对是未安装的程序包文件;

-q --scripts:查询程序包相关的脚本:
      preinstall: 安装前脚本;
      postinstall:安装后脚本;
      preuninstall: 卸载前脚本;
      postuninstall: 卸载后脚本。

6、RPM的校验

rpm  -V  sudo(注意:此处只有改动相关文件后才会输出信息)

结果解析:S.5.L.T….

-V校验指定rpm包中的文件

校验内容中的8个信息的具体内容如下:

S 文件大小是否改变

M 文件的类型或文件的权限(rwx)是否被改变

5 文件MD5校验和是否改变(可以看成文件内容是否改变)

D 设备的中,从代码是否改变

L 文件路径是否改变

U 文件的属主(所有者)是否改变

G 文件的属主是否改变

T 文件的修改时间是否改变

文件类型

c 配置文件(config file)

d 普通文档(documentation)

g “鬼”文件(ghost file),很少见,就是该文件不应该被rpm包包含

l 授权文件(license file)

r 描述文件(read me)

7、RPM包的校验

来源合法性验正:非对称加密
        完整性验正:单向加密

导入密钥:rpm --import /PATH/TO/KEY_FILE
        校验:rpm -K /PATH/TO/RPM_FILE

rpm -K /var/tmp/yum-root-vsiZgP/nmap-6.49BETA4-1.x86_64.rpm

七 、yum的介绍和命令操作

1、YUM: Yellowdog Updater Modified

2、yum工作流程图

3、 yum repositories:
       客户端获取文件的三种途径:
            ftp://hostname/PATH/TO/REPO
            http://hostname/PATH/TO/REPO
            file:///PATH/TO/REPO

4、yum程序的配置文件:

1)/etc/yum.conf
            定义全局配置:对所有仓库都适用的配置
        2)/etc/yum.repos.d/*.repo
            一个文件通常用于一个或一组功能相近或相关的仓库

定义一个仓库指向:

3)更新yum仓库

yum repolist显示可用yum仓库列表

yum repoinfo 显示yum仓库列表详细信息

5、yum命令

安装:yum install sudo

卸载:yum remove sudo –y

更新:yum update sudo

查询:

yum info sudo 查询包的简要信息

yum search sudo 基于关键字的搜索,可用于查询某个包的核心包跟支包。

  yum list sudo 查询已安装的包

yum provides /etc/sudo.conf 查询文件由哪个包安装的

包组管理

yum group紧跟yum命令 选项 包组名称,此项仅以groupinfo为例。

6、用本地光盘当仓库源及创建本地仓库

1)用本地光盘当仓库源:

mkdir /cdrom

   mount /dev/cdrom /cdrom

  vim /etc/yum.repos.d/CentOS-Base-aliyun.repo

注意:本地仓库源速度优于互联网所以请指定cost值,默认为1000

2)创建本地仓库

yum install createrepo

mkdir /reposoure

    cp -af /cdrom /reposoure/

    rm –rf /reposoure/cdrom/repodata

    createrepo /reposoure/cdrom/

八、dnf的诞生

虽然yum可以解决包与包之间的依赖关系,但是还是有部分关联不清。所以出现了dnf.

但是因目前还在测试中,所以今天本文不在此做详细讲解。

时间: 2024-10-10 02:31:36

linux中rpm 、yum详解的相关文章

Linux中pam认证详解(下)

Linux中pam认证详解(下) 在上一篇中详细的介绍了pam的介绍.pam认证原理.pam认证构成以及pam验证控制类型,下面向大家详细介绍一下常用的pam服务模块,以及pam认证的应用. 一.常用的pam服务模块 下面是Linux提供的PAM模块列表(只是其中一部分),这其中包含模块文件.模块功能描述和相关配置文件,具体如下: pam_access 提供logdaemon风格登录控制 /etc/security/access.conf pam_chroot 提供类似chroot命令的功能 p

Linux中的sudoer详解

目录 Linux中的sudo详解 一.引言 二.格式 三./etc/sudoers文件 四.sudoers文件讲解 五.其他 Linux中的sudo详解 一.引言 Liunx用户只有两类: 管理员用户---root 普通用户--其他 我们在学习sudo命令之前,肯定学习过su(switch user)命令,su命令是用来切换用户身份的命令,而sudo命令是一种切换用户来执行某种操作的命令 su和sudo的区别: su命令的主要作用是让你可以在已经登录的会话中切换到另外一个用户,换句话说,这个工具

linux中fork()函数详解[zz]

转载自:http://www.cnblogs.com/york-hust/archive/2012/11/23/2784534.html 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事. 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,只有

linux中ls命令详解

s 命令可以说是linux下最常用的命令之一. -a 列出目录下的所有文件,包括以 . 开头的隐含文件.-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.-c 输出文件的 i 节点的修改时间,并以此排序.-d 将目录象文件一样显示,而不是显示其下的文件.-e 输出时间的全部信息,而不是输出简略信息.-f -U 对输出的文件不排序.-g 无用.-i 输出文件的 i 节点的索引信息.-k 以 k 字节的形式表示文件的大小.-l 列出文件的详细信息.-m 横向输出文件名

【转】linux中inittab文件详解

原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/inittab.inittab是一个不可执行的文本文件,它有若干行指令所组成. 理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬

linux命令之yum详解

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt

Linux中rm命令详解

linux下rm命令使用详解---linux删除文件或目录命令 用户可以用rm命令删除不需要的文件.该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是断开了链接,原文件保持不变. rm命令的一般形式为:rm [选项]... 目录... 删除指定的<文件>(即解除链接). -d      --directory    删除可能仍有数据的目录 (只限超级用户) -f      --force          略过不存在的文件,

Linux中用户管理详解

一.原理了解 在Linux系统中,所有的用户和组像一个国家.如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成.在linux中如果你对安全需求比较苛刻,完全可以限制用户的各种行为,不同用户的权限是不同的. 在linux中系统中,它并不认识帐号名称.它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中.我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该

linux中find命令详解

http://blog.csdn.net/pipisorry/article/details/39831419 问题: linux中find命令查找时不包含某些目录 find 命令忽略某个或多个子目录的方法 在linux中用find 进行查找的时候,有时候需要忽略某些目录不查找,可以使用 -prune 参数来进行过滤,要忽略的路径参数必须紧跟着搜索的路径之后,否则该参数无法起作用. eg: [email protected]:/tmp1#find ./ -type f    #/tmp1目录下所

Linux中的sed详解

Sed简介 Sed取各种内容 Stream Editor  流式编辑器 又称行编辑器每次只编辑一行.Sed工作是在"模式空间"中进行的并不操作源文件.对源文件无危害. Sed使用格式 sed [-nefri] 'command' 输入文本 sed使用参数 -n 使用安静(silent)模式.在一般 sed 的用法中所有来自 STDIN 的数据一般都会被列出到终端上.但如果加上 -n 参数后则只有经过sed 特殊处理的那一行(或者动作)才会被列出来. -e 直接在命令列模式上进行 sed