&">nbsp;
通常 Linux 下的应用软件包有以下三种类型:
tar包
由 Unix 系统的打包工具tar 制作,如example-1.2.3-1.tar.gz。
rpm包
RedHat 公司提供的一种软件包封装格式,如example-1.2.3-1.i386.rpm。
dpkg包
Debain Linux 提供的一种包封装格式,如 example-1.2.3-1.i386.deb。
通常用 tar 打包的都是源程序,用rpm、dpkg 打包的则是可执行程序。一般一个软件会提供多种打包格式的安装程序,用户可以根据情况选择使用。自己编译安装源程序具有更大的灵活性,但初级用户可能会遇到一些困难;而可执行程序包能够更容易地完成安装。
本章先简单介绍如何使用 shell 命令安装和管理系统中的应用程序和软件包,之后详细说明如何使用图形化的软件包管理工具在桌面环境下安装和管理rpm 软件包。
4.1使用rpm命令
rpm是一个功能十分强大的软件包管理系统,它使得 Linux下安装、升级和删除软件包的工作变得简单容易,并且具有查询、验证软件包的功能。与图形化工具相比,使用命令行可以获得更大的灵活性。
以下的例子都以 example-1.2.3-1.i386.rpm代表对象软件包的名称。
4.1.1安装、升级和更新
应用下面三个参数为系统安装软件包:
rpm -i 安装一个新的软件包
rpm -U 升级一个软件包,如果系统中原来不存在,就进行安装
rpm -F 更新一个软件包,如果系统中原来不存在,就不进行安装
经常和这几个参数配合使用的参数包括:
-v 查看安装过程中的各种信息
-h 在安装过程中显示进度条
一个常用的命令形式如下:
rpm -Uvh example-1.2.3-1.i386.rpm
这个命令将升级或安装软件包,同时显示安装信息和进度条。
4.1.2删除
删除一个软件包的命令是:
rpm -e example
删除时使用的是软件名,而不是软件包的全称。
4.1.3查询
列出用户已经安装的 RPM包清单
如果想查询系统中所有已经安装的 RPM包,使用 rpm -qa即可输出所有已安装 RPM包的列表;如果是查看某个已经安装的软件包,则使用 rpm -q example命令。
查看一个RPM包中包括的文件
想要查看某个软件包中包含的文件清单,有下面两种方法:
a) 如果是未安装的软件包,则使用 rpm -qlp example-1.2.3-1.i386.rpm
b) 如果是已安装的软件包,请使用
rpm -ql example
确定某个文件属于哪个
RPM包如果遇到某个不认识的文件,要找出它属于哪个软件包,则首先记录这个文件的完整路径(绝对路径),然后输入以下命令:
rpm -qf filename
查询RPM包的用途
用户可以在安装或使用时查询每个软件包的用途、版本及其它信息,使用如下的命令完成查询:
rpm -qip example-1.2.3-1.i386.rpm
4.1.4验证
验证一个软件包,就是比较原始包和已安装软件包中文件的信息。具体来说,这些信息包括每个文件的大小、MD5校验和、访问许可权、类型以及所属的用户和组等。使用命令 rpm -V可以验证一个包,下面是常用的几种情况:
验证包含某个特殊文件的软件包
rpm -Vf filename
验证所有已安装的软件包
rpm -Va
上面介绍了几个常用RPM命令,关于 RPM工具的更多资源,请参看相关的 man手册页;还可以在以下的网址 http://www.rpm.org 获得RPM的最新资源。
4.2安装tar格式的软件包
*.tar.gz形式的二进制软件包是用 tar工具来打包、用 gzip程序压缩的,安装时需要先解开压缩包,其安装过程分为如下几个步骤:
1) 获得应用软件:可以通过网络下载、光盘或其它渠道得来;
2) 解压缩文件;
一般的 tar包,都会再做一次压缩,常见的是 gzip压缩,用“tar –xvzf *.tar.gz”,就可以完成解压和解包工作;
3) 阅读附带INSTALL和 README文件;
4) ./configure”命令为编译做好准备;
5) 通过后,将生成用于编译的 makefile文件,运行“ make”命令开始进行编译;编译的过程视软件的规模和计算机性能的不同,所耗费的时间也不同;
6) 执行“make install”命令完成安装;
7) 执行“make clean”命令删除安装时产生的临时文件。
怎样运行安装后的应用软件呢?一般来说,Linux下的应用软件可执行文件存放在 /usr/local/bin目录下,但这也不是绝对的,最好的方法是查看该软件所附的 INSTALL和 DEADME文件,其中会有明确说明。
与安装 RPM软件包相比,用户自己编译安装源程序虽然具有灵活的可配置性,但编译过程中可能会遇到很多问题,它适合于有一定开发经验的用户,一般不推荐初学者使用。