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包的命名格式。

Linux—程序包安装与管理_Linux—程序包安装与管理

在使用rpm包的时候,有时候我只需要使用包里边的个别功能,所以软件包又会分为主包和支包。

获取rpm包的途径:

 1)发行商的光盘或站点服务器

 centos:

    http://mirrors.163.com

http://mirrors.sohu.com

 2) http://rpmfind.net

 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的包

Linux—程序包安装与管理_Linux—程序包安装与管理_02

Linux—程序包安装与管理_Linux—程序包安装与管理_03

Linux—程序包安装与管理_Linux—程序包安装与管理_04

Linux—程序包安装与管理_Linux—程序包安装与管理_05

Linux—程序包安装与管理_Linux—程序包安装与管理_06

Linux—程序包安装与管理_Linux—程序包安装与管理_07

Linux—程序包安装与管理_Linux—程序包安装与管理_08