LINUX rpm包

来源:互联网 发布:光驱推荐知乎 编辑:程序博客网 时间:2024/06/07 10:57

LINUX rpm包及yum

LINUX是不同与windos图形化界面,所以LINUX极大多数的操作是使用命令行去控制操作系统进行各种操作。

今天我们要讲的是 对 系统之外的文件(或者可以称为软件)安装操作过程以及所需要使用到的命令

关键字:rpm 文件;rpm 命令;yum 命令;文件库


rpm文件:


大家都知道 :一个生物在想要生存 下去 必须需要一个合适的环境。

在计算机的世界里也是这样,一个程序的运行也需要各种复杂的环境。(这里只论述 软件环境)

举个栗子:
ls 是linux 中最常用不过的命令
ldd `which ls`
这里写图片描述

ldd 命令 是查询 二进制程序 所依赖的库文件
ldconifg 加载库文件
/sbin/ldconfig -p:显示本机已缓存的所有可用库文件及路径映射关件
数据库(公共):/var/lib/rpm

这里可以看到一些 lib* 开头的文件 => lib64/*
这些文件 就是 ls 命令 执行时 所依赖的 链接(库)
如果说 移动 或者 删除 其中的 某一个 链接(库)文件都会使 ls 命令不能正常使用 ;严重的可以导致整个系统崩溃呢!所以请小心的对库文件进行操作
这就是 程序 对 环境的 依赖性 !


rpm包 文件

命名 方式

name - VERSION - release.arch.rpm

-name=文件名
-VERSION=版本
-release=发布信息
-arch=运行平台
常见的有 x86: i386,i486,i586,i686
x86_64:x64,x86_64,amd64
-rpm=后缀标示
举栗:bash-4.2.46-19.e17.x86

包:分类和拆包

主包;开发子包;其他子包

Application-VERSION-ARCH.rpm:主包
APPlication-devel-VERSION-ARCH.rpm开发子包
APPlication-utils-VERSION-ARHC.rpm其他子包

包之间:可能存在依赖关系,甚至循环依赖
举栗:A->B->C->D->A
安装A文件需要B,安装B文件需要C,安装C文件需要D,安装D文件需要A;后者如果没有安装则前者无法安装。。是不是特别尴尬。。
不过不用怕,很快就要讲到解决方案啦


rpm {-i|–install} [install-options] PACKAGE_FILE…

-v: verbose
-vv:
-h: 以#显示程序包管理执行进度
rpm -ivh PACKAGE_FILE
[install-options]
–test: 测试安装,但不真正执行安装,即dry run模式
–nodeps:忽略依赖关系
–replacepkgs | replacefiles
–nosignature: 不检查来源合法性
–nodigest:不检查包完整性
–noscripts:不执行程序包脚本
%pre: 安装前脚本; –nopre
%post: 安装后脚本; –nopost
%preun: 卸载前脚本; –nopreun
%postun: 卸载后脚本; –nopostun
–oldpackage:降级
–force: 强制安装

包查询
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作
–whatprovides CAPABILITY:查询指定的CAPABILITY
由哪个包所提供
–whatrequires CAPABILITY:查询指定的CAPABILITY被
哪个包所依赖
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件


YUM rpm的前端程序,使用pythen写的

YUM可以查询到 包的 路径

yum需要有一个 yum repository (包仓库; yum repos 文件)

这些数据存放的
主配置文件 /etc/yum.conf
这里写图片描述

cachedir=/var/cache/yum/$basearch/$releasever 说明该配置文件存在缓存功能,能将每次访问的 repos缓存下来

#注释语句 介绍的是 将 repos文件 命名为 file.repo 单独 放置在 /etc/yum.repos.d 路径下

在/etc/yum.repos.d 路径下 存放着 系统 默认的Yum库 以.repos结尾的文件

这里写图片描述

这点很重要

yum客户端配置文件:

/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
这里写图片描述
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
仓库指向的定义:
[repositoryID] :图中的 [base],[updates],[extras]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
roundrobin:意为随机挑选,默认值
priority:按顺序访问
cost= 默认为1000

创建一个 .pore 文件库

1.进入到etc/yum.pores.d目录下
2.创建一个 .pore 结尾的 文件
3.编辑 该文件
这里写图片描述
(在一个 .pore 库文件中 只有 [base]库名 与 baseurl 库连接是 必须有的 选项)
cd /etc/yum.pores.d
vim filename.pore
#进入该文件后 将
[base]
#仓库名
baseurl=
#库对应路径(服务器;互联网;本地;...)
#注意 :仓库目录有一个 特征:该目录下 存放着一个 repomd 开头的文件,该文件存放着各个 程序的依赖性关系;并且存放着 仓库的 元数据 (文件数量,等)
1

这里写图片描述

原创粉丝点击