文本环境下软件安装对于初学Linux的人来说可能会有些恐惧,其实习惯了Linux字符模式,你很快也就会适应这种安装方式,不同的发行版本也会有不同的安装方法。
一、安装简便的RPM包
RPM是RedHat Package Manager的缩写,它只能使用在安装了RPM软件的系统中,RedHat Linux和Turbo Linux中已经使用了它。这种结构的包使用起来还是很方便的,只要记住几条简单的命令和参数就可以方便地使用:
#〉rpm [options] filename.rpm
其中常用的options包括:
-i: 安装软件
-e: 卸载软件
-q:查看软件安装的信息和状态
-U: 升级现有软件
例如安装软件时,可以使用如下命令:“rpm -i filename.rpm”,软件安装在什么地方、是怎么安装的都不需要用户操心,RPM可以帮助用户管理。由于RPM使用方便,很多软件都有RPM版本。如果想使用RPM形式的软件就要首先下载一个RPM管理软件。该软件有RPM包和.tar.gz包两种形式,如果你的系统中已经有了RPM管理软件,你可以下载RPM形式的包来升级现有软件,否则就必须了解.tar.gz包的安装方法。
二、安装需要编译的.tar.gz包
由于RPM包使用的局限性(必须安装RPM),目前更多的软件使用的是源代码形式的.tar.gz包。这种软件的安装通常要经过解压缩、软件配置、软件编译及安装的过程。
解压缩通常有两种命令方法:一种是“gunzip filename-VERSION-OS.tar.gz | tar xvf -”,它实质是两条命令“gunzip filename-VERSION-OS.tar.gz”和“tar xvf filename-VERSION-OS.tar”;另一种是“tar xzvf filename-VERSION-OS.tar.gz”。一般来说在软件解压缩后会生成一个目录filename-VERSION-OS。
软件的配置、编译、安装是最让初学者望而生畏的事了,但笔者认为掌握一些规律还是不难的。一般来说,在解压缩生成的目录中都会有名为Readme、 Rnstall或Readme.install之类的文件。这些文件通常会对软件的功能、特性、版权许可、安装以及相关知识加以介绍,并且会提到关于安装的方法和步骤。举例来说:在apache_1.3.6的install文件中说明了如下内容(此处只列出总的条目,具体内容省略):
Installing the Apache 1.3 HTTP server with APACI
==============================
1.Overview for the impatient(概括说明配置的全过程)
$./configure--prefix=PREFIX
$make
$make install
$PREFIX/bin/apachectl start
2.Requirements(需要的条件)
3.Configuring the source tree(配置的参数说明)
4.Building the package(编译软件的方法)
5.Installing the package(安装软件的方法)
6.Testing the package(软件测试)
理解并能熟练使用这些说明文件后,就可以利用一些规律来安装大多数的软件。对于那些没有说明文件的软件(当然这种情况比较少见),这些规律通常也是适用的。一般来说,与安装软件有直接关系的文件只有两个:configure 、Makefile。
其中,configure文件具有可执行的属性,是用来配置软件的,它的参数比较多,用法也比较灵活。当然,不同的软件参数也不相同,这时候就需要借助它的help参数,运行下面的命令就会让你感到豁然开朗:
- #〉 ./configure -help
- Usage: configure [options]
- Options: [defaults in brackets after descriptions]
- General options:
- --quiet, --silent do not print messages
- --verbose,-v print even more messages
- --sha [=DIR] switch to a shadow tree (under DIR) for building
- Stand-alone options:
- --help,-h print this message
- --show-layout print installation path layout (check and debug)
- [[The No.1 Picture.]]
- 图1 Gnome运行界面
- Installation layout options:
- --with-layout=[F:]ID use installation path layout ID (from file F)
- --target=TARGET install name-associated files using basename TARGET
- ……
接下来,就可以运行“./configure [options]”来配置该软件。注意,命令行中的“./”非常重要,它告诉系统要运行的命令就在当前目录下(否则系统就会到$path变量指定的路径下去执行命令)。执行命令后可以生成Makefile文件或者修改已有的文件配置。
Makefile文件通常是用来编译和安装软件的。运行make命令时系统会自动根据Makefile文件中的设置对软件进行编译和安装。make命令有时还可以带一些参数,如:all、build、config、install等。具体要带哪个参数可以参看Makefile文件。在Linux中绝大部分文件是文本文件,Makefile就是一个shell程序(Linux中shell程序与DOS中的批处理文件有很多相似之处,当然功能要强得多),很容易读懂,尤其是编译时可带的参数都会明确写出,例如:
- ##========================
- ## Targets
- ##========================
- # default target
- all: build
- ##------------------------
- ## Build Target
- ##------------------------
- # build the package
- build:
- ……
- # the non-verbose variant for package maintainers
- build-quiet:
- @$(MAKE) -f $(TOP)/$(MKF) $(MFLAGS) $(MFWD) QUIET=1 build
- # build the additional support stuff
- build-support:
- ……
- ##------------------------
- ## Installation Targets
- ## -----------------------
- # the install target for installing the complete Apache
- # package. This is implemented by running subtargets for the
- # separate parts of the installation process.
- install:
- ……
- # the non-verbose variant for package maintainers
- install-quiet:
- @$(MAKE) -f $(TOP)/$(MKF) $(MFLAGS) $(MFWD) QUIET=1 install
- # create the installation tree
- install-mktree:
- ……
上面这段代码是apache_1.3.6的Makefile文件的一部分,从这段程序可以看出all参数表示完全编译(缺省参数)。此外,编译时还可以带build、build-quiet、build-surpport等参数;安装时可以带install、install-quiet、 install-surpport等参数。它们的功能分别在“#”表示的注释中进行了说明。需要额外说明的是,有些软件(例如Linux的内核升级程序)不用configure命令来配置软件,而是用make config来完成这项工作,所以,具体使用哪种方法要具体问题具体分析。
◆几点注意事项
一、安装方法的适用范围
上面提到的软件安装方法并不是在任何版本的Linux上都适用。笔者认为,.tar.gz包的安装方法适用于各种版本的Linux,而RPM包则有一定的局限性。
目前常见的各种Linux发行版本中,如:Redhat 6.0、Turbo Linux 3.0.2、Xteam 3.0等都支持RPM包。如果你想知道你使用的Linux是否支持RPM包,只要运行一下“rpm --help”命令就知道了。不过,对于不支持RPM包的版本,可以安装一个RPM管理软件。
二、容易出现的问题
在安装软件时,一定要保证你对用到的软件包有访问权限。当然如果你是root就没问题了。但如果你真的是root你就需要注意另一个问题,由于 root的权限过高,所以在安装软件时,要防止对系统其它软件造成误操作(在使用rm 等“危险”命令时,尤其要注意)。
另一个容易出现的问题是,在卸载RPM包的软件时要慎重,因为很多软件之间是相互关联的,你卸载的软件很可能是其它软件要用到的,要防止由于卸载了一个软件而影响另一个软件的正常使用。所以笔者建议,初学者对于与系统运行有关的软件尽量不要删除(对于游戏、应用软件一类的软件不必有太多顾虑)。等你成为一名经验丰富的系统管理员时,你就能灵活地处理这些问题了。
【编辑推荐】