410 likes | 604 Views
第四章. 软件包管理与配置. 内容回顾. Shell 的产生、发展及分类 Shell 环境变量的设置使用 bash 的基本操作 Shell 输入输出重定向及管道 Shell 脚本程序. 本章目标. 了解 Linux 应用程序的组成 了解 RPM 软件包管理系统的原理 掌握使用 RPM 工具管理软件包的方法 掌握普遍的软件源码包的编译安装方法 了解 Linux 程序运行库的概念 掌握一般运行库的安装配置. Linux 应用程序基础. Linux 应用程序与命令的关系 Linux 应用程序组成. Linux 内核. Linux 外部应用程序
E N D
第四章 软件包管理与配置
内容回顾 • Shell的产生、发展及分类 • Shell环境变量的设置使用 • bash的基本操作 • Shell输入输出重定向及管道 • Shell脚本程序
本章目标 • 了解Linux应用程序的组成 • 了解RPM软件包管理系统的原理 • 掌握使用RPM工具管理软件包的方法 • 掌握普遍的软件源码包的编译安装方法 • 了解Linux程序运行库的概念 • 掌握一般运行库的安装配置
Linux应用程序基础 • Linux应用程序与命令的关系 • Linux应用程序组成
Linux内核 Linux 外部应用程序 (ls、mount、rpm、gcc等) Shell 包括cd、pwd 等内部命令 Linux应用程序与命令的关系 • 内部命令 • 外部应用程序 • 两种形式的命令操作方法相同
可执行程序 配置文件 帮助文件 库文件 Linux应用程序组成
RPM包管理 • 包管理系统初步 • RPM包管理系统
sysklogd、info、at、autofs、httpd、gzip、less、pine、gcc、gdb … libtermcap、glibc-2.3.2-11.9 包管理系统初步 • 应用软件之间的依赖关系 bash-2.05b-20
包管理系统初步(Cont.) • 包管理系统的作用 • 软件安装 • 软件卸载 • 软件信息查询 • 安装软件包生成
包管理系统初步(Cont.) • 常见的包管理系统 • APT(Advanced Package Tool ) • 包名:packagename_version_arch.deb • 组成:debian-binary +control.tar.gz +data.tar.gz • RPM(RedHat Package Management) • 包名:packagename_version_arch.rpm packagename_version_arch.src.rpm • 组成:spec文件+应用程序源代码包
安装软件包 • 语法 rpm {-i|--install} [ install-options ] PACKAGE FILE … 表明执行软件包安装 安装选项 要安装的软件包名
卸载软件包 • 语法 rpm {-e|--erase} [ erase-options ] PACKAGE FILE … 卸载选项 表明执行软件包卸载 要卸载的软件包名 Rpm –e --test perl-CGI(lilo) 测试软件包的删除是否存在依赖关系 Rpm -e –nodeps perl-CGI 忽略软件包的依赖关系,强行删除
升级软件包 • 语法 rpm {-U|--upgrade} [ install-options ] PACKAGE FILE … 表明执行软件包升级 升级选项,基本与安装选项相同 要升级的软件包名
查询软件包信息 • 语法 表明执行软件包查询 rpm {-q|--query} [ select-options ] [verify-options]PACKAGE FILE … 指定本次查询的对象 指定本次查询要获得的信息 要查询的软件包
校验已安装的软件包 • 语法 rpm { -V|--verify } [select-options] [verify-options] 表明要校验软件包 指定校验对象 指定校验选项
开放源代码 • 开放源代码与应用程序的编译安装 • 应用补丁 • 编译前的配置 • 编译与安装
开放源代码(Cont.) • 应用程序开发模式 • 商业开发模式 • 开放源代码开发模式 • 开放源代码工程的特点 • 免费分发的源代码 • 模块化的体系 • 集市式的开放 • 开放源代码方式提供用户自行编译安装的代码,使得应用程序更方便自我定制和升级
开发者 用户 原始代码 补丁文件 原始代码 最新代码 最新代码 应用补丁 • 使用diff命令生成补丁文件 • 语法:diff 原始文件 新文件 • 使用patch命令应用补丁文件 • 语法:patch 原始文件 补丁文件
用户 用户配置参数 开发者 ./configure Makefile Makefile.in 编译前的配置 autoconf automake
编译与安装 • 编译源代码,链接目标文件 • 安装应用程序二进制代码 make make install
库管理 • 库的基本概念 • 库的安装与配置
库的基本概念 • 静态函数库 • 共享函数库 • 动态加载函数库
库的安装与配置 • /etc/ld.so.conf • /etc/ld.so.cache • ldconfig • LC_LIBRARY_PATH • LD_PRELOAD
本章总结 • Linux应用程序是调用操作系统内核提供的接口,完成用户的特定任务的一组程序,它们一般包括: • 可执行文件 • 函数库 • 配置文件 • 帮助文档 • Linux系统的包管理系统包括: • APT:主要应用于Debian Linux发布系统,除了日常软件包管理以外,还提供了强大的自动在线升级系统功能 • RPM:RPM包管理系统提供了方便的生成软件包、安装、查询、卸载、校验软件包的操作手段,应用于大量的Linux发布版系统,已成为实际的Linux软件包管理标准
本章总结(Cont.) • Linux应用程序源代码编译安装能够提供更灵活的系统定制功能,可以使应用程序以更加贴近用户要求的形式建立 • 以源代码发布的Linux应用程序的升级可以采用打补丁的形式,使用diff命令生成补丁文件,然后使用patch工具将补丁文件应用于目标程序的源代码,即可完成升级功能 • 源代码发布的应用程序,在本地主机通过编译前配置、编译、链接、安装的方式建立可执行系统。这个过程中使用了autoconf、automake、make、configuer等工具程序
本章总结(Cont.) • 所有的Linux系统程序都会使用函数库来快速开发和获得强大的应用功能。Linux的系统库目录为/lib和/usr/lib,Linux的函数库分为3种: • 静态函数库 • 共享函数库 • 动态加载函数库 • 可以使用nm、nr、ldd、ldconfig来管理函数库,设置LD_LIBRARY_PATH和LD_PRELOAD环境变量可获得优先的函数库访问
实验目标 • 掌握使用RPM工具查找、安装、升级特定的软件包 • 掌握为程序打补丁的方法 • 掌握源代码编译安装的方法 • 掌握向系统中添加库的方法
实验完成标准 • 查看setup软件包在系统中安装的文件
实验完成标准(Cont.) • 强制卸载perl-CGI软件包
实验完成标准(Cont.) • 查看升级后的mtools软件包信息
实验完成标准(Cont.) • 向mtools源代码应用软件补丁
实验完成标准(Cont.) • 执行最新安装的软件包中的命令
步骤(2)执行/usr/sbin/netconfig命令 执行/usr/sbin/netconfig命令,程序显示找不到需要 载入的库的信息
步骤(3)编缉/etc/ld.so.conf 文件 • 使用vi命令编辑/etc/ld.so.conf文件,在其中加入/usr/local/lib的路径 • 执行ldconfig -v命令重新更新系统的库搜索缓存,使/usr/local/lib目录的库文件能够被搜索到
实验完成标准(Cont.) • 加载新的函数库后成功运行应用程序