对于Linux初学者来说,安装一个很小的软件恐怕都是一件很让人头疼的事,因为在Linux下安装软件不像在 Windows中那样简单。在Linux中大多数软件提供的是源代码,而不是现成的可执行文件,这就要求用户根据自己系统的实际情况和自身的需要来配置、编译源程序后,软件才能使用。多数初学者往往不知道该如何进行配置和编译就盲目地运行一些有执行属性的文件或者机械地运行“make”、“make install”之类的命令。结果呢?是软件没装成,自己急出一身汗,后果严重的还会破坏系统的稳定性。下面笔者将安装软件方面的一些规律写出来与大家分享。

目前流行的软件包有两种比较常见的形式,一种是RPM包的形式,另一种是压缩成*.tar.gz的形式。本文将讨论这两种形式的软件包在文本环境和图形环境(X Window)下不同的安装方法。  

文本环境下的软件安装  

一、安装简便的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管理软件。在ftp://ftp.rpm.org/pub/rpm/dist/rpm- version网站可以下载最新的版本——rpm-3.-.4.i386。该软件有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(编译软件的方法)

2楼


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)

 
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

3楼


# 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来完成这项工作,所以,具体使用哪种方法要具体问题具体分析。  

图形界面下的软件安装  

在图形环境下,同样可以弹出一个仿真终端以文本的方法来安装软件,但那样就太笨了,因为在X Window中有一些简单的方法可以帮您完成软件安装。下面笔者以RedHat 6.0为例做介绍。

一、图形界面下安装.tar.gz包

在X Window下,安装这种形式的包简化程度并不大,只是在解压缩软件时方便一些。用鼠标左键双击要安装的软件包,系统就会自动生成一个目录—— filename.tar.gz#utar,在这个目录下就有你要解压缩的内容——filename目录。将该目录拷贝到你要解压缩的目录下,解压缩的工作就这样简单地完成了。不过,剩下的工作还要弹出一个仿真终端以文本的方法来完成。

二、图形界面下安装RPM包

在X Window中你要安装、升级、卸载和查询一个RPM软件包实在是太容易了。以Redhat 6.0为例,它的X Window中有一个Gnome RPM软件可以完成上面提到的一切工作。

点击“Start”→“System”→“GnomeRPM”,可以运行该软件。它将安装好的RPM包形式的软件按照功能分在Amusements、 Application、Development、Document、Extension、Extentions、Networking、System Environment、UserInterface、X11等几个树形目录中,每个目录中有相应的文件图标和名称。要安装或升级软件,只要点击工具栏的相应按钮就会弹出打开文件的对话框,选中你要安装的RPM文件,单击“OK”按钮,一切大功告成;卸载软件时,需要根据分类找到该软件的图标,点击右键,选Uninstall就可以了。如果你会在Win 95/98中查找文件的话,在Linux中查找已经安装的软件也就不难了。这个软件可以到下面的站点下载: ftp.gnome.org/pub/GNOME/stable/

sources/gnorpm。

 几点注意事项  

一、安装方法的适用范围

上面提到的软件安装方法并不是在任何版本的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包的软件时要慎重,因为很多软件之间是相互关联的,你卸载的软件很可能是其它软件要用到的,要防止由于卸载了一个软件而影响另一个软件的正常使用。所以笔者建议,初学者对于与系统运行有关的软件尽量不要删除(对于游戏、应用软件一类的软件不必有太多顾虑)。
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐