首页 百科知识 源码软件包的安装

源码软件包的安装

时间:2022-10-18 百科知识 版权反馈
【摘要】:和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。解压缩源代码文件完毕后,进入解包的目录。指定可执行支持文件的安装位置。其告知configure源码的位置。

3.1.3 源码软件包的安装

和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外,仍然有一些软件程序只能从源代码处进行安装。

现在有很多地方都提供源代码包,到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件,如Sendmail,可以从商业网站处下载源代码软件包(如http://www.sendmail.org)。一般的软件包,可从开发者的Web站点下载。下面将介绍安装方法:

(1)解压数据包

源代码软件通常以.tar.gz做为扩展名,也有tar.Z、tar.bz2或.tgz为扩展名的。不同扩展名解压缩命令也不相同。命令使用方法请参考本章“2.3.4节”中的“tar命令”。

(2)编译软件

解压缩源代码文件完毕后,进入解包的目录。安装前请务必要阅读Readme文件和Install文件。尽管许多源代码文件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的区别。例如,有些软件包含一个可以安装的安装脚本程序(.sh)。在安装前阅读这些说明文件,提高安装成功率和节约时间。

软件时要以root用户进行操作。实现这一点通常有两种方式:以root用户登录,或者输入“su”,此时系统会提示输入root用户的密码。输入root用户的密码,就将一直拥有root用户的权限。

(3)源码安装举例

通常的安装方法是从安装包的目录执行以下命令,步骤以下所示:

①# gunzip soft1.tar.gz

②# cd soft1

③#./configure

④# make

⑤# make install

安装完毕后,可以删除安装时产生的临时文件,如下所示:

#make clean

如果需要卸载软件,如下所示:

#make uninstall

注意:有些软件包的源代码编译安装后可以用make uninstall命令卸载。如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,应该在编译前进行配置。

(4) configure的命令选项

configure脚本有大量的命令行选项。对不同的软件包来说,这些选项可能是变化的,但是许多基本的选项是相同的。带上“--help”选项执行configure脚本可以看到可用的所有选项。尽管许多选项是很少用到的,但是为了特殊的需求而配置一个软件包时,可能就非常需要了。

不指定“prefix”选项,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/ lib,配置文件默认放在/usr/local/etc。其他的资源文件放在/usr/local/share。如果要卸载这个程序,只要在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall)即可,到上述目录里面把相关的文件逐个手工删除。

下面是每一个选项简略说明:

●--cache-file=FILE

为了加速随后进行的配置,测试的结果会存储在一个cache file里。

●--help

输出帮助信息。即使是有经验的用户也偶尔需要使用使用--help选项。

●--no-create

主要函数会制作输出文件。此选项阻止configure生成这个文件。

●--quiet

●--silent

当configure进行测试时,会输出简要的信息来告诉用户正在作什么。这样作是因为配置可能会比较慢,没有这种输出的话用户将会被扔在一旁疑惑正在发生什么。

●--version

打印用来产生configure脚本的Autoconf的版本号。

●--prefix=PEWFIX

--prefix是最常用的选项。制作出的Makefile会查看随此选项传递的参数,指定包的安装目录。举一个例子,安装mplayer,使用#./configure--prefix=/opt/gnu/share选项后,软件将被安装到“/opt/gnu/share”目录下。

●--exec-prefix=EPREFIX

与--prefix选项类似,但是用来设置结构倚赖的文件的安装位置。

●--bindir=DIR

指定二进制文件的安装位置。这里的二进制文件定义为可以被用户直接执行的程序。

●--sbindir=DIR

指定超级二进制文件的安装位置。就是一般只能由超级用户执行的程序。

●--libexecdir=DIR

指定可执行支持文件的安装位置。与二进制文件相反,这些文件从来不直接由用户执行,但是可以被上面提到的二进制文件所执行。

●--datadir=DIR

指定通用数据文件的安装位置。

●--sysconfdir=DIR

指定在单个机器上使用的只读数据的安装位置。

●--sharedstatedir=DIR

指定可以在多个机器上共享的可写数据的安装位置。

●--localstatedir=DIR

指定只能单机使用的可写数据的安装位置。

●--libdir=DIR

指定库文件的安装位置。

●--includedir=DIR

指定C头文件的安装位置。其他语言如C++的头文件也可以使用此选项。

●--oldincludedir=DIR

指定为除GCC外编译器安装的C头文件的安装位置。

●--infodir=DIR

指定Info格式文档的安装位置。Info是被GNU工程所使用的文档格式。

●--mandir=DIR

指定手册页的安装位置。

●--srcdir=DIR

此选项对安装没有作用。其告知configure源码的位置。一般来说不用指定此选项,因为configure脚本一般和源码文件在同一个目录下。

●--program-prefix=PREFIX

指定将被加到所安装程序的名字上的前缀。例如,使用--program-prefix=g来配置一个名为mp的程序将会使安装的程序被命名为gmp。

●--program-suffix=SUFFIX

指定将被加到所安装程序的名字上的后缀。

●--program-transform-name=PROGRAM

此处的PROGRAM是一个sed脚本。

●--build=BUILD

指定软件包安装的系统平台。如果没有指定,默认值将是--host选项的值。

●--host=HOST

指定软件运行的系统平台。如果没有指定,将会运行config.guess来检测。

●--target=GARGET

指定软件面向(target to)的系统平台。这主要在程序语言工具如编译器和汇编器上下文中起作用。如果没有指定,默认将使用--host选项的值。

●--disable-FEATURE

一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置。如果默认是提供这些特性,可以使用--disable-FEATURE来禁用它,这里FEATURE是特性的名字。例如:#./configure--disable-gui

●-enable-FEATURE[=ARG]

相反的,一些软件包可能提供了一些默认被禁止的特性,可以使用--enable-FEATURE来起用它。例如:#./configure--enable-buffers=128

--enable-FEATURE=no与上面提到的--disable-FEATURE是同义的。

●--with-PACKAGE[=ARG]

在自由软件社区里,有使用已有软件包和库的优秀传统。当用户配置一个源码树时,可以提供其他已经安装的软件包的信息。例如,依赖于Tcl和Tk的BLT器件工具包。要配置BLT,可能需要给configure提供一些关于把Tcl和Tk装的何处的信息等,如下所示:

#./configure--with-tcl=/usr/local--with-tk=/usr/local

--with-PACKAGE=no与下面将提到的--without-PACKAGE是同义的。

●--without-PACKAGE

让软件包与系统已有的软件包交互。例如,让新编译器使用GNU ld。通过使用这个选项可以做到这一点。例如:#./configure--without-gnu-ld。

●--x-includes=DIR

此选项是--with-PACKAGE选项的一个特例。在Autoconf最初被开发出来时,流行使用configure来作为Imake的一个变通方法来制作运行于X的软件。--x-includes选项提供了向configure脚本指明包含X11头文件的目录的方法。

●--x-libraries=DIR

提供了向configure脚本指明包含X11库的目录的方法。

注意:在源码目录中运行configure是不必要的,同时也是不好的。因为一个由configure产生的良好的Makefile可以构筑源码属于另一棵树的软件包。在一个独立于源码的树中构筑派生的文件的好处是有很明显的派生的文件,建议使用三棵树目录:一棵源码树(source tree),一棵构筑树(build tree),一棵安装树(install tree)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈