1、Linux应用程序基础 ACeLinux联盟
2、RPM包管理 ACeLinux联盟
包管理系统初步: ACeLinux联盟
RPM:RPM Package Manager ACeLinux联盟
http://www.rpm.org ACeLinux联盟
RPM包管理系统: ACeLinux联盟
$ rpm ACeLinux联盟
RPPM包的文件名称: ACeLinux联盟
bash-3.0-19.2.i386.rpm ACeLinux联盟
bash:软件名称。 ACeLinux联盟
3.0-19.2:软件的版本号。 ACeLinux联盟
i386:软件所运行的最低硬件平台。 ACeLinux联盟
rpm:文件的扩展名,用来标识当前文件是rpm格式的软件包。 ACeLinux联盟
RPM包管理功能: ACeLinux联盟
rpm命令配合不同的参数可以实现以下的rpm包的管理功能: ACeLinux联盟
查询已安装在linux系统中的RPM软件包的信息。 ACeLinux联盟
查询RPM软件包安装文件的信息。 ACeLinux联盟
安装RPM软件包到当前linux系统。 ACeLinux联盟
从当前linux系统中卸载已安装的RPM软件包。 ACeLinux联盟
从当前linux系统中升级已安装的RPM软件包。 ACeLinux联盟
使用rpm命令查询软件包: ACeLinux联盟
1、查询系统中安装的所有RPM包 ACeLinux联盟
$ rpm -qa ACeLinux联盟
查询当前linux系统中已经安装的软件包。 ACeLinux联盟
例:$ rpm -qa | grep -i x11 | head -3 察看系统中包含x11字符串的前3行软件包。 ACeLinux联盟
2、查询软件包是否安装 ACeLinux联盟
$ rpm –q rpm包名称 察看系统中指定软件包是否安。 ACeLinux联盟
例: $ rpm -q bash 察看系统中bash软件包是否安装。 ACeLinux联盟
"rpm -q"命令中指定的软件包名称需要准确的拼写,该命令不会在软件包的名称中进行局部匹配的查询。 ACeLinux联盟
3、查询已安装软件包详细信息 ACeLinux联盟
$ rpm –qi RPM包名称 查询linux系统中指定名称软件包的详细信息。 ACeLinux联盟
例:$ rpm -qi bash 察看bash软件包的详细信息。 ACeLinux联盟
"rpm -qi"命令的执行结果中包含较详细的信息,包括:软件名称,版本信息,包大小,描述,等。 ACeLinux联盟
4、查询已安装软件包中的文件列表 ACeLinux联盟
$ rpm –ql RPM包名称 查询已安装软件包在当前系统中安装了哪些文件。 ACeLinux联盟
例:$ rpm -ql bash | head -3 查看bash软件在系统中已安装文件的前3行文件列表。 ACeLinux联盟
$ rpm -ql bash | grep bin 用过滤方式察看bash中包含bin字符串的文件列表。 ACeLinux联盟
5、查询系统中文件所属的软件包 ACeLinux联盟
$ rpm –qf 文件名称 查询linux系统中指定文件所属的软件包。 ACeLinux联盟
例:$ rpm -qf /bin/bash 察看bash文件所属的软件包。 ACeLinux联盟
bash-3.0-19.2 显示结果。 ACeLinux联盟
6、查询RPM安装包文件中的信息 ACeLinux联盟
$ rpm –qpi RPM包文件名 察看RPM包未安装前的详细信息。 ACeLinux联盟
$ rpm –qpl RPM包文件名 察看RPM包未安装前的文件列表。 ACeLinux联盟
"rpm -qpi和rpm -qpl 这两条命令可作为在安装软件包之前对其的了解。 ACeLinux联盟
7、rpm命令查询实例 ACeLinux联盟
$ which mount 获得mount命令的可执行文件路径。 ACeLinux联盟
$ rpm –qf /bin/mount 查询/bin/mount所属的软件包。 ACeLinux联盟
$ rpm –qi util-linux 查询/bin/mount所属软件包的详细信息。 ACeLinux联盟
$ rpm –qf util-linux | grep mount 查询/bin/mount所属软件包中包括mount相关所有文件。 ACeLinux联盟
使用rpm命令安装软件包: ACeLinux联盟
1、rpm软件包地基本安装 ACeLinux联盟
$ rpm –i rpm安装包文件名 安装该软件包中的文件到当前系统,安装过程不提示任何信息。 ACeLinux联盟
2、在安装软件包的同时显示详细信息 ACeLinux联盟
$ rpm –ivh rpm安装包文件 安装该软件包中的文件到当前系统,安装过程会以百分比的形式显示安装的进度和一些其他信息。 ACeLinux联盟
3、RPM软件包安装的依赖关系 ACeLinux联盟
强制安装:$ rpm --force –i rpm包文件名 ACeLinux联盟
注:要先满足软件包的依赖关系后再进行软件包的安装,使用强制安装命令安装不能保证软件安装到系统后一定能 ACeLinux联盟
正常运行,因此建议慎重使用。 ACeLinux联盟
使用rpm命令卸载软件包: ACeLinux联盟
1、RPM软件包的卸载 ACeLinux联盟
$ rpm -e 软件包名称 ACeLinux联盟
软件包的卸载,在卸载时不显示任何信息。 ACeLinux联盟
注:RPM软件包的卸载同样存在依赖关系,只有在没有依赖关系存在时才能对其进行卸载。 ACeLinux联盟
2、rpm软件包卸载的依赖关系 ACeLinux联盟
在使用RPM命令进行卸载时,RPM命令会分析要卸载的软件包的依赖关系,当存在依赖关系时会自动停止,并显由 ACeLinux联盟
哪个软件造成的卸载失败。根据RPM提示的错误信息,确定先卸载的软件包,再卸载被依赖的软件包。 ACeLinux联盟
使用rpm命令升级软件包: ACeLinux联盟
$ rpm - U rpm安装包文件名 ACeLinux联盟
注:"rpm -u"命令中使用的升级软件包文件最好使用RED HAT公司针对当前的linux版本官方推出的升级文件,建议不要使用第三方提供的升级包。 ACeLinux联盟
应用程序编译 ACeLinux联盟
开放源代码应用程序的编译安装 ACeLinux联盟
(下面以多线程下载软件"prozilla"的源代码编译安装为例来说明源代码编译安装的整个过程) ACeLinux联盟
ACeLinux联盟
编译应用程序前的准备工作: ACeLinux联盟
1、确认系统中已经安装了编译环境 ACeLinux联盟
$ rpm -qa | grep gcc ACeLinux联盟
确定当前系统中安装了gcc编译器环境。 ACeLinux联盟
2、下载prozilla程序的源代码安装包文件 ACeLinux联盟
3、释放已下载的源代码软件包文件 ACeLinux联盟
$ tar jxf prozilla-2.0.4.tar.bz2 ACeLinux联盟
释放以下载的源代码软件包文件到当前目录。解压后的文件名:prozilla-2.0.4 ACeLinux联盟
扩展:tar的xzvf参数用于释放以tar.gz格式的压缩包。 ACeLinux联盟
4、进入源代码目录 ACeLinux联盟
$ cd prozilla-2.0.4 进入目录。 ACeLinux联盟
$ pwd 显示当前目录路径。 ACeLinux联盟
/home/teacher/download/prozilla-2.0.4 显示结果。 ACeLinux联盟
编译软件安装的路径: ACeLinux联盟
$ ./configure --prefix=/home/teacher/proz ACeLinux联盟
在prozilla程序的配置中,使用"--prdfix"选项可以指定应用程序编译后的安装路径,如果不使用"--prefix" ACeLinux联盟
选项指定安装路径,configure程序将配置prozilla的默认安装路径为"/usr/local/bin"目录。 ACeLinux联盟
5、程序编译过程 ACeLinux联盟
$ make ACeLinux联盟
使用make命令进行程序的二进制编译。 ACeLinux联盟
6、程序安装过程 ACeLinux联盟
$ make install ACeLinux联盟
"make install"命令将按照configuer命令的"--prefix"选项中设定的安装路径将已编译完成的应用程序安装到目标目录。 ACeLinux联盟
7、验证编译安装的程序 ACeLinux联盟
$ ls /home/teacher/proz ACeLinux联盟
察看proz文件夹中的文件。 ACeLinux联盟
bin include lib man share ACeLinux联盟
编译前的配置 ACeLinux联盟
$ ./configure - - help ACeLinux联盟
编译与安装: ACeLinux联盟
1、程序编译过程 ACeLinux联盟
$ make ACeLinux联盟
2、程序安装过程 ACeLinux联盟
$ make install ACeLinux联盟
3、验证编译安装的程序 ACeLinux联盟
使用图形界面系统工具完成RPM保的安装ACeLinux联盟