在Linux系统中,流行的软件安装包有两种:一种是
二进制发布的软件包,另一种是
源代码发布的软件包。
二进制发布的软件包:
二进制发布的软件包是指已经事先将应用系统编译成可执行的二进制形式,在安装时不需要用户重新编译。
优点:安装和使用方便容易
缺点:缺乏灵活性,只能运行在特定的硬件系统平台,不同的平台需要发布相应的二进制发布软件包。
封装格式:
rpm包:RedHat linux提供的一种包封装格式,扩展名一般为.rpm或.src.rpm
dpkg包:Debain Linux提供的一种包封装格式,扩展名一般为.deb
tar包:直接用系统工具tar打包并使用gzip等压缩工具压缩而成,扩展名.tar、.tar.gz、tar.Z、tar.bz2等。只 要将其打包文件解压后,应用程序就可以运行或者运行其提供的安装脚本就可以,非常方便。
源代码发布的软件包:
源代码发布的软件可以根据用户系统的实际情况和自身需求来配置,并将源程序编译成可执行的二进制代码。
优点:可控制性强,配置灵活,可以根据具体要求删除或增加功能,适应多种硬件平台
缺点:安装复杂,容易出现各种错误。
封装格式:
一般装源程序和相关配置文件使用系统打包工具tar打包并使用gzip安装而成。
扩展名一般为.tar、tar.gz、tar.Z、tar.bz2。
rpm安装包的管理:
rpm是Red Hat Package Manager的缩写,它的出现使得Linux中的应用软件安装、卸载、升级、验证、查询等操作变得非常简单。它记录了二进制软件包的内容、安装位置、软件包的描述信息、软件包之间的依赖关系等重要的信息。
Linux常见的软件包可以在网站http://www.rpmfind.net和ftp://ftp.redhat.com/pub/contrib中找到。
rpm安装包的命名:
例:gzip-1.3.3-13.i386.rpm
gzip是软件名称
1.3.3是软件的版本号,格式通常为“主版本号.次版本号.修正版本号”主次版本号是项目中已经指定,标志着重要的变更。修正号表示小的功能变更或用来管理项目的分支。
13是发布版本号。是指编译的次数,也就是说这个rpm包是第几次编译生成的。
i386指软件包能在什么样的体系结构运行。
rpm是rpm包类型的后缀。rpm包有rmp和src.rpm两种类型的后缀。
注释:
1、rpm包中的i386、i586、i686:
rpm包支持的体系结构有Intel x86(i386、i586、i686)、Sun RISC SPARC(sparc)、Alpha(alpha)。
Intel x86体系结构的i386指Intel 80386以上的计算机;
i586指Intel Pentium以上的计算机
i686指Intel Pentium 2 以上的计算机
Intel x86体系结构指令集是向下兼容的,所以 Intel Pentium 2 以上的计算机可以运行i386平台的软件
注意:还有一种noarch的rpm包,表示这个包与体系结构无关。
大家可以通过/proc/cpuinfo来判断当前的体系结构
Update 2006.12.11
rpm命令的使用:
1、安装rpm包:
-i 表示进行安装操作
-v 表示报告每一步操作的情况
-h 表示使用hash ”#”指示安装进度
--replacepkgs 系统中已经存在了软件包,那么如果再要强行安装时,可以使用这个参加来忽略错误
--nodeps 忽略检查软件之间的依赖关系
例:
rpm -i zsh-4.0.7-1.i386.rpm #基本安装
rpm -ivh zsh-4.0.7-1.i386.rpm #安装时显示安装过程
rpm -ivh --noplacepkgs zsh-4.0.7-1.i386.rpm #软件已被安装,强行再次安装
rpm -ivh --nodeps mysql-4.1.7-4.RHEL4.1.i386.rpm #解决相互领事问题
2、升级rpm包:
-U 表示进行升级操作(软件的升级安装分为两步:一是卸载旧版本软件;二是安装新版本软件。 为了保留用户对原软件的配置,软件的配置文件在升级过程中会保留)
-F 表示只升级系统中存在的软件 (这个参数可以先检查系统中是否已经有了旧的版本,如果有就 执行升级操作,如果没有,就跳过这个rpm包,继续处理下一个rpm包。)
例:
rpm -Uvh zsh-4.0.7-1.i386.rpm #要用 zsh-4.0.7-1.i386.rpm升级旧版本的 zsh软件
rpm -Fvh *.rpm #批量升级系统中的软件可以使用的命令
3、降级rpm包:
--oldpackage 忽略错误信息,直接进行降级操作
例:rpm -Uvh --oldpackage zsh-4.0.7-1.i386.rpm #对 zsh进行降级操作
4、卸载rpm包:
-e 表示进行卸载操作
--nodeps 表示忽略检查依赖关系
例:rpm -e zsh (注意这里的软件名是软件的名称,不包括软件的版本号)
rpm -e --nodeps httpd
5、查询rpm包
-q 表示进行查询操作
-i 表示显示软件包的概要信息
-l 表示显示软件包中的文件列表
-a 表示查询所有已安装的rpm包
-f 表示根据文件进行相关的查询
例:
rpm -q gzip 查询系统中是否已经安装了gzip这个软件包
rpm -qi gzip 查询gzip包的概要信息
rpm -ql gzip 查询gzip这个rpm包里都有那些文件,以及列出这些软件
rpm -qa | grep "zip" 查询系统中所有的安装包中是否包含有zip这个软件包
rpm -qf /etc/ntp.conf 查询/etc/ntp.conf这个文件属于那个rpm包
6、校验rpm包
-K 表示检查软件包的完整性
--nosignature 表示不验证软件包的签名
例:
rpm -K --nosignature zsh-4.0.7-1.i386.rpm 校验 zsh-4.0.7-1.i386.rpm文件包,但不校验签名
Update 2006.12.20
安装srpm软件包:
扩展名为.src.rpm的软件包,是源程序rpm包(srpm),这种形式的软件包其实就是包含了软件的源代码,安装时需要进行编译才能完成安装。但它与直接使用源代码发布的软件包最大的区别在于,安装src.rpm时,系统会根据当前的体系结构和操作系统的类型来产生相应的二进制rpm安装包,然后再安装生成的rpm软件包,既保留源代码发布的软件包能适宜与多种硬件和操作系统平台的优点,又能继承rpm安装包的方便性。
安装方法:
1、生成二进制rpm安装包
rpmbuild --rebuild 文件名
--rebuild 表示将srpm软件包编译并在/usr/src/RedHat/RPMS/I386目录下生成二进制rpm安装包
例:rpmbuild --rebuild dvd + rw -tools-5.21.4.10.8-6.src.rpm
2、安装rpm安装包
进入到 /usr/src/RedHat/RPMS/I386目录下,可以发现rpmbuild已经生成了rpm安装包,直接使用 rpm命令就可以安装,命令如下:
rpm -ivh dvd + rw -tools-5.21.4.10.8-6.src.rpm
安装源代码发布软件包:
使用源代码安装软件,能按照用户的需要选择用户制定的安装方式进行安装,而不是仅仅依靠那些在安装包中的预置的参数选择进行安装,为用户安装软件带来了很大的灵活性。同时,目前还有许多软件仍然只使用源代码发布,所以掌握源代码发布软件包的安装方法就相当的重要。
安装步骤:
1、解包解压缩
2、配置、编译、和安装软件
具体步骤:
1、解包解压缩:
tar包:tar xvf filename.tar #这种安装包直接使用命令tar打包而成
tar.gz包:tar zxvf filename.tar.gz #这种安装包使用tar命令打包加上gzip命令压缩而成,需要 保证系统中安装了gzip软件
tar.Z包:tar Zxvf filename.tar.Z #这种安装包使用tar命令打包加上compress命令压缩而成, 需要保证系统安装了ncompress软件
tar.bz2包:tar jxvf filename.tar.bz2 #这种安装包使用tar命令打包加上bzip2命令压缩而成,需 要保证系统中安装了bzip2软件
2、配置、编译、安装软件
在配置、编译、安装之前,进入到软件包解压后的目录,阅读软件的相关说明文件,如 Readme或者Install,了解安装的需求,配置参数以及注意事项等。
配置: . /configure
如果要安装到指定的目录,可以用“ --prefix ”参数
. /configure --prefix = /usr/local/freeradius
其实源程序目录中的configure命令是一个可执行脚本,,首先会检查当前系统是否有符 合软件编译安装的相关环境(如是否有GNU C/C++编译器等),然后根据它从系统中 读出各种所需的属性在当前目录生成Makefile文件供编译安装使用。
编译:
Make是Unix和Linux系统下最常用的二进制程序和函数编译工具。Make通过读取当前目录下文件Makefile的内容来自动完成编译工作。Makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系,一般是由configure脚本来生成。对于一些小软件,也可能不需要运行configure脚本,软件已经自带了Makefile文件。
make
安装:make install
清理临时文件:make clean
卸载源代码发布软件:
源代码发布软件会将文件分散安装在系统的多个目录中,往往很难删除。有些软件包的源代码在编译安装后可以在源程序目录中运行“ make uminstall”命令来进行卸载,如果不提供此功能,那么就得手动卸载。所以在安装软件时,如果能使用configure脚本的“--prefix”参数来指定安装目录名时,卸载软件可直接使用“rm -rf”f直接删除就成。不过,最好参考软件的卸载部分的帮助信息。
二进制发布的软件包:
二进制发布的软件包是指已经事先将应用系统编译成可执行的二进制形式,在安装时不需要用户重新编译。
优点:安装和使用方便容易
缺点:缺乏灵活性,只能运行在特定的硬件系统平台,不同的平台需要发布相应的二进制发布软件包。
封装格式:
rpm包:RedHat linux提供的一种包封装格式,扩展名一般为.rpm或.src.rpm
dpkg包:Debain Linux提供的一种包封装格式,扩展名一般为.deb
tar包:直接用系统工具tar打包并使用gzip等压缩工具压缩而成,扩展名.tar、.tar.gz、tar.Z、tar.bz2等。只 要将其打包文件解压后,应用程序就可以运行或者运行其提供的安装脚本就可以,非常方便。
源代码发布的软件包:
源代码发布的软件可以根据用户系统的实际情况和自身需求来配置,并将源程序编译成可执行的二进制代码。
优点:可控制性强,配置灵活,可以根据具体要求删除或增加功能,适应多种硬件平台
缺点:安装复杂,容易出现各种错误。
封装格式:
一般装源程序和相关配置文件使用系统打包工具tar打包并使用gzip安装而成。
扩展名一般为.tar、tar.gz、tar.Z、tar.bz2。
rpm安装包的管理:
rpm是Red Hat Package Manager的缩写,它的出现使得Linux中的应用软件安装、卸载、升级、验证、查询等操作变得非常简单。它记录了二进制软件包的内容、安装位置、软件包的描述信息、软件包之间的依赖关系等重要的信息。
Linux常见的软件包可以在网站http://www.rpmfind.net和ftp://ftp.redhat.com/pub/contrib中找到。
rpm安装包的命名:
例:gzip-1.3.3-13.i386.rpm
gzip是软件名称
1.3.3是软件的版本号,格式通常为“主版本号.次版本号.修正版本号”主次版本号是项目中已经指定,标志着重要的变更。修正号表示小的功能变更或用来管理项目的分支。
13是发布版本号。是指编译的次数,也就是说这个rpm包是第几次编译生成的。
i386指软件包能在什么样的体系结构运行。
rpm是rpm包类型的后缀。rpm包有rmp和src.rpm两种类型的后缀。
注释:
1、rpm包中的i386、i586、i686:
rpm包支持的体系结构有Intel x86(i386、i586、i686)、Sun RISC SPARC(sparc)、Alpha(alpha)。
Intel x86体系结构的i386指Intel 80386以上的计算机;
i586指Intel Pentium以上的计算机
i686指Intel Pentium 2 以上的计算机
Intel x86体系结构指令集是向下兼容的,所以 Intel Pentium 2 以上的计算机可以运行i386平台的软件
注意:还有一种noarch的rpm包,表示这个包与体系结构无关。
大家可以通过/proc/cpuinfo来判断当前的体系结构
Update 2006.12.11
rpm命令的使用:
1、安装rpm包:
-i 表示进行安装操作
-v 表示报告每一步操作的情况
-h 表示使用hash ”#”指示安装进度
--replacepkgs 系统中已经存在了软件包,那么如果再要强行安装时,可以使用这个参加来忽略错误
--nodeps 忽略检查软件之间的依赖关系
例:
rpm -i zsh-4.0.7-1.i386.rpm #基本安装
rpm -ivh zsh-4.0.7-1.i386.rpm #安装时显示安装过程
rpm -ivh --noplacepkgs zsh-4.0.7-1.i386.rpm #软件已被安装,强行再次安装
rpm -ivh --nodeps mysql-4.1.7-4.RHEL4.1.i386.rpm #解决相互领事问题
2、升级rpm包:
-U 表示进行升级操作(软件的升级安装分为两步:一是卸载旧版本软件;二是安装新版本软件。 为了保留用户对原软件的配置,软件的配置文件在升级过程中会保留)
-F 表示只升级系统中存在的软件 (这个参数可以先检查系统中是否已经有了旧的版本,如果有就 执行升级操作,如果没有,就跳过这个rpm包,继续处理下一个rpm包。)
例:
rpm -Uvh zsh-4.0.7-1.i386.rpm #要用 zsh-4.0.7-1.i386.rpm升级旧版本的 zsh软件
rpm -Fvh *.rpm #批量升级系统中的软件可以使用的命令
3、降级rpm包:
--oldpackage 忽略错误信息,直接进行降级操作
例:rpm -Uvh --oldpackage zsh-4.0.7-1.i386.rpm #对 zsh进行降级操作
4、卸载rpm包:
-e 表示进行卸载操作
--nodeps 表示忽略检查依赖关系
例:rpm -e zsh (注意这里的软件名是软件的名称,不包括软件的版本号)
rpm -e --nodeps httpd
5、查询rpm包
-q 表示进行查询操作
-i 表示显示软件包的概要信息
-l 表示显示软件包中的文件列表
-a 表示查询所有已安装的rpm包
-f 表示根据文件进行相关的查询
例:
rpm -q gzip 查询系统中是否已经安装了gzip这个软件包
rpm -qi gzip 查询gzip包的概要信息
rpm -ql gzip 查询gzip这个rpm包里都有那些文件,以及列出这些软件
rpm -qa | grep "zip" 查询系统中所有的安装包中是否包含有zip这个软件包
rpm -qf /etc/ntp.conf 查询/etc/ntp.conf这个文件属于那个rpm包
6、校验rpm包
-K 表示检查软件包的完整性
--nosignature 表示不验证软件包的签名
例:
rpm -K --nosignature zsh-4.0.7-1.i386.rpm 校验 zsh-4.0.7-1.i386.rpm文件包,但不校验签名
Update 2006.12.20
安装srpm软件包:
扩展名为.src.rpm的软件包,是源程序rpm包(srpm),这种形式的软件包其实就是包含了软件的源代码,安装时需要进行编译才能完成安装。但它与直接使用源代码发布的软件包最大的区别在于,安装src.rpm时,系统会根据当前的体系结构和操作系统的类型来产生相应的二进制rpm安装包,然后再安装生成的rpm软件包,既保留源代码发布的软件包能适宜与多种硬件和操作系统平台的优点,又能继承rpm安装包的方便性。
安装方法:
1、生成二进制rpm安装包
rpmbuild --rebuild 文件名
--rebuild 表示将srpm软件包编译并在/usr/src/RedHat/RPMS/I386目录下生成二进制rpm安装包
例:rpmbuild --rebuild dvd + rw -tools-5.21.4.10.8-6.src.rpm
2、安装rpm安装包
进入到 /usr/src/RedHat/RPMS/I386目录下,可以发现rpmbuild已经生成了rpm安装包,直接使用 rpm命令就可以安装,命令如下:
rpm -ivh dvd + rw -tools-5.21.4.10.8-6.src.rpm
安装源代码发布软件包:
使用源代码安装软件,能按照用户的需要选择用户制定的安装方式进行安装,而不是仅仅依靠那些在安装包中的预置的参数选择进行安装,为用户安装软件带来了很大的灵活性。同时,目前还有许多软件仍然只使用源代码发布,所以掌握源代码发布软件包的安装方法就相当的重要。
安装步骤:
1、解包解压缩
2、配置、编译、和安装软件
具体步骤:
1、解包解压缩:
tar包:tar xvf filename.tar #这种安装包直接使用命令tar打包而成
tar.gz包:tar zxvf filename.tar.gz #这种安装包使用tar命令打包加上gzip命令压缩而成,需要 保证系统中安装了gzip软件
tar.Z包:tar Zxvf filename.tar.Z #这种安装包使用tar命令打包加上compress命令压缩而成, 需要保证系统安装了ncompress软件
tar.bz2包:tar jxvf filename.tar.bz2 #这种安装包使用tar命令打包加上bzip2命令压缩而成,需 要保证系统中安装了bzip2软件
2、配置、编译、安装软件
在配置、编译、安装之前,进入到软件包解压后的目录,阅读软件的相关说明文件,如 Readme或者Install,了解安装的需求,配置参数以及注意事项等。
配置: . /configure
如果要安装到指定的目录,可以用“ --prefix ”参数
. /configure --prefix = /usr/local/freeradius
其实源程序目录中的configure命令是一个可执行脚本,,首先会检查当前系统是否有符 合软件编译安装的相关环境(如是否有GNU C/C++编译器等),然后根据它从系统中 读出各种所需的属性在当前目录生成Makefile文件供编译安装使用。
编译:
Make是Unix和Linux系统下最常用的二进制程序和函数编译工具。Make通过读取当前目录下文件Makefile的内容来自动完成编译工作。Makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系,一般是由configure脚本来生成。对于一些小软件,也可能不需要运行configure脚本,软件已经自带了Makefile文件。
make
安装:make install
清理临时文件:make clean
卸载源代码发布软件:
源代码发布软件会将文件分散安装在系统的多个目录中,往往很难删除。有些软件包的源代码在编译安装后可以在源程序目录中运行“ make uminstall”命令来进行卸载,如果不提供此功能,那么就得手动卸载。所以在安装软件时,如果能使用configure脚本的“--prefix”参数来指定安装目录名时,卸载软件可直接使用“rm -rf”f直接删除就成。不过,最好参考软件的卸载部分的帮助信息。