1、软件包是对于一种软件所进行打包的方式。在不同的操作系统中,软件包的类型有很大的区别。
对于Linux系统中,软件包主要以两种形式出现:二进制包以及源代码包。
二进制包:
1)传统的red hat linux二进制包
2)deb:debian系统的二进制包
3)Autopackage
源码包:
源代码则主要适用于自由软件的安装,用户需要自己编译它们。
2、软件包的组成:
1)二进制程序
2)库文件
3)配置文件
4)帮助文档
3、包管理器的基本功能:
1)打包
2)安装包
3)查询包
4)升级包
5)卸载包
6)校验包数据库管理
4、RPM包管理器:RPM包管理器就是一个用来管理报的基本功能的工具,但是RPM包管理器在解决包之间的依赖关系时比较麻烦,所以又出现了包管理器的前端管理器yum,yum介绍完rpm之后介绍,先来说明一下rpm包的命名格式。
在使用rpm包的时候,有时候我只需要使用包里边的个别功能,所以软件包又会分为主包和支包。
获取rpm包的途径:
1)发行商的光盘或站点服务器
centos:
http://mirrors.163.com
3) http://rpm.pbone.net
来源合法性验证:获取到rpm包之后需要对包的完整性和合法性进行校验
1)源程序:通过md5或者sha512进行校验码验证
2)rpm包:
验证包完整性:校验码
验证来源合法:公钥加密算法
5、rpm包管理:常用的选项
-ivh:安装rpm包
--test:不真正安装rpm包,仅测试
-ivh --nodeps:忽略依赖关系安装
-ivh --replacepkgs:重新安装,原来的配置文件一般不会被覆盖,新安装的配置文件将会被重命名为以.rpmnew为后缀的文件
-e:卸载rpm包,如果卸载被其他程序所依赖的包,把依赖者一同卸载或者忽略依赖关系或不卸载
-qa:查询所有已经安装的包
-q:查询某个包是否安装
-qi:查询包的描述信息
-ql:查询包安装之后在当前系统生成的文件列表
-qf:查询文件是哪个包安装生成的
-qd:查询安装后生成的帮助文档
-qc:查询包安装后生成的配置文件
-q --script:查询包的相关的脚本,脚本有四类,preinstall安装前脚本,preunistall卸载前脚本,postinstall安装后脚本,postuninstall卸载后脚本。
-pql:查询安装后生成的文件列表
-qpi:查询尚未安装包以及其简单描述信息
-U:升级或安装
-F:升级
rpm包管理:检查来源合法性和软件包完整性
包完整性:通过单向加密机制(md5|sha1)
来源合法性:通过公钥加密机制(RSA)
导入制作者的公钥,centos发行版的公钥在iso文件中;
导入命令:rpm -import /path/to/gpg-key-file
rpm -K /path/to/package_file
rpm --checksig /path/to/package_file
--nosignature:不检查来源合法性
--nodigest:不检查完整性
rpm包管理:数据库重建
数据库:/var/lib/rpm/
重建:
rpm --initdb:初始化
如果事先不存在一个数据库,则新建之;
rpm --rebuilddb:重建
直接重建数据库,会覆盖原有的库;
6、yum:前端管理工具
要使用yum管理应用程序,首先得配置其可用的yum仓库,保存在配置文件中
/etc/yum.conf
/etc/yum.repos.d/*.repo
配置文件格式:由两段组成,类似windows的ini配置文件
[main]:主配置段
[repo]:仓库配置段,
配置repo:
[repo_ID]
name=String
baseurl=仓库的访问路径
enabled={1|0}
gpgcheck={1|0}
gpgkey=公钥文件(可以在本地,也可以是服务器路径)
cost=定义此仓库开销,默认为1000
yum的常用命令:
yum的各命令:
1)repolist [all|enabled|disabled]:列出所有可用yum repo
2)clean [all|packages|metadate|expire-cache|rpmdb|plugins]:清理缓存
3)list [all|installed|avilable]:列出rpm包
4)info package_name:列出包的描述信息
5)grouplist:列出所有的包组
6)groupinfo "package_group_name":显示包组信息
7)install package_name ...:安装指定的程序包
8)reinstall package_name...:重新安装指定的程序包
9)check-update:检查可升级的包
10)update package_name...:升级指定的程序包
11)erase|remove package_name...:卸载某个包,依赖这个包的包也会被卸载
12)whatprovides|provides /path/to/somefile:查询某文件时由哪个包生成的
13)groupinstall "group_name":安装指定的包组
14)groupremove "group_name":卸载指定的包组
三个跟开发相关的包组:
Desktop Platform Development:有图形程序时需要安装此组
Server Platform Development
Development Tools
7、配置yum仓库来安装软件包
1)挂载cdrom作为仓库
2)配置yum源
3)查看yum源
4)安装zsh的包