一切福田,不離方寸,從心而覓,感無不通。

Linux下的软件安装方法-rpm与*.tar.gz

 From:     http://blog.chinaunix.net/u/26011/showart_258096.html
系统安装好后,最重要的是软件的安装了,
Linux中的软件安装不像在Windows里面那样只要点下一步下一步就可以了。不过还是有规律可找,不会超过这些。

目前流行的软件包有两种比较常见的形式,一种是RPM包的形式,另一种是压缩成*.tar.gz的形式.

A、安装简便的RPM
RPM
Redhat Package Manager的缩写,它只能使用在安装了RPM软件的系统中。
语法:#rpm [options] filename.rpm
options(
注意大小写):
-i 
安装软件
-e 
卸载软件
-q 
:查看软件安装信息和状态
-U
升级现有软件
-v
显示附加信息
-h 
安装时以#号显示安装进度,每#为2

注意:如果要安装Filename.rpm软件只要用 rpm –ivh filename.rpm,软件安装在什么,是怎么安装的都不需要用户操心,不过安装不成功往往是权限和依赖关系,一定要注意当有多个软件包时有一定的顺序,如果没有安装上看错误提示。(在图形化界面RPM包也是相当容易安装跟在Windows中差不多)
查询RPM
有时我们要装一个包了,要看这个包有什么用或要用某个软件不知道自己以前装过没有,就可以用查询命令来查看。

1)软件包信息的查询
语法:# rpm {-q | --query} [ select-options ] [ query-options ]
-q –query : 
必要的参数,表示执行查询操作
Select-options
用来指定本次查询对象,选项:
-a 
:查询所有安装的软件包
-f<file> 
:查询<file>属于哪个软件包
--whatrequires<X> 
:查询所有需要<X>功能的软件包
-p<file> 
查询未安装的软件包信息
Query-options
用来指定本次查询所要获得的信息:
<null> 
为空时显示包的全部标识
-i 
显示软件包的概要信息
-l 
显示软件包中的文件列表
--provides 
显示软件包提供的功能
--requires[-R] 
:显示软件包所需要的功能
-c 
:显示配置文件列表
例:安装soft.rpm包,并查询软件信息
# rpm –ivh soft.rpm
查询soft.rpm软件包的安装文件列表
# rpm –ql soft.rpm

2) 查询已经安装好的软件包
# rpm –qa | grep soft.rpm
查询是否安装了soft.rpm
# rpm –ql soft.rpm
查询soft.rpm安装的位置

# rpm –qi soft.rpm 查询软件信息

B、安装需要编译的.tar.gz
由于RPM包使用的局限性,目前更多的软件使用的是源代码形式的.tar.gz包。这种软件的安装通常要经过解压缩、软件配置、软件编译及安装的过程。
1
、软件安装的第一步通常是解压,下面介绍几种压缩软件的解压与压缩命令:

注意:在解压和压缩之前一定要确定当前用户对文件是有执行权的。

用命令ll来查看,如果没有用chmod来更改,如果对一个文件夹,文件夹中有多个文件要加-R参数,即#chmod –R 755 /tmp/soft()

1)解压后缀为.tar的文件
# tar xvf soft.tar

2)解压后缀为.tar.gz的文件

# gunzip soft.tar.gz 
# tar xvf soft.tar
(注意:有两步先用guzip解开.gz再用tar解开.tar
# tar xvfz soft.tar.gz(
tar解压注意不同后缀的参数 )
用另外一个命令来解压
# gunzip –c soft.tar.gz | tar xvf –

3)压缩文件为.tar.gz的后缀

# tar cvf soft.tar /tmp/soft
# gzip –q soft.tar /tmp/soft
# tar cvfz soft.tar.gz /tmp/soft
用另外一个命令来压缩
# tar cvf – /tmp/soft | gzip –qc > soft.tar.gz

参数说明(参数小写):
-x 
释放文件内容
-v 
显示流程信息
-z 
解压ZIP压缩包
-c 
建立一个新压缩文件
-f 
定义压缩中的文字

4)解压后缀为tar.z的文件
# tar xvfz soft.tar.z
# uncompress soft.tar.z( 一样有两步 )
# tar xvf soft.tar
5
)解压后缀为.tgz文件
# gunzip soft.tgz

6) 压缩和解压后缀为.bz2的文件
# bzip2 /etc/httpd.conf(
将文件httpd.conf压缩为httpd.conf.bz2)
# bunzip2 /etc/httpd.conf.bz2 
(将文件httpd.conf.bz2还原为httpd.conf


2
、一般来说,在解压缩生成的目录中都会有名为Readme RnstallReadme.install之类的文件。这些文件通常会对软件的功能、特性、版权许可、安装以及相关知识加以介绍,并且会提到关于安装的方法和步骤。
说明文档常用的短语:
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 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命令有时还可以带一些参数,如:allbuild configinstall等。具体要带哪个参数可以参看Makefile文件。在Linux中绝大部分文件是文本文件,Makefile就是一个 shell程序(Linuxshell程序与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.6Makefile文件的一部分,从这段程序可以看出all参数表示完全编译(缺省参数)。此外,编译时还可以带 buildbuild-quietbuild-surpport等参数;安装时可以带installinstall-quietinstall- surpport等参数。它们的功能分别在“#”表示的注释中进行了说明。需要额外说明的是,有些软件(例如Linux的内核升级程序)不用 configure命令来配置软件,而是用make config来完成这项工作,所以,具体使用哪种方法要具体问题具体分析。


C
、其它的安装方法,利用脚本的安装(详细)

例:安装Webmin-1.250.tar.gz
先挂载:# mount /dev/cdrom /mnt/cdrom

进入挂载点:# cd /mnt/cdrom

拷贝Webmin-1.250.tar.gz/tmp下或者你想解压的目录

再进入/tmp: # cd /tmp

改变文件的权限: # chmod 755 webmin-1.250.tar.gz(因为一般挂载过来的文件都是只有只读的权限)

解压:# tar xvfz webmin-1.250.tar.gz

进入解压后的文件夹:# cd webmin-1.250

现在可以用ls查看一下文件,现在如果自己没有资料介绍,第一次安装一般都是查看说明文档如:READMERnstallReadme.install之类的文件。

现在找到README文档,(进行简单的中文说明##后的为说明)

[root@Ajian webmin-1.250]# cat README 

Webmin Version 1.250##版本的说明

——————--

Webmin is a web-based interface for system administration for Unix. 

Using any browser that supports tables and forms, you can setup user

accounts, Apache, internet services, DNS, file sharing and so on. 

##Webmin的功能介绍

Webmin consists of a simple web server, and a number of CGI programs

which directly update system files like /etc/inetd.conf and /etc/passwd.

The web server and all CGI programs are written in Perl version 5, and use

only the standard perl modules. 

Webmin can be installed in two different ways :

##Webmin安装有两个方法(主要就是看这里,找到安装的命令,看我划红色的地方)

在这里用的是setup.sh script(脚本)所以要用到bash

1) By just running the setup.sh script in the same directory as this README

file, with no arguments. You will be asked a series of questions such as

the configuration directory, your chosen login name and password, and

possibly your operating system. For questions where a default is shown

in square brackets, you can just hit enter to accept the default (which

is usually correct).

If the configuration directory you enter is the same as that used by

a previous install of Webmin, it will be automatically upgraded with all

configurable settings preserved.

This will set up Webmin to run directly from this directory. After running

setup.sh, do not delete the directory as it contains all the scripts and

programs that will be used by Webmin when it is running. Unlike in the second

installation method, the Webmin scripts do not get copied to another

location when installing.

2) By running the setup.sh script in this directory, but with a command-line

argument such as /usr/local/webmin . When a directory like this is provided,

Webmin's scripts will be copied to the chosen directory and it will be

configured to run from that location.

The exact same questions will be asked by setup.sh when it is run with

a directory argument, and upgrading will work in the same way. If you

are upgrading an old install, you should enter the same directory argument

so that the new files overwrite the old in order to save disk space.

After Webmin has been installed to a specific directory using this method,

the directory extracted from the tar.gz file can be safely deleted.

If you are installing Webmin on a Windows system, you must run the command

perl setup.pl instead, as shell scripts will not typically run on a Windows

system. The Windows version depends on several programs and modules that may

not be part of the standard distribution. You will need the process.exe

commmand, the sc.exe command and the Win32::Daemon Perl module.

For more information, see http://www.webmin.com/

Jamie Cameron

jcameron@webmin.com

安装:# bash setup.sh

再根据提示输入内容,一般都是回车就可以了,不过有一个要自己打用户名和密码的地方。

好了,软件基本的安装方法就这些。记得一定先看说明。

最后附一个高级用法:我们常碰到要应用一个软件而一下子装N个RPM的情况。让我们用一个命令搞定。如:安装Postgresql:

[root@linux software]# ls -1
postgresql-7.3.4-1PGDG.i386.rpm
postgresql-contrib-7.3.4-1PGDG.i386.rpm
postgresql-debuginfo-7.3.4-1PGDG.i386.rpm
postgresql-devel-7.3.4-1PGDG.i386.rpm
postgresql-docs-7.3.4-1PGDG.i386.rpm
postgresql-jdbc-7.3.4-1PGDG.i386.rpm
postgresql-libs-7.3.4-1PGDG.i386.rpm
postgresql-pl-7.3.4-1PGDG.i386.rpm
postgresql-python-7.3.4-1PGDG.i386.rpm
postgresql-server-7.3.4-1PGDG.i386.rpm
postgresql-tcl-7.3.4-1PGDG.i386.rpm
postgresql-test-7.3.4-1PGDG.i386.rpm
[root@linux software]# rpm -Uvh --nodeps ls -1
Preparing… ########################################### [100%]
1:postgresql-test ########################################### [ 8%]
2:postgresql ########################################### [ 17%]
3:postgresql-contrib ########################################### [ 25%]
4:postgresql-debuginfo ########################################### [ 33%]
5:postgresql-devel ########################################### [ 42%]
6:postgresql-docs ########################################### [ 50%]
7:postgresql-jdbc ########################################### [ 58%]
8:postgresql-libs ########################################### [ 67%]
9:postgresql-pl ########################################### [ 75%]
10:postgresql-python ########################################### [ 83%]
11:postgresql-server ########################################### [ 92%]
12:postgresql-tcl ########################################### [100%]
[root@linux software]# rpm -qa|grep postgre
postgresql-devel-7.3.4-1PGDG
postgresql-7.3.4-1PGDG
postgresql-python-7.3.4-1PGDG
postgresql-contrib-7.3.4-1PGDG
postgresql-jdbc-7.3.4-1PGDG
postgresql-server-7.3.4-1PGDG
postgresql-debuginfo-7.3.4-1PGDG

注意:红色部分的命令,ls -l上的是反斜点`是键盘左上角那个,而不是逗号。U也可以是i 这些参数自己看用途自己组合都是可以的,只要知道语法就行了。。