一、Linux应用程序基础
1、Linux应用程序的组成
■普通的可执行程序文件。一般保存在“/usr/bin”目录中,普通用户即可执行。
■服务器程序、管理程序文件。一般保存在“/usr/sbin”目录下,只有管理员能执行。
■配置文件。一般保存在“/etc”目录中,配置文件较多时会建立相应的子目录。
■日志文件。一般保存在“/var/log”目录中。
■关于应用程序的参考文档等数据。一般保存在“/usr/share/doc/”目录中。
■执行文件及配置文件的man手册页。一般保存在“/usr/share/man/”目录中。
2、软件包的封装类型
■ RPM软件包:文件的扩展名为“.rpm”,只能在RPM机制的Linux操作系统中安装。RPM软件包一般针对特定版本的系统量身定制,因此依赖性比较强。安装RPM包需要使用系统中的rpm命令。
■ DEB软件包:文件的扩展名为“.deb”,只能在使用DPKG机制的Linux操作系统中进行安装,如Debian、Ubuntu等。安装DEB软件包需要使用系统中的dpkg命令。
■源代码软件包:这种软件包是程序员开发完成的原始代码,一般被制作成“.tar.gz”、“.tar.bz2”等格式的压缩包文件,因多数使用tar命令打包而成,所以经常被称为“TarBall”。安装源码软件包需要使用相应的编译工具,如Linux中的C语言编译器gcc。
■附带安装程序的软件包:软件包中会提供用于安装的可执行程序或脚本文件,如install.sh、setup等,有时候会以“.bin”格式的单个安装文件形式出现。只需运行安装文件就可以根据向导程序的提示完成安装操作。
■绿色免装程序:此类软件已经配置安装完毕,可以直接打开使用。
二、使用RPM包管理工具
1、RPM概述
RPM软件的官方下载站点为http://www.rpm.org
使用RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用
软件名一软件版本一发布次数.操作系统类型.硬件架构类型.rpm
2、使用RPM包管理命令——rpm
rpm命令具有相当复杂的命令格式,结合不同的命令选项及子选项主要可以实现以下三类功能。
■查询、验证rpm软件包的相关信息。
■安装、升级、卸载RPM软件包。
■维护RPM数据库信息等综合管理操作。
2.1)、查询RPM软件包信息
不带选项的“-q”选项可用于查询已知名称的软件包是否已经安装,需要使用准确的软件名作为参数(可以是多个)。结合不同的子选项使用时,可以实现更具体的查询。
■ –qa:显示当前系统中以RPM方式安装的所有软件列表。
■ –qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息。
■ –ql:显示指定的软件包在当前系统中安装的所有目录、文件列表。
■ –qf:查看指定的文件或目录时由哪个软件包所安装的。
使用RPM命令只能查询通过rpm方式安装的软件包信息。
2.2)、查询RPM包文件中的相关信息
使用“-qp”选项时,必须以RPM包文件的路径作为参数(可以有多个),而不是软件包的名字。
■ –qpi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息。
■ –qpl:查看该软件包贮备要安装的所有目标目录、文件列表。
2.3)、安装、升级、卸载RPM软件包
■ –i:在当前系统中安装一个新的RPM软件包。
■ –e:卸载指定名称的软件包。
■ –U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项。
■ –F:检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装。
■ --force:强制安装某个软件包,当需要替换现已安装的软件包及文件,或者安装一个比当前使 用的软件版本更旧的软件时,可以使用此选。(一般不建议使用)
■ --nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系。
■ –h:在安装或升级软件包的过程中,以“#”号显示安装进度。
■ –v:显示软件安装过程中的详细信息。
一般安装软件时使用“rpm -ivh”
2.4)、维护RPM数据库
■重建RPM数据库
[[email protected] ~]# rpm --rebuilddb
或者
[[email protected] ~]#rpm --initdb
2.5)、导入验证公钥
在Linux/UNIX应用领域,相当一部分软件厂商会对发布的软件包进行数字签名,以确保软件的完整性、合法性。对于用户来说,可以利用软件官方提供的公钥文件,自动对下载的软件包进行验证,若在安装软件时出现验证失败的提示,则表示该软件包可能已经被非法篡改了。
先把系统光盘挂载到/media中,执行命令:
[[email protected]~]#rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release
三、从源代码编译安装程序
1、解包
开源软件的源代码一般为TarBall形式,扩展名为“.tar.gz”或“.tar.bz2”,都可以使用tar命令进行解压释放。对于只有“.gz”扩展名的源代码包,表示只经过压缩而并未使用tar归档,直接使用gzip进行解压缩。解压时通常将各种软件的源代码目录保存到“/usr/src/”目录中,以便于集中管理。释放后的软件包目录一般都会包括软件名和版本信息。解包前先安装编译环境和依赖包。(安装apache之前需要将系统上装好的apache服务先卸掉。)
把httpd……tar.gz文件解包到/usr/src/目录中。
[[email protected]~]#tar zxf httpd-2.2.15.tar.gz –C /usr/src/ [[email protected]~]#ls /usr/src/ debug httpd-2.2.15 kernels
2、配置
配置需要进入源代码目录,对软件的安装目录、功能选择等参数进行预先配置。
配置工作通常由源代码目录中的“configure”脚本文件来完成,可用的各种配置参数可以通过在源代码目录中执行“./configure --help”进行查看。对不同的软件程序来说,配置参数会存在区别,但是有一个“--prefix”形式的参数,却是大多数开源软件通用的,该配置参数用于指定软件包安装的目标文件夹。如果没有指定任何配置参数,“configure”脚本将采用软件默认的值进行配置。
[[email protected]~]#cd /usr/src/httpd-2.2.15/ [[email protected] httpd-2.2.15]#./configure --prefix=/usr/local/apache/
3、编译
编译的过程主要是根据Makefile文件内(因此,若上一步的配置操作失败,将无法进行编译)的配置信息,将源代码文件进行编译而生成二进制的程序模块、动态链接库、可执行文件等。配置完成之后,只要在源代码目录中执行“make”命令即可执行编译操作。编译的过程比配置需要更长的时间,期间会显示大量的执行过程信息。(还要注意软件支持的系统级别时32位的还是64位的。)
[[email protected] httpd-2.2.15]#make
4、安装
编译完成后,就可以执行“make install”命令将软件的执行程序、配置文件、帮助文档等相关文件复制到Linux系统中了,即应用程序的最后“安装”过程。安装过程需要的时间相对要短些。
[[email protected] httpd-2.2.15]#make install
有时候为了便捷,上述的编译、安装步骤可以写成一行命令执行,中间使用“&&”符号分隔即可。例如:
[[email protected] httpd-2.2.15]#make && make install
表示“make”命令执行成功以后再执行“make install”命令,否则将忽略“make install”命令
5、使用
安装后使用需先配置文件。
[[email protected] httpd-2.2.15]#vim/usr/local/apache/conf/httpd.conf
修改配置文件httpd.conf的第97行,将前边的“#”号去掉,保存退出。
然后启动Apache
[[email protected] httpd-2.2.15]#/usr/local/apache/bin/apachectl start
装了lynx的运行(没装lynx需要插上系统光盘安装lynx)
[[email protected] httpd-2.2.15]#lynx 127.0.0.1
查看本机Apache运行状态,如果看到“It works!”字样表明Apache已经工作正常了。