Linux软件包管理
程序组成部分
- 二进制程序
- 库
- 配置文件
- 帮助文件
/etc /bin /sbin /lib
系统启动时就需要用到的文件,所以这些目录不能挂载额外的分区,必须在根文件系统的分区上
/usr/
bin/
sbin/
lib/
操作系统核心
/usr/local/
bin/
sbin/
lib/
etc/
man/
/opt
原来使用的第三方程序安装目录,现在一般用/usr/local
/dev
设备,不能单独分区
kernel2.4之前,设备名都是提前创建的,准备所有的,保证不时之需,缺点:无法根据/dev下文件名判断有哪些设备。
kernel2.6以后,设备名自动创建,按需创建。(udev机制)。
linux软件安装包类型
- rpm包
如software-1.2.3-1.rpm,红帽发行版及衍生版的包管理技术 - dpkg包
software-1.2.3-1.deb,Debian发行版的包管理 - tar包
software-1.2.3-1.tar.gz,源码安装 - bin包
software-1.2.3-1.bin,二进制安装格式
linux软件安装包命名规则
软件包管理器功能
- 打包成一个文件:二进制、库文件、配置文件、帮助文件,安装时将这些文件放入到相应目录。
- 生产数据库,追踪所安装的每一个文件。
- 制作、安装、卸载、升级、查询、校验软件包
后端工具:RPM,dpt
前端工具:yum(依赖于RPM包),apt-get
rpm用法
数据库/var/lib/rpm
- 命令用法
- 安装
-i /path/to/rpm_file
-h 以#显示进度,一个#代表2%
-v 显示详细过程
-vv 更详细
--nodeps 忽略依赖关系,强行安装,与-i搭配使用
--replacepkgs 重新安装,替换原有的安装
--force 强行安装 - 查询
-q
-qa
-qi 查询指定包的说明信息
-ql 查询指定包安装的文件列表
-qc 查询指定包安装的配置文件
-qd 查询指定包安装的帮助文件
-q --scripts 查询指定包包含哪些脚本
-p 与以上配合使用,查询尚未安装的rpm包
-qf 查询文件是哪个安装包安装生产的 - 升级
-U 如果有老版本已安装,则升级;否则,覆盖安装
-F 如果有老版本已安装,则升级;否则,退出
--oldpackage 降级 - 卸载
-e
-e --nodeps 忽略依赖关系 - 校验
-V - 重建数据库
--rebuilddb 重建数据库
--initdb 初始化数据库
- 安装
HTML:hypertext mark language 超文本标记语言
XML:extended mark language
yum用法
C/S架构
yum repository
yum repository
文件服务:ftp、web、
- 客户端
配置文件
yum仓库
yum缓存目录,元数据文件
repodata/目录 - yum仓库元数据文件
- primary.xml.gz
- filelists.xml.gz
- other.xml.gz
- repomd.xml
记录的是上面三个文件的时间戳和校验和,当我们的客户端使用yum安装