前言
第1章 rpm认知与格式剖析 1
1.1 软件包的演变史 2
1.2 rpm软件包基础知识 3
1.2.1 rpm软件包的功能 3
1.2.2 rpm实现引子 6
1.3 rpm 格式剖析 7
1.3.1 从协议说起 7
1.3.2 rpm格式总览 8
1.3.3 rpm之lead 9
1.3.4 header structure 11
1.3.5 rpm之signature和header 14
1.3.6 rpm之archive 18
1.4 rpm解析例程 19
1.5 本章小结 21
第2章 rpm制作与spec详解 22
2.1 rpm生成要素 23
2.2 rpm制作实例 23
2.2.1 环境准备 24
.2.2.2 源码准备 25
2.2.3 spec文件编写 25
2.2.4 生成rpm包 26
2.3 rpmbuild介绍 30
2.3.1 概述 30
2.3.2 使用说明 30
2.4 spec文件解析 31
2.4.1 spec组成元素 32
2.4.2 spec元素解析 32
2.5 本章小结 58
第3章 深入理解和使用yum 59
3.1 rpm运行机制浅析 60
3.1.1 rpm数据库和packages文件 61
3.1.2 rpm日志和定时任务 64
3.1.3 yum/rpm阻塞现象 65
3.2 yum的出现 66
3.2.1 rpm面临的问题 66
3.2.2 yum的构成 68
3.3 yum服务搭建实例 69
3.4 软件包的索引机制 72
3.4.1 createrepo命令 73
3.4.2 索引文件 78
3.5 本地缓存 84
3.5.1 缓存中的内容 84
3.5.2 索引中的sqlite文件 86
3.6 配置详解 87
3.6.1 全局配置 88
3.6.2 repo配置 92
3.6.3 插件配置 97
3.7 本章小结 97
第4章 yum的插件机制 98
4.1 插件介绍 99
4.1.1 插件的概念 99
4.1.2 插件的调用方式 99
4.2 yum的插件 100
4.2.1 yum插件的组织方式 100
4.2.2 yum插件调用情景 101
4.3 yum 插件开发注意事项 104
4.3.1 函数接口规范 104
4.3.2 插件私有选项读取方法 105
4.3.3 插件类型 105
4.4 再议仓库优先级 107
4.5 插件开发与实例分析 108
4.5.1 view_hook插件 108
4.5.2 downloadonly插件 110
4.5.3 fastestmirror插件 113
4.6 本章小结 118
第5章 企业软件管理现状与规划 119
5.1 企业软件管理特点 120
5.1.1 异地多机房 120
5.1.2 服务器数量多 121
5.1.3 软件数量多 121
5.1.4 os版本较多 121
5.1.5 服务高可用 122
5.1.6 网络环境复杂 122
5.2 问题总结 123
5.2.1 软件个数过多 123
5.2.2 rpm冲突 123
5.2.3 开发测试包和线上包 124
5.2.4 不同rhel版本支持 124
5.2.5 单点问题 124
5.2.6 跨机房访问带来的带宽问题 124
5.2.7 大量客户端引起的网络瓶颈 125
5.2.8 异地机房灾备 125
5.3 软件仓库规划之路 125
5.3.1 软件仓库划分 126
5.3.2 redhat仓库分支规划 128
5.3.3 第三方包仓库规划 133
5.3.4 最终仓库结构 134
5.3.5 测试包和线上包管理 136
5.4 本章小结 137
第6章 软件管理平台设计 138
6.1 软件发布环节 140
6.1.1 组成要素 140
6.1.2 软件发布设计 140
6.1.3 软件模型 142
6.2 索引更新设计 143
6.2.1 更新效率问题 143
6.2.2 解决方案 145
6.2.3 软件工作模型 147
6.3 构建高可用索引服务器 148
6.3.1 软件发布概述 148
6.3.2 读写分离的必然性 149
6.3.3 改进后的软件模型 149
6.4 加入镜像机制 150
6.4.1 镜像服务器问题分析 150
6.4.2 解决方案 151
6.4.3 改进后的软件模型 152
6.5 加入缓存机制 153
6.5.1 缓存服务器的出现 153
6.5.2 搭建缓存服务器 154
6.5.3 改进后软件模型 156
6.6 镜像与缓存的选择 157
6.6.1 镜像与缓存的搭建原则 157
6.6.2 新机房中镜像与缓存的搭建实现 158
6.7 智能dns和多机房容灾 159
6.7.1 多机房容灾的必要性 159
6.7.2 解决方案 160
6.7.3 软件模型 161
6.8 节点数据同步优化 162
6.8.1 问题分析 162
6.8.2 解决方案 164
6.9 软件管理平台最终模型 164
6.10 本章小结 165
第7章 平台实现梗概 166
7.1 平台实现约定 167
7.2 机器角色与职能 169
7.2.1 打包发布服务器 169
7.2.2 索引服务器 172
7.2.3 镜像服务器 174
7.2.4 缓存服务器 175
7.2.5 访问客户端 176
7.3 角色实例化 177
7.3.1 全网结构图 178
7.3.2 中心机房结构图 179
7.3.3 镜像机房结构图 180
7.4 本章小结 181
第8章 平台具体实现 182
8.1 软件包制作工具mkpkg 183
8.1.1 概述 183
8.1.2 完整spec文件方式 184
8.1.3 模版spec文件方式 188
8.2 发布工具pkg-release 192
8.3 索引更新程序repobuilder 196
8.4 同步服务端程序rsync 198
8.5 同步客户端程序yumclone 199
8.6 yumcache缓存服务 200
8.7 初始化rpm包repoutils 205
8.8 更多功能 207
8.9 本章小结 210
附录 yum/rpm常见问题解决方案 211
参考文献 215
· · · · · · (
收起)