Linux软件包安装:

  系统调用:库

   API: Posix可移植操作系统规范

   ABI: Application Binary Interface应用二进制接口

   Debian: dpt

   RedHat: rpm, Redhat Package Manager

   Dptrpm软件包程序管理工具

  glibc: 系统核心库

软件包的组成部分

  1:二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

  2:库文件:/lib, /usr/lib, /usr/local/lib

  3:配置文件:/etc

  4:帮助文件:手册, README, INSTALL (/usr/share/doc/)

软件包管理工具:

  1:文件清单

  2:文件放置路径

  3:提供的功能说明

  4:依赖关系

  RPM: RPM is Package Manager

  rpm --> yumrpm的前端工具

编译安装:源代码

编译器:gcc, g++

提供编译环境:开发环境

二进制:

  库:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

  帮助手册:/etc/man.config, man -M

  头文件:/usr/include

安装程序的方式:

  通用二进制格式

  软件包管理器

  软件包管理器的前端工具

  源代码编译

rpm: 打包、安裝、查詢、升級、卸載、校驗、数据库管理(重建)

源程序:name-version.tar.{gz|bz2|xz}

version版本号:major.minor.release

   例如:bash-4.3.1.tar.xz  :主版本号4;次版本号3;发行号1

   rpm包:name-version-release.arch.rpm

   发行号:用于标识rpm包本身的发行号,可还包含所适用的操作系统

   el6: rhel6  、centos6:

   arch: 主机平台

   i686x86_64amd64ppcnoarch(不依赖平台)

rpm分包:

  主包:核心包

  分包:支包

OS: 安装程序

   fedora-epel红帽额外的rpm

   http://mirrors.sohu.com

   http://rpmfind.net搜索rpm包的站点

   http://rpm.pbone.net/

rpm包有验正机制:来源的合法性、软件包的完整性

   gpg --> pgp

   非对称加密:pu(公钥), pr(私钥)

   数字签名、密钥交换

RedHat系列官方公钥:

   /etc/pki/rpm-gpg/

   RPM-GPG-KEY-CentOS-6

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6就将密钥导入rpm中,就能验证合法性了

   用单项加密算法计算出rpm包的特征码,再用rpm包制作者的私钥加密特征码并附加在特征码的后面(里面),我们验证时,由于作者是用私钥加密的,就只有公钥可以解密,只要能解密出来,就验证了其来源是合法的。解密出来的是生成的特征码(散列值),使用相同的算法再算一次散列值,如果散列值相同,就验证了软件包的完整性

rpm

  -K

  --checksig

安装:rpm -i /PATH/TO/RPM_FILE

  -i|--install

  -v, -vv, -vvv详细信息

  -h: #显示安装进度

  -ivh

忽略依赖关系:

  --nodeps(不建议使用)

测试安装:

  --test

重新安装:

  --replacepkgs

warning: /etc/sysconfig/named created as /etc/sysconfig/named.rpmnew

卸载:rpm -e 包名

  --nodeps不会将有依赖关系的包都卸载掉

warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave

查询不加版本号rpm -q|--query 包名

查询所有已经安装包:

  rpm -qa不用加包名

  rpm -qa | grep 'pattern'

查询包的摘要信息:

  rpm -qi 包名

查询包安装生成的文件清单:

  rpm -ql 包名    rpm -qf由那个包生成的

查询包安装生成的配置文件:

  rpm -qc 包名

查询包安装生成的帮助文档:

   rpm -qd 包名

查询包相关的脚本:

  rpm -q --scripts 包名

  preinstall: 安装前脚本

  postinstall: 安装后脚本

  preuninstall: 卸载前脚本

  postuninstall: 卸载后脚本

查询尚未安装的包的相关信息:

  rpm -qpi /path/to/rpm_file可以组合其他选项

   -i

   -l

   -d

   -c

  --scripts

升级:

  -U: 升级+安装

  -F:升级

   -Uvh

   -Fvh

  --force强行升级

  --nodeps忽略依赖关系

注意:内核不应该升级,应该尽可能安装,它允许多版本并存;

校验:rpm -V 包名

rpm包的数据库:

  /var/lib/rpm

数据库重建:

  --initdb: 新建数据库

  --rebuilddb: 重建数据库 不需要加任何参数


例子:先确定要下载的包的路径

wget http://172.16.0.1/cobbler/ks_mirror/rhel-6.4-i386/Packages/包名   下载,

        rpm的相关功能_配置文件

显示所下载的包是合法的,是完整的,就可以安装了

       rpm的相关功能_管理工具_02

显示安装完成了

       rpm的相关功能_源代码_03

通过对软件包的查看可以发现软件包已经卸载掉了