要充分发挥电脑的作用,就得有大量的应用软件,完成不同的工作。在Windows环境中安装各种应用软件的思路与方法,想必大家早已熟悉。然而,在使用Linux时,我们却总会被这些本不应该是问题的问题所困扰:怎么安装应用软件?我的软件安装在什么地方?如何删除不要的应用软件?……
下面,我们就一起来认识一下这些方面的知识。
一、解析Linux应用软件安装包
通常Linux应用软件的安装包有三种:
1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。
2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。
3) dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。
而且,大多数Linux应用软件包的命名也有一定的规律,它遵循:
名称-版本-修正版-类型
例如:
1)software-1.2.3-1.tar.gz 意味着:
软件名称:software
版本号:1.2.3
修正版本:1
类型:tar.gz,说明是一个tar包。
2)sfotware-1.2.3-1.i386.rpm
软件名称:software
版本号:1.2.3
修正版本:1
可用平台:i386,适用于Intel 80x86平台。
类型:rpm,说明是一个rpm包。
注:由于rpm格式的通常是已编译的程序,所以需指明平台。在后面会详细说明。
而software-1.2.3-1.deb就不用再说了吧!大家自己练习一下。
二、了解包里的内容
一个Linux应用程序的软件包中可以包含两种不同的内容:
1)一种就是可执行文件,也就是解开包后就可以直接运行的。在Windows中所 有的软件包都是这种类型。安装完这个程序后,你就可以使用,但你看不到源程序。而且下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。
2)另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。
通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序。一般来说,自己动手编译源程序能够更具灵活性,但也容易遇到各种问题和困难。而相对来说,下载那些可执行程序包,反而是更容易完成软件的安装,当然那样灵活性就差多了。所以一般一个软件总会提供多种打包格式的安装程序的。你可以根据自己的情况来选择。
1. 安装:
整个安装过程可以分为以下几步:
1)取得应用软件:通过下载、购买光盘的方法获得;
2)解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;
3)阅读附带的INSTALL文件、README文件;
4)执行“./configure”命令为编译做好准备;
5)执行“make”命令进行软件编译;
6)执行“make install”完成安装;
7)执行“make clean”删除安装时产生的临时文件。
好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执行呢?这也是一个Linux特色的问题。其实,一般来说,Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的INSTALL和README文件,一般都会有说明。
假如你已经得到一张包含linux应用程序安装套件的光盘,其中的压缩文件为prozilla-0.99.9.4.tar.gz.
请打开一终端窗口或退出x-window,再执行下列步骤:
步骤一:由光盘中获得prozilla-0.99.9.4.tar.gz.
步骤二:执行命令tar zxvf prozilla-0.99.9.4.tar.gz,解开压缩文件至任一目录下.
步骤三:执行命令cd prozilla-0.99.9,切换到解开的目录中.
步骤四:执行命令./configure,进行安装设置.
步骤五:待设置完成后,再分别执行命令make;make install;make clean.
步骤六:执行命令gproz -h &.
步骤七:检测安装结果.
2. 卸载:
通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。
那么是不是说就不能够卸载呢!其实也不是,有两个软件能够解决这个问题,那就是Kinstall和Kife,它们是tar包安装、卸载的黄金搭档。它们的使用方法,笔者会另行文介绍。在此就不加赘述了。
四、搞定使用rpm打包的应用软件
rpm可谓是Redhat公司的一大贡献,它使Linux的软件安装工作变得更加简单容易。
1. 安装:
我只需简单的一句话,就可以说完。执行:
rpm –ivh rpm软件包名
更高级的,请见下表:
rpm参数 参 数 说 明
-i 安装软件
-t 测试安装,不是真的安装
-p 显示安装进度
-f 忽略任何错误
-U 升级安装
-v 检测套件是否正确安装
这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。
2. 卸载:
我同样只需简单的一句话,就可以说完。执行:
rpm –e 软件名
不过要注意的是,后面使用的是软件名,而不是软件包名。例如,要安装software-1.2.3-1.i386.rpm这个包时,应执行:
rpm –ivh software-1.2.3-1.i386.rpm
而当卸载时,则应执行:
rpm –e software。
另外,在Linux中还提供了象GnoRPM、kpackage等图形化的RPM工具,使得整个过程会更加简单。这些软件的具体应用,笔者会另行文介绍。
2、RPM包管理
包管理系统初步:
RPM:RPM Package Manager
http://www.rpm.org
RPM包管理系统:
$ rpm
RPPM包的文件名称:
bash-3.0-19.2.i386.rpm
bash:软件名称。
3.0-19.2:软件的版本号。
i386:软件所运行的最低硬件平台。
rpm:文件的扩展名,用来标识当前文件是rpm格式的软件包。
RPM包管理功能:
rpm命令配合不同的参数可以实现以下的rpm包的管理功能:
查询已安装在linux系统中的RPM软件包的信息。
查询RPM软件包安装文件的信息。
安装RPM软件包到当前linux系统。
从当前linux系统中卸载已安装的RPM软件包。
从当前linux系统中升级已安装的RPM软件包。
使用rpm命令查询软件包:
1、查询系统中安装的所有RPM包
$ rpm -qa 查询当前linux系统中已经安装的软件包。
例:$ rpm -qa | grep -i x11 | head -3 察看系统中包含x11字符串的前3行软件包。
2、查询软件包是否安装
$ rpm –q rpm包名称 察看系统中指定软件包是否安。
例: $ rpm -q bash 察看系统中bash软件包是否安装。
"rpm -q"命令中指定的软件包名称需要准确的拼写,该命令不会在软件包的名称中进行局部匹配的查询。
3、查询已安装软件包详细信息
$ rpm –qi RPM包名称 查询linux系统中指定名称软件包的详细信息。
例:$ rpm -qi bash 察看bash软件包的详细信息。
"rpm -qi"命令的执行结果中包含较详细的信息,包括:软件名称,版本信息,包大小,描述,等。
4、查询已安装软件包中的文件列表
$ rpm –ql RPM包名称 查询已安装软件包在当前系统中安装了哪些文件。
例:$ rpm -ql bash | head -3 查看bash软件在系统中已安装文件的前3行文件列表。
$ rpm -ql bash | grep bin 用过滤方式察看bash中包含bin字符串的文件列表。
5、查询系统中文件所属的软件包
$ rpm –qf 文件名称 查询linux系统中指定文件所属的软件包。
例:$ rpm -qf /bin/bash 察看bash文件所属的软件包。
bash-3.0-19.2 显示结果。
6、查询RPM安装包文件中的信息
$ rpm –qpi RPM包文件名 察看RPM包未安装前的详细信息。
$ rpm –qpl RPM包文件名 察看RPM包未安装前的文件列表。
"rpm -qpi和rpm -qpl 这两条命令可作为在安装软件包之前对其的了解。
7、rpm命令查询实例
$ which mount 获得mount命令的可执行文件路径。
$ rpm –qf /bin/mount 查询/bin/mount所属的软件包。
$ rpm –qi util-linux 查询/bin/mount所属软件包的详细信息。
$ rpm –qf util-linux | grep mount 查询/bin/mount所属软件包中包括mount相关所有文件。
使用rpm命令安装软件包
1、rpm软件包地基本安装
$ rpm –i rpm安装包文件名 安装该软件包中的文件到当前系统,安装过程不提示任何信息。
2、在安装软件包的同时显示详细信息
$ rpm –ivh rpm安装包文件 安装该软件包中的文件到当前系统,安装过程会以百分比的形式
显示安装的进度和一些其他信息。
3、RPM软件包安装的依赖关系
强制安装:$ rpm --force –i rpm包文件名
注:要先满足软件包的依赖关系后再进行软件包的安装,使用强制安装命令安装不能保证软件安装到系统后一定能
正常运行,因此建议慎重使用。
使用rpm命令卸载软件包:
1、RPM软件包的卸载
$ rpm -e 软件包名称 软件包的卸载,在卸载时不显示任何信息。
注:RPM软件包的卸载同样存在依赖关系,只有在没有依赖关系存在时才能对其进行卸载。
2、rpm软件包卸载的依赖关系
在使用RPM命令进行卸载时,RPM命令会分析要卸载的软件包的依赖关系,当存在依赖关系时会自动停止,并显由
哪个软件造成的卸载失败。根据RPM提示的错误信息,确定先卸载的软件包,再卸载被依赖的软件包。
使用rpm命令升级软件包:
$ rpm - U rpm安装包文件名
注:"rpm -u"命令中使用的升级软件包文件最好使用RED HAT公司针对当前的linux版本官方推出的升级文件,建议不要
使用第三方提供的升级包。
应用程序编译
开放源代码应用程序的编译安装
(下面以多线程下载软件"prozilla"的源代码编译安装为例来说明源代码编译安装的整个过程)
编译应用程序前的准备工作:
1、确认系统中已经安装了编译环境
$ rpm -qa | grep gcc 确定当前系统中安装了gcc编译器环境。
2、下载prozilla程序的源代码安装包文件
略
3、释放已下载的源代码软件包文件
$ tar jxf prozilla-2.0.4.tar.bz2 释放以下载的源代码软件包文件到当前目录。解压后的文件
名:prozilla-2.0.4
扩展:tar的xzvf参数用于释放以tar.gz格式的压缩包。
4、进入源代码目录
$ cd prozilla-2.0.4 进入目录。
$ pwd 显示当前目录路径。
/home/teacher/download/prozilla-2.0.4 显示结果。
编译软件安装的路径:
$ ./configure --prefix=/home/teacher/proz
在prozilla程序的配置中,使用"--prdfix"选项可以指定应用程序编译后的安装路径,如果不使用"--prefix"
选项指定安装路径,configure程序将配置prozilla的默认安装路径为"/usr/local/bin"目录。
5、程序编译过程
$ make 使用make命令进行程序的二进制编译。
6、程序安装过程
$ make install
"make install"命令将按照configuer命令的"--prefix"选项中设定的安装路径将已编译完成的应用程序安装
到目标目录。
7、验证编译安装的程序
$ ls /home/teacher/proz 察看proz文件夹中的文件。
bin include lib man share
编译前的配置
$ ./configure - - help
编译与安装:
1、程序编译过程
$ make
2、程序安装过程
$ make install
3、验证编译安装的程序
五、搞定使用deb打包的应用程序
这是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得更早,所以在各种版本的Linux都常见到。而debian的包管理器dpkg则只出现在Debina Linux中,其它Linux版本一般都没有。我们在此就简单地说明一下:
1. 安装
dpkg –i deb软件包名
如:dpkg –i software-1.2.3-1.deb
2. 卸载
dpkg –e 软件名
如:dpkg –e software
好了,就说到这,希望能够帮助大家找到北