Linux系统基础-管理之软件包管理【附http源码安装实例】

2.1 rpm包命名格式:

源程序:name-version.tar.{gz|bz2|xz}version: major.minor.releaserpm包:name-version-release.arch.rpmrelease:通常包含rpm的制作发行号,还包含适用的OSbash-4.3.2-2.el6.x86_64.rpm

像这样的包python-routes.noarch.rpm没有底层的限制.一次制作,一次开发,到处使用.比如一个源码包有10个功能,而我们只使用3个功能,那其他的7个都不知道谁用不用,这样一来对于我们的管理是非常麻烦的,于是出现了分包的概念.分包:将一个大的程序包制作成单独功能的多个包;

[root@Gmq ~]# rpm -qa | grep httpdhttpd-2.2.15-26.el6.centos.x86_64 #→核心包httpd-tools-2.2.15-26.el6.centos.x86_64 #→子包httpd-devel-2.2.15-26.el6.centos.x86_64 #→子包

①、发行商的光盘或站点服务器 以CentOS为例: ②③注意:①发行商,发行光盘中的包,需要升级时,官方释放出升级包;②无论是Centos,还是Redhat他在光盘上提供的包并非完全包含我们能使用到的包,于是Fedora 在互联网上维护这一个叫EPEL额外的,分别面向各个版本的rpm包,所以有了发行商提供的光盘和EPEL就能够满足一般工作的需求了.但是如果对于应用场景比较严格的,还是尽量使用光盘中的包.实在不行才使用上面提供的网站去搜索相关的包.

2.3 rpm包管理:安装

[root@Gmq ~]#wget 包路径->获取rpm安装包[root@Gmq ~]#rpm -i/path/to/rpm_packages…→install#-v->显示安装信息,-vv,-vvv#-h->以#的个数显示安装的进度,一个#表示2%的进度.[root@Gmq ~]# rpm -ivh samba-3.6.9-151.el6.x86_64.rpmPreparing…###########################################[100%]1:samba########################################### [100%][root@Gmq ~]#rpm –ivh –test #→仅测试,不正真执行安装.[root@Gmq ~]#rpm –ivh –nodeps/path/to/rpm_packages…→如果安装时提示有依赖关系,则解决依赖关系或者忽略依赖关系:[root@Gmq ~]#rpm –ivh –replacepkgs /path/to/rpm_packages…#→ 重新安装;原来的配置文件不会被覆盖,新安装的配置文件将会被重命名以,rpmnew为后缀的文件.[root@Gmq ~]#rpm –ivh –force /path/to/rpm_packages… #→强制执行安装

[root@Gmq ~]#rpm –qpackages_name #→查询单个指定的包是否安装.[root@Gmq ~]#rpm –qa packages_name #→查询所有已安装的包.[root@Gmq ~]#rpm –qi packages_name packages_name #→查询指定包的描述信息.[root@Gmq ~]#rpm –ql packages_name #→查询包安装之后在当前系统上生成的文件的列表.[root@Gmq ~]#rpm –qd packages_name #→查询安装后生成的帮助文档.[root@Gmq ~]#rpm –qc packages_name #→查询安装后生成的配置文件.[root@Gmq ~]#rpm –q –scripts packages_name #→查询安装后包相关的脚本.

脚本分类:Preinstall →安装后脚本 Postinstall →安装后脚本Preuninstall →卸载前脚本 Postuninstall →卸载后脚本Postrans →事物

查询尚未安装的rpm包文件的相关信息只需在[options]中加入字母p即可.

[root@Gmq ~]#rpm –pql /path/to/packages_file →查询一下如果这个包安装后生成的文件会放到什么位置.[root@Gmq ~]#rpm –qd packages_name →查询如果这个包安装后生成的帮助文档.

2.6 rpm包管理:升级

[root@Gmq ~]#rpm –Uvh /path/to/packages_file #→ 检查并升级系统中的某个软件包,若该包原来未安装,则等同于”-i”选项[root@Gmq ~]#rpm–Fvh /path/to/packages_file #→ 检查并升级系统中的某个软件包,则放弃安装

2.7 rpm包管理:校验

#检查包安装后生成的文件是否被修改过;[root@Gmq ~]#rpm -V package_nameS file Size differs #→文件大小是否被改变M Mode differs (includes permissions andfile type) #→权限是否被改变5 digest (formerly MD5 sum) differs #→MD5校验是否改变D Device major/minor numbermismatch #→主设备号/次设备号L readLink(2) path mismatch #→路径U User ownership differs #→属主是否改变G Group ownership differs #→属组是否被改变T mTime differs #→时间戳是否被改变P caPabilities differ #→能力

2.8 rpm包管理:检查来源合法性和软件包完整性源程序:通过md5或sha1校验码验正;rpm包:发行商提供的合法性是可信的包完整性:通过单向加密机制(md5|sha1)来源合法性:通过公钥加密机制(RSA)命令:gpg, gpg是pgp的实现.导入制作者的公钥,CentOS发行版的公钥在iso文件中;

[root@Gmq ~]#rpm –import /path/to/gpg-key-file →导入命令:[root@Gmq ~]#rpm–K[–checksig] /path/to/package_file →检查#–nosignature: 不检查来源合法性#–nodigest: 不检查完整性

2.9 rpm包管理:维护RPM数据库数据库存放位置:/var/lib/rpm

[root@Gmq ~]#rpm — initdb →初始化(如果实现不存在一个数据库,则新建)[root@Gmq ~]#rpm –rebuild →重建(直接重建数据库,会覆盖原有的库)

3.3 文件服务器:支持的协议:ftp,http,nfs,file…客户端配置文件指定对服务器访问方式:

①ftp ftp://server/path/to/repo②http ③nfs nfs://server/nfs_path④file file:///path/to/repository

[repo_ID]name=Stringbaseurl=仓库的访问路径enabled={1|0}是否启用此yum仓库gpgcheck={1|0}是否检查程序来源和发性以及完整性gpgkey=公钥文件(可以在本地,也可是服务器端路径)cost=定义此仓库开销,默认为1000,值越小,优先级别越高

3.5 yum命令的使用:

一路走来,我们无法猜测将是迎接什么样的风景,

Linux系统基础-管理之软件包管理【附http源码安装实例】

相关文章:

你感兴趣的文章:

标签云: