<b>3安装及管理应用程序</b><b></b>
1. linux应用程序基础
长期以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看,可以通过以下一些描述来对两者就行区别。
<b>1) </b><b>应用程序与系统命令的关系</b><b></b>
<b>文件位置</b><b></b>
<b> </b><b>系统命令:一般在/bin</b><b>和/sbin</b><b>目录中,或为shell</b><b>内部指令</b>
<b> </b><b>应用程序:通常在/usr/bin</b><b>和/usr/sbin</b><b>目录中,/usr/local/bin</b><b>和/usr/local/sbin</b><b>目录中</b>
<b>主要用途</b><b></b>
<b> </b><b>系统命令:完成对系统的基本管理工作,例如ip</b><b>配置工具</b>
<b> </b><b>应用程序:完成相对独立的其他辅助任务,例如网页浏览器</b>
<b>适用环境</b><b></b>
<b> </b><b>系统命令:一般只在字符操作界面中运行</b>
<b> </b><b>应用程序:根据实际需要,有些程序可在图形界面中运行</b>
<b>运行格式</b><b></b>
<b> </b><b>系统命令:一般包括命令字、命令选项和命令参数</b>
<b> </b><b>应用程序:通常没有固定的执行格式</b>
<b>2) </b><b>linux</b><b>应用程序的组成</b>
<b>文件类型</b>
<b>保存目录</b>
<b>普通执行程序文件(普通用户可执行)</b>
<b>/usr/bin</b>
<b>服务器执行程序文件和管理程序文件(root)</b>
<b>/usr/sbin</b>
<b>应用程序配置文件</b>
<b>/etc (</b><b>再下一级</b><b>)</b>
<b>日志文件</b>
<b>/var/log</b>
<b>应用程序文档文件</b>
<b>/usr/share/doc</b>
<b>应用程序手册页文件</b>
<b>/usr/share/man</b>
<b></b>
<b>3) </b><b>软件包的封装类型</b>
<b>封装类型</b>
<b>说明</b>
<b>rpm</b><b>软件包 </b><b></b>
<b>扩展名为“</b><b>.rpm” </b><b></b>
<b>deb</b><b>软件包 </b><b></b>
<b>扩展名为“</b><b>.deb” (debian</b><b>和</b><b>ubuntu</b><b>系统,用</b><b>dpkg</b><b>命令</b><b>)</b><b></b>
<b>源代码软件包</b>
<b>一般为“</b><b>.tar.gz”</b><b>、“</b><b>.tar.bz2”</b><b>等格式的压缩包</b>
<b>包含程序的原始代码(开源软件)</b>
<b>提供安装程序的软件包 </b>
<b>在压缩包内提供</b><b>install.sh</b><b>、</b><b>setup</b><b>等安装程序</b>
<b>或以“</b><b>.bin”</b><b>格式的单个执行文件提供</b>
<b>绿色免安装的软件包</b>
<b>在压缩包内提供已编译好的执行程序文件</b>
<b>解开压缩包后的文件即可直接使用</b>
2. 使用rpm包管理工具
<b>1) </b><b>rpm</b><b>概述</b>
<b>a. </b><b>最早由redhat</b><b>公司提出,在</b><b>www.rpm.org</b><b>,可以了解rpm</b><b>包管理机制的详细资料。</b>
<b>b.</b><b>建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系</b>
<b>c. </b><b></b>
<b>2) </b><b>使用rpm</b><b>包管理命令——rpm</b>
<b>a rpm</b><b>命令的格式:rpm -q[</b><b>子选项] [</b><b>软件名]</b><b></b>
<b>b </b><b>查询已安装的rpm</b><b>软件信息</b><b></b>
<b>用法:结合不同的子选项 </b><b>完成不同查询</b><b></b>
<b> -qa</b><b>:查看系统中已安装的所有rpm</b><b>软件包列表</b>
<b> -qi</b><b>:查看指定软件的详细信息</b>
<b> -ql</b><b>:查询指定软件包所安装的目录、文件列表</b>
<b> -qc</b><b>:仅显示指定软件包安装的配置文件</b>
<b> -qd</b><b>:仅显示指定软件包安装的文档文件</b>
<b>查询文件/</b><b>目录属于哪个rpm</b><b>软件</b><b></b>
<b>格式:rpm -qf </b><b>文件或目录名</b>
<b>查询未安装的rpm</b><b>包文件</b><b></b>
<b>格式:rpm -qp[</b><b>子选项] rpm</b><b>包文件</b><b></b>
<b> -qpi</b><b>:通过.rpm</b><b>包文件查看该软件的详细信息</b>
<b> -qpl</b><b>:查看.rpm</b><b>安装包内所包含的目录、文件列表</b>
<b> -qpc</b><b>:查看.rpm</b><b>安装包内包含的配置文件列表</b>
<b> -qpd</b><b>:查看.rpm</b><b>安装包内包含的文档文件列表</b>
<b>注意:两类查询操作中,“-i”</b><b>、”-l”</b><b>、”-c”</b><b>、“-d”</b><b>等选项的含义是相同的</b>
<b>c </b><b>安装、升级、卸载rpm</b><b>软件包</b>
<b>a</b><b>.安装或升级rpm</b><b>软件</b><b></b>
<b>格式:rpm [</b><b>选项] rpm</b><b>包文件...</b><b></b>
<b>用法:不同选项适用于不同情况</b><b></b>
<b> -i</b><b>:安装一个新的rpm</b><b>软件包</b>
<b> -u</b><b>:升级某个rpm</b><b>软件,若原本未装,则进行安装</b>
<b> -f</b><b>:更新某个rpm</b><b>软件,若原本未装,则放弃安装</b>
<b>b</b><b>。卸载指定的rpm</b><b>软件</b><b></b>
<b>格式:rpm -e </b><b>软件名 </b><b></b>
<b>c. </b><b>辅助选项</b><b></b>
<b>--force</b><b>:强制安装所指定的rpm</b><b>软件包</b><b></b>
<b>--nodeps</b><b>:安装、升级或卸载软件时,忽略依赖关系 </b><b></b>
<b>-h</b><b>:以“#”</b><b>号显示安装的进度</b><b></b>
<b>-v</b><b>:显示安装过程中的详细信息 </b><b></b>
<b>d. </b><b>维护rpm</b><b>数据库</b>
<b>当rpm</b><b>数据库损坏时,需要进行数据库重建</b><b></b>
<b>格式:rpm --rebuilddb </b><b></b>
<b> </b><b>或者 rpm --initdb </b><b></b>
<b>(当rpm</b><b>数据库发生损坏,linux</b><b>系统无法自动完成修复时,可能将导致无法正常安装、卸载rpm</b><b>软件包;如果时间充裕,可以参照教材第九章的rpm</b><b>数据库修复实验给学员进行演示)</b>
<b>3) </b><b>在图形界面中管理rpm</b><b>包</b>
<b>图形界面中的“添加/</b><b>删除软件”</b><b></b>
<b>依赖于yum</b><b>(yellow dog updater</b><b>,modified</b><b>)机制</b><b></b>
<b>调用yum</b><b>命令工具进行软件更新</b><b></b>
<b>使用“添加/</b><b>删除软件”工具的条件</b><b></b>
<b>能够访问互联网中的yum</b><b>源服务器</b><b></b>
<b> </b><b>若使用默认源,需有合法的安装序列号和服务订阅号</b>
<b>在局域网内构建本地的yum</b><b>源服务器</b><b></b>
3. 从源代码编译安装程序
<b> 1</b><b>)。源代码编译概述</b>
<b>a </b><b>使用源代码安装软件的优点</b><b></b>
<b>获得最新的软件版本,及时修复bug</b><b></b>
<b>根据用户需要,灵活定制软件功能</b><b></b>
<b>b </b><b>应用场合举例</b><b></b>
<b>安装较新版本的应用程序时 </b><b></b>
<b> </b><b>自由软件的最新版本大都以源码的形式最先发布</b>
<b>当前安装的程序无法满足需要时 </b><b></b>
<b> </b><b>编译安装可由用户自行修改、定制功能</b>
<b>需要为应用程序添加新的功能时 </b><b></b>
<b> </b><b>用户可以重新配置、自由修改源代码,加入新的功能</b>
<b>c tarball </b><b>封包:</b><b></b>
<b>.tar.gz </b><b>和 .tar.bz2 </b><b>格式居多</b><b></b>
<b>软件素材参考:</b><b>http://sourceforge.net</b><b> </b><b></b>
<b>d </b><b>完整性校验</b><b></b>
<b>md5sum</b><b>校验工具</b><b></b>
<b> </b><b>计算md5</b><b>校验和,并与官方提供的值相比较,判断是否一致</b>
<b>e </b><b>确认源代码编译环境</b><b></b>
<b>需安装支持 c/c++</b><b>程序语言的 </b><b>编译器</b><b></b>
<b> gcc-4.1.1-52.el5</b><b>、gcc-c++-4.1.1-52.el5</b>
<b> make-3.81-1.1.i386 ……</b>
<b>2</b><b>) </b><b>从源代码编译安装的基本故过程</b>
<b> a </b><b>解包</b>
<b>习惯上将软件包释放到 /usr/src/ </b><b>目录</b><b></b>
<b>解包后的源代码文件位置:</b><b></b>
<b> /usr/src/</b><b>软件名-</b><b>版本号/</b>
<b> b </b><b>配置</b>
<b>需将工作目录切换到软件源码所在目录</b><b></b>
<b>使用源码目录中的 configure </b><b>脚本</b><b></b>
<b>执行“./configure --help” </b><b>可以查看帮助</b><b></b>
<b>典型的配置选项:</b><b></b>
<b> --prefix=</b><b>软件安装目录</b>
<b>c </b><b>编译</b>
<b> </b><b>执行 make</b>
<b>d </b><b>安装</b>
<b> </b><b>执行 make install</b>
<b>注意:这两步可以合在一起做make && make install </b><b>或者 make;make install</b><b>(有区别)</b>