第五章 Linux应用程序安装与管理.docx
- 文档编号:25397728
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:18
- 大小:24.96KB
第五章 Linux应用程序安装与管理.docx
《第五章 Linux应用程序安装与管理.docx》由会员分享,可在线阅读,更多相关《第五章 Linux应用程序安装与管理.docx(18页珍藏版)》请在冰豆网上搜索。
第五章Linux应用程序安装与管理
第五章
Linux应用程序安装与管理
在Linux中,对于不同的应用需求都对应着不同的应用程序,本章中将会讲述Linux系统中应用程序的安装与管理。
大多数Linux系统都支持软件包管理和源码编译安装两种软件安装(管理)的方式。
软件包管理相对编译安装更加简单,但是不同Linux发行版本会支持不同格式的软件安装包,而源码编译安装虽然过程复杂,但是普遍适用于各种发行版本。
5.1Linux应用程序基础
在本节中将学习Linux操作系统中应用程序的一些基本概念,内容包括命令与应用程序的关系以及应用程序的组成部分。
5.1.1Linux应用程序与命令的关系
1、Linux应用程序与命令的关系
一直以来对于Linux系统中的命令和应用程序都没有特别严格的定义和区分,在日常使用中Linux的使用者普遍认同如下的一些描述:
Ø命令和应用程序都是Linux系统中的可执行程序
ØLinux中的基本命令是Linux系统不可缺少的组成部分,通常放置在系统中的“/bin”和“/sbin”子目录中,缺少基本命令的Linux系统被视为不完整的操作系统
ØLinux应用程序的可执行文件通常放置在系统中的“/usr/bin”和“/usr/sbin”目录下,很多应用程序的可执行文件以命令行的形式运行,通常也被认为是Linux命令
Ø命令文件虽然可以通过系统中的软件包管理进行安装和卸载,但是命令通常在Linux系统安装时就已经安装完成,不需要管理员进行手工安装,更不需要进行手工卸载
ØLinux发行版本通常会在安装光盘中附带大量的应用程序,其中只有少部分会在系统安装时进行安装,大部分的应用程序需要Linux管理员以软件包的形式进行选择安装
Ø命令的作用是完成对Linux系统本身的管理工作,应用程序则完成与Linux系统管理相对独立的任务
Ø命令只能以命令行的方式运行,命令格式中包括命令字、命令选项和命令参数;应用程序可以是命令行的形式运行,也可以是字符界面或图形界面的窗口程序,形势比较多样
Ø在有些情况下,Linux命令和应用程序的概念非常接近,甚至很难区分,因此会出现命令和应用程序概念混合使用的现象
2、系统应用程序与第三方应用程序的比较
在上面对Linux命令和应用程序的概念进行了对比说明,其中“应用程序”是指Linux发行版本中包括的系统应用程序,但是在实际应用中,还存在大量的应用程序不包括在Linux发行版本中,而是由第三方提供的,第三方包括开源软件社区和软件厂商等,这些Linux应用程序通常被称为第三方应用程序。
下面对第三方应用程序和系统应用程序进行比较说明:
Ø系统应用程序通常遵从Linux发行版本中的软件包管理格式进行安装和卸载
Ø第三方用用程序可能以Linux发行版本中使用的软件包的格式提供安装程序,也可能使用安装程序或其他形式提供应用程序的安装
Ø系统应用程序的安装过程通常比较简单顺利,并且不需要进行过多的手工配置
Ø第三方应用程序由于是为各种Linux发行版本提供的安装程序,因此安装过程相对会复杂一些,通常需要管理员手工完成配置工作
Ø商业版本的第三方应用程序不会提供程序的源代码,只提供程序的可执行代码
Ø大多数知名Linux发行版本中的系统应用程序都可以获得程序的源代码,管理员如果有特殊的应用需求可以对应用程序的源代码进行定制的编译安装
通过以上几点比较可以看出,系统应用程序和第三方应用程序还是有很大区别的。
Linux发行版本中自带的应用程序可以被认为是Linux操作系统的一部分,而第三方的应用程序,尤其是商业版本的第三方应用程序一定不属于Linux操作系统的一部分。
5.1.2Linux应用程序的组成
Linux操作系统中典型的应用程序有以下几部分组成
Ø普通执行程序文件,保存在“/usr/bin”目录中
Ø服务器执行程序文件和管理程序文件,保存在“/usr/sbin”目录中
Ø应用程序配置文件保存在“/etc”目录中
Ø应用程序文档文件,保存在“/usr/share/doc/”目录下
Ø应用程序手册页文件,保存在“/usr/share/man/”目录下
与Windows操作系统中将所有应用程序文件都安装在“programfiles”目录中的子目录不同,Linux系统中将应用程序软件包中不同作用类型的文件分别保存在不同的目录中。
这样更有利于同类型文件的查找。
下面以Linux操作系统中典型的应用程序Apache服务器为例来说明服务器应用程序的文件组成;Apache服务器在RHEL5.4中的软件包名称是“httpd”;实例中使用的rpm命令将在下一节中学习。
httpd软件包中的普通执行文件统一放置在目录“/usr/bin”中,这些程序对于普通用户具有可执行权限,用于完成Apache服务器的辅助管理工作。
httpd软件包中的服务器执行程序和服务器管理程序统一放置在目录“/usr/sbin”中进行保存,只有管理员用户才有权限执行这些程序。
Apache服务器的配置文件保存在目录“/etc/”中,由于配置文件较多,因此建立了专门的“/etc/httpd/”子目录用于保存服务器配置文件。
Apache服务器的“启动脚本”保存在“/etc/rc.d/init.d/”目录中,Linux系统中的所有服务器启动脚本都放置在此目录中。
Apache服务器的内容(工作)目录是“/var”目录中的“www”子目录,该目录在httpd软件包安装的时候建立,并安装了少量的初始文件,在使用Apache服务器时系统管理员将对该子目录中的文件进行更新。
Apache服务器的说明文档保存在“/usr/share/doc/”目录的“httpd-2.2.3”子目录中,Linux系统中所有应用程序的文档都保存在“/usr/share/doc/”目录的相应子目录中。
Apache服务器中可执行程序(命令)的手册页保存在“/usr/share/man/”目录的相应子目录中,Linux系统中的所有手册页都会按照内容的类型保存在“/usr/share/man/”目录的不同子目录中,man命令在显示手册页时会在相应的子目录中查找并读取手册页文件。
5.2RPM包管理
RPM包是Linux的各发行版本中应用最广泛的软件包格式之一。
RPM包以其强大的功能和广泛的兼容性受到多数Linux发行版本的支持和广大Linux使用者的用户。
5.2.1包管理初步
1、RPM包管理的基本概念
RPM最早是由RedHat公司提出的软件包管理标准,后来随着版本的升级又融入了许多其他优秀特性,成为了Linux中公认的软件包管理标准。
目前使用RPM作为软件包管理格式的主要Linux发行版有RadHatLinux、SuseLinux和MandrivaLinux。
RPM现在是RPMPackageManager的缩写(原来是RedhatPackageManager的缩写),由RPM社区负责维护,可以按照以下地址登录到RPM的官方站点查询RPM软件包格式的详细资料。
2、RPM包的文件名称
RPM安装包文件的名称拥有固定的格式,RHEL5.4安装光盘中的部分RPM包如下:
RHEL5.4安装光盘中的RPM软件包被集中保存在光盘文件系统的“Server/”目录中,下面以“bash-3.2-24.el5.i386.rpm”包文件为例来说明RPM软件包的文件名格式。
在文件“bash-3.2-24.el5.i386.rpm”的名称中,“bash”是软件的名称;“3.2-24”是软件版本号,其中“3.2”是主版本号,“24.el5”是次版本号;“i386”是软件所运行的硬件平台,“i386”代表软件需要运行在Inter公司的“386”以上的CPU处理器上;“rpm”是文件的扩展名,用以标识当前文件是RPM格式的软件包。
5.2.2RPM包管理系统
使用RPM作为软件包管理格式的Linux发行版本,主要使用rpm命令实现对RPM软件包的管理。
1、rpm命令的格式
rpm命令能够实现几乎所有对RPM软件包的管理功能,单独执行rpm命令可以显示rpm命令的命令格式:
以上只是rpm命令用法的部分内容,从执行的结果看出,rpm命令具有相当复杂的命令格式,rpm命令使用不同的命令选项可以实现以下的RPM包管理功能:
Ø查询已安装在Linux系统中的RPM软件包信息
Ø查询RPM软件包安装文件信息
Ø安装RPM软件包到当前Linux系统
Ø从当前Linux系统中卸载已安装的RPM软件包
Ø升级当前Linux系统中已安装的RPM软件包
下面就来学习使用rpm命令实现各种不同的RPM软件包管理功能。
2、使用rpm命令查询软件包
Linux系统管理员可以通过rpm命令的查询功能收集到当前系统中RPM软件包的各种信息,从而作为RPM软件包管理的依据,因此查询RPM软件包的信息是Linux系统管理员很重要的工作之一。
软件包查询时rpm命令的基本功能,通过使用不同的查询选项,rpm命令可以实现对RPM包的各种查询功能。
rpm命令查询功能的基本格式如下:
格式:
rpm–q
rpm命令使用“-q”选项实现查询功能,不同的查询需要在“-q”选项后附加其他查询选项。
(1)查询系统中安装的所有RPM包
rpm命令配合“-qa”选项用于查询Linux系统中已经安装的所有软件包,命令格式如下:
格式:
rpm-qa
“rpm–qa”不需要指定任何参数,命令执行结果将显示Linux系统中所有已经安装的RPM软件包的名称。
“rpm–qa”命令查询并显示系统中已安装的所有软件包的列表,因此显示的查询结果较长,命令的执行时间也较长,可以配合“more”命令一起使用,实现查询结果的分屏显示。
“rpm–qa”命令可以配合“grep”命令一起使用,用于查询RPM包名称中包含指定关键字符串的软件包。
例如,查询系统中所有名称中包含“httpd”字符串的软件包,可以使用如下命令:
和“wc”命令搭配使用,可查询系统中一共安装了多少个软件包:
(2)查询软件包是否安装
rpm命令搭配“-q”选项一起使用,用于查询Linux系统中指定名称的软件包是否安装,命令格式如下:
格式:
rpm-qRPM包名称
“rpm–q”命令需要指定待查询的软件包名称作为命令参数,如果系统中已经安装了该软件包,命令执行结果会显示完整的软件包名称(软件包名称+软件包的版本号),否则将提示软件包没有被安装的信息。
“rpm–q”命令中指定的软件包名称需要准确的拼写,该命令不会在软件报名中进行局部匹配的查询。
(3)查询软件包详细信息
在使用“rpm–q”命令确定了某个软件包在当前系统中已经安装后,Linux系统管理员需要进一步了解软件包的较详细的信息,“rpm–qi”命令可以实现该功能。
rpm命令配合“-qi”选项用于查询Linux系统中指定名称软件包的详细信息,命令格式如下:
格式:
rpm-qiRPM包名称
“rpm–qi”命令需要指定待查询的软件包名称作为命令参数,命令执行结果将显示该软件包的详细信息:
“rpm–qi”命令的执行结果中包括如下几项RPM包的详细信息:
Ø软件包中软件的名称(Name)
Ø软件的版本信息(version和Release)
Ø软件包的建立时间(BuildDate)
Ø软件包的安装时间(InstallDate)
Ø软件包的大小(Size)
Ø软件遵从的许可协议(License)
Ø软件的打包者(Packager)
Ø软件包的概括描述(Summary)和详细描述(Description)信息
通过阅读“rpm–qi”命令的执行结果,可以对指定软件包有一个比较详细的了解。
(4)查询已安装软件包中的文件列表
在使用“rpm–qi”命令查看了某软件包的详细信息后,Linux系统管理员需要了解软件包中包括了哪些文件,即安装该软件包时在当前的Linux系统中安装了哪些文件,“rpm–ql”命令可以实现此查询功能。
rpm命令配合“-ql”选项用于查询Linux系统中指定名称的软件包中所包括的文件列表,命令格式如下:
格式:
rpm-qlRPM包名称
“rpm–ql”命令需要指定待查询的软件包名称作为命令参数,命令执行结果将显示该软件包中包括的所有文件列表。
“rpm–ql”命令中被查询的软件包可能包括相当多的文件,因此可以使用grep命令过滤查询结果,只显示文件或路径名中包括指定关键字的文件列表。
(5)查询系统中文件所属的软件包
Linux系统管理员在执行某些系统管理任务时可能需要查询系统中的某个文件属于哪个软件包,即Linux系统是通过哪个软件包安装了指定的文件,“rpm–qf”可以实现此查询功能。
rpm命令配合“-qf”选项用于查询Linux系统中指定文件所属的软件包。
格式:
rpm-qf文件路径和名称
“rpm–qf”命令需要指定待查询的文件名称作为命令参数,文件名中需要包括文件的路径名(绝对路径或相对路径名),命令执行结果将显示包含该文件的软件包名称。
在Linux系统中并不是所有文件都是通过RPM软件包的方式安装的,系统中得很多文件是通过Linux系统安装过程和系统运行时生成的,即这些文件不会属于任何RPM软件包。
(6)查询RPM安装包文件中的信息
Linux系统管理员在获得了RPM安装包文件进行安装之前,需要谨慎的了解RPM安装包文件的相信信息,以及RPM安装包会安装到系统中的文件,“rpm–qp”命令可以实现此查询功能。
rpm命令配合“-qpi”和“-qpl”选项用于查询指定RPM安装包文件的信息,命令格式:
格式:
rpm–qpiRPM包文件名
rpm–qplRPM包文件名
“rpm–qpi”命令使用RPM安装包的文件名作为命令参数,显示该RPM软件包文件的详细信息。
“rpm–qpi”命令所显示的软件包详细信息的格式与“rpm–qi”命令的执行结果类似,不同点在于“rpm–qpi”命令显示的是RPM安装包文件的详细信息,而“rpm–qi”命令显示的是当前Linux系统中已安装的软件包的详细信息。
“rpm–qpl”命令使用RPM安装包的文件名作为命令参数,显示该RPM软件包中包含的文件列表,即如果安装该软件包将在当前Linux系统中安装的文件列表。
“rpm–qpl”命令所显示的软件包文件列表信息的格式与“rpm–qi”命令的执行结果类似,不同点在于“rpm–qpi”命令显示的是RPM安装包文件的文件列表信息,而“rpm–qi”命令显示的是当前Linux系统中已安装的软件包的文件列表信息。
(7)rpm命令查询举例
下面以查询mount命令所属的软件包为例来说明rpm查询命令的综合方法
使用which命令可以获得mount命令的可执行文件路径。
使用“rpm–qf”命令查询文件“/bin/mount”所属的软件包。
mount命令是Linux系统的核心命令,因此属于名为“util-linux”的软件包,使用“rpm–qi”命令可以查询该软件包的详细信息。
使用“rpm–ql”命令可以查询软件包中包括的所有文件列表,与grep命令配合使用可以查询与mount命令相关的所有文件。
从查询的结果可以看出,mount命令所在的软件包中还包括umount命令以及命令的手册页文件和说明文件。
通过以上的操作步骤可以查询系统中任何命令所属的软件包,以及软件包中与该命令相关的所有文件。
3、使用rpm命令安装软件包
安装软件包是Linux系统管理员需要完成的另一类重要任务,可以使用rpm命令完成软件包的安装工作。
(1)RPM软件包的基本安装
rpm命令配合“-i”选项用于安装指定的RPM软件包到当前Linux系统,命令格式如下:
格式:
rpm–iRPM安装包文件名
“rpm–i”命令使用待安装的RPM安装包文件名作为参数,安装该软件包的文件到当前系统。
下面以安装vim的附加软件包为例来说明RPM软件包的安装。
使用“rpm–i”命令安装名为“vim-common-7.0.109-6.el5.i386.rpm”的软件包。
在进行软件包安装之前应使用rpm的查询命令查询该软件包是否已经安装在当前系统中。
“rpm–i”命令如果成功安装指定的软件包将不提示任何信息,软件包的安装过程需要一定的安装时间。
在软件包安装成功后可以使用rpm的查询命令验证软件包在当前系统中的存在。
(2)在安装软件包的同时显示详细信息
“rpm–i”命令虽然可以安装RPM软件包,但是在安装过程中没有任何屏幕显示信息,因此过程不是很直观,rpm命令配合“-ivh”选项使用时,可以在安装过程中显示更多的信息。
格式:
rpm-ivhRPM安装包文件
“rpm–ivh”命令使用待安装的RPM软件包的文件名称作为命令参数,在安装软件包的过程中会以百分比的形式显示安装的进度或一些其他信息。
“rpm–ivh”命令与“rpm–i”命令实现同样的软件包安装功能,但是提供了更加友好的安装过程界面,使用户可以了解到安装过程中更多的信息。
(3)RPM软件包安装的依赖关系
RPM软件包之间是可能存在依赖关系的,即软件包A中的软件在运行时需要使用软件包B中的文件,因此在安装软件包A之前需要先安装软件包B,否则软件包A将无法正常安装。
rpm命令可以从RPM软件包的信息中自动识别软件包的依赖关系,当安装某个软件包时会检查该软件包依赖的所有软件包是否已经在当前系统中存在(安装);如果依赖关系满足软件包要求,安装过程会顺利进行;如果软件包的依赖关系得不到满足,rpm命令会中止安装过程,并给出相应的错误提示。
当因为依赖关系没有得到满足而导致RPM软件包安装过程中止时,Linux系统管理员应仔细阅读屏幕现实的错误信息,以确定当前需要安装的软件包所依赖的软件包名称。
对于因为依赖关系而导致软件包不能正常安装的情况,需要先安装确实的依赖软件包,然后再安装需要安装的软件包;另一种方法是在rpm命令中指定需要安装的软件包和所依赖的软件包同时安装;总之,要先满足软件包的依赖关系,然后再进行软件包的安装。
当rpm命令中指定安装的多个软件包之间存在依赖关系,不论在命令中软件包文件名的先后顺序如何,rpm命令会自动分析软件包的依赖关系,先安装被依赖的软件包,然后再安装其他软件包。
在进行一些RPM软件包的安装时,rpm的安装命令会提示很多包依赖关系的信息,并且RPM包之间的依赖关系有可能出现“循环现象”,即软件包A的安装依赖于B,B的安装依赖于C,而C的安装依赖于A,这时可以使用rpm命令的强制安装格式:
命令格式:
rpm--force-iRPM包文件名
使用强制安装命令安装不能保证软件安装到系统后一定能够正常运行,因此建议谨慎使用。
解决软件包循环依赖的较好的方法是,将涉及循环依赖的所有软件包使用“rpm–i”命令一起进行安装。
4、使用rpm命令卸载软件包
卸载系统中不再需要使用的软件包时Linux系统管理员的一项重要职责,RPM软件包的卸载同样需要使用rpm命令。
(1)RPM软件包的卸载
rpm命令与“-e”选项配合使用可以实现RPM软件包的卸载。
命令格式:
rpm–e软件包名称
“rpm–e”命令使用软件包的名称作为命令参数,用于卸载指定名称的软件包。
在对软件包进行卸载之前,Linux系统管理员应确认系统中不再需要使用该软件包中的任何文件。
对系统运行必需的软件包进行卸载有可能造成Linux系统不能正常运行,因此在卸载软件包时应非常谨慎。
使用“rpm–e”命令卸载软件包时,软件包中包含的所有文件将自动从Linux系统中删除,与软件包的安装相比,软件包卸载的速度要快得多。
(2)RPM软件包卸载的依赖关系
RPM软件包的卸载过程同样存在依赖关系,当软件包A依赖于软件包B运行时,作为被依赖的软件包B不能在软件包A之前被卸载,因为卸载软件包B将造成软件包A无法正常运行,因此在卸载软件包B之前一定要先卸载软件包A;只有当Linux系统中已经没有任何软件包依赖于软件包B运行时,软件包B才能够正常进行卸载。
管理员应根据rpm命令卸载软件包时的错误提示信息,先卸载指定的软件包,再卸载被依赖的软件包。
“rpm–e”命令可以指定多个需要进行卸载的软件包作为命令参数,rpm命令会自动分析软件包之间的依赖关系,先卸载其他软件包,最后卸载被依赖的软件包。
与安装软件包类似,软件包在卸载时同样可能出现“循环依赖”的现象,致使软件包无法进行正常卸载,较好的解决方法是使用“epm–e”命令将涉及循环关系的软件一起进行卸载。
5、使用rpm命令升级软件包
rpm命令配合“-U”选项使用可以实现软件包的升级。
命令格式:
rpm-URPM安装包文件名
“rpm-U”命令使用RPM安装包的文件名作为命令参数,用指定的RPM包文件升级(替换)Linux系统中同名的低版本软件包;当系统中未安装同名的软件包时,升级的过程等同于安装软件包的过程。
5.3应用程序编译
在Linux系统中安装应用程序经常会对应用程序进行编译安装,其实最早的Linux操作系统整体都是编辑安装而成的,本节将介绍从应用程序的源代码编辑安装应用程序。
5.3.1开放源代码应用程序的编辑安装
Linux操作系统之所以能够在10多年的时间里就能够发展壮大以致风靡全球,其开放源代码的特性是很重要的原因之一,即Linux操作系统中包括内核在内的所有软件都可以获得源代码,并且可以经过定制修改后编译安装。
现代的Linux发行版本通常使用包管理机制对软件进行打包安装,这样省去了软件的编译安装的过程,大大简化了Linux系统的安装和使用难度,但是在如下几种情况下,Linux系统管理员仍然需要对软件的源代码进行编译安装:
✧Linux发行版本中即使包括再多的软件包也不能容纳所有的开源软件应用程序,因此当需要使用发行版本中没有的应用软件时,可以通过下载预编译好的应用程序和下载源代码两种方式解决问;而从程序源代码进行编译安装具有更好的普遍适用性。
✧Linux发行版本中包括应用程序,但是该应用程序的配置功能不能满足用户要求,通过对程序源代码进行重新配置后编译安装可以解决问题;Linux系统中的很多服务器软件在应用时都需要进行编译安装。
✧当用户需要对应用程序通过编程添加某些功能时,需要先对软件的源代码进行适当的修改,然后再进行编译安装。
从以上几点可以看出,应用程序的源代码编译安装为使用者提供了更加灵活的程序功能定制途径,这也是开放源代码软件的魅力所在。
从应用程序源代码编译安装应用程序通常需要以下几个步骤:
✧确认当前系统中具备软件编译环境
✧获得应用程序的源代码软件包文件
✧解压缩源代码软件包文件
✧进行编译前的配置工作
✧进行程序源代码的编译
✧将编译完成的应用程序安装到系统中
这里我们以Apache应用程序的源代码安装为例,来讲解源代码编译安装的整个过程。
5.3.2编译应用程序前的准备工作
在进行Apache应用程序的编译安装之前需要完成几项准备工作。
1、确认系统中已经安装了编译环境
在对任何应用程序的源代码进行编译安装之前都需要确认当前系统中已安装了gcc编译环境。
如果当前Linux系统中没有gcc编译器环境,那么应该使用rpm命令进行安装;由于安装时软件包之间有依赖关系,使用rpm命令进行安装非常繁琐,建议使用yum工具进行安装。
将光盘挂载到本地,然后修改yum工具的配置文件:
修改配置文件:
改成以下内容:
保存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五章 Linux应用程序安装与管理 第五 Linux 应用程序 安装 管理