首页 > 代码库 > linux程序包管理初步认识
linux程序包管理初步认识
程序的组成部分:二进制程序、库文件、配置文件、帮助文件(手册、文档)
运行模式:选项、配置文件
程序包的组成:
二进制程序文件:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件:/lib, /lib64, /usr/lib, /usr/local/lib
配置文件:/etc, /etc/DIR, /usr/local/etc
帮助文档:/usr/share/man, /usr/local/share/man
doc: /usr/share/doc,
README, INSTALL, ChangeLog
一个二进制程序依赖于哪些库文件:ldd
ldd /path/to/binary_file
程序包管理器:
功能:将编译好的程序打包成一个文件或有限的几个文件,可用于实现便捷地安装、卸载、升级、查询、校验等程序管理;
1、程序的组成清单(每个程序包独有)
文件清单
安装卸载时运行的脚本
2、数据库(公共)
程序名及版本
依赖关系:
功能说明
安装生成的各文件的文件路径及校验码信息
常见程序包有两种程序包:rpm,deb、
常见包的版本:
testapp-VERSION
VERSIO代表:(major)主版本号
(minor)次版本号
(release) 发行版本号
rpm包的命名:name-Major.Minor.Release-release.arch.rpm
rpm包自己的发行号,与源代码的发行号无关;仅用于标识对rpm自身的修订;有时候,此release可能还会包含适用的OS;例如,bash-4.3.2-1.centos6.x86_64.rpm
arch: 适用的硬件平台
x86: i386, i486, i586, i686等;
x86_64, amd64: x86_64
powerpc: ppc
noarch: 跟硬件平台无关;
获取rpm程序包的途径:
1、 优先使用系统发行光盘或者官方站点服务器
镜像
(例如):http://micrrors,sonu.com
2、 程序官方网站
3、 第三方组织
优先选择Fedora-EPEL: epel
搜索引擎
( 例如):1、http://rpmfind.
2、http://rpmfind.net
3、http://rpm.pbone.net
4、http://pkgs.org
4、自己制作。
建议:rpm程序包安装之前要合法性校验正:
合法性校验分为两种:
来源合法性
程序包的完整性
Rpm程序包的安装介绍:
安装语法:rpm {-i | --install} [install-options] PACKAGE-FILE…..
Rpm -ivh [install –options] PACKAGE-FILE…
还包括[install-options]
--replacepkgs:重新安装
--hodeps:忽略依赖关系
--test:测试安装,而不执行真正的安装;dry.rum模式;
升级: --OLDPACKAGE:
升级是用较高版本程序包替换安装原有较老的程序包的过程
升级语法:rpm {-u|--upgrude} [install-options] PACKAGE_FILE ...
卸载:移除已安装的程序包;
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
还包括 –nodeps:忽略依赖关系
--test:卸载测试
注意:卸载某个程序包是先卸载依赖关系在卸载rpm程序包
查询:
查询某程序包是否已安装,或检查已安装的新包的
语法:rpm {-q | --querg} [select-options] [querg—options]
[select – options] 1、查询某包是否安装:
Rpm –q PACKAGE-NAME
2、查询已安装的所有包
Rpm-qa
查询某包的简要说明信息:
语法:rpm-qi PACKAGE-NAME
查询某包安装后生成的所有列表
查询某包安装后生成的所有配置文件的列表
查询某包安装后生成的所有帮助文件的列表
查询某包制作时随版本变化的changelong的列表信息
查询某包提供的capabilities
查询某包所依赖的
查询某包安卸载时的脚本
还包括:preinstall:安装前执行的脚本
Postinstall:安装后执行的脚本
Preuninstall:卸载前执行的脚本
Postuninstall:卸载后执行的脚本
校验:检查包安装后生成的文件是否发生了改变
语法:rpm {-v| --verify} [select-options] [verify-options]
校验:
检查包安装之后生成的文件是否发生了改变
常用用法:rpm -V PACKAGE_NAME
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ
包来源合法性及完整性验正:
rpm --import PUBKEY ...
rpm {-K|--checksig} [--nosignature] [--nodigest] PACKAGE_FILE ...
--nosignature: 不检查来源合法性
--nodigest: 不检查完整性
加密:
对称加密(数据加密)、公钥加密(数字签名)、单向加密(完整性验正)
公共数据库:/var/lib/rpm
重建数据库
rpm {--initdb|--rebuilddb}
初始化:--initdb
如果事先不存在数据,则会新之;否则,不执行任何操作
重新构建:--rebuilddb
无论当前是否已经存在数据库,都会直接重建并覆盖现有数据库;
linux程序包管理初步认识