前面所介绍的RPM软件包是指rpm包中已经带有可执行程序的软件包,安装后即可运行。现在许多网站除了提供这种软件包之外还提供源代码软件包,即SRPM软件包,其软件包名中带有src字样。用户可以根据自己的需要从相关的网站下载RPM或SRPM软件包。与RPM软件包安装方式相比,使用源码代码软件包(SRPM软件包)进行安装相对比较复杂,因为需要由用户自己编译源代码生成可执行文件。在Linux中,有些软件只能以SRPM软件包的形式提供,如Linux系统内核和某些应用程序源代码。使用源代码软件包安装软件是Linux系统下进行软件安装的重要手段,也是使用Linux系统的最主要的优势之一。对于专业用户而言使用源代码软件包安装软件,不仅能按照用户的需要选择安装方式进行安装,而且能够升入了解源代码学习到更多的知识。
下面简要介绍SRPM软件包的安装方法:
(1)将SRPM软件包导入系统
下载后,以超级用户身份执行“rpm -ivh PACKAGE_FILE”命令,将源代码软件包导入系统。如果是RPM包,则该命令执行后会将包内的可执行程序安装到Linux系统的某个bin或sbin目录下;如果是SRPM包,则在/usr/src/redhat/SOURCES目录下导入一个包含软件包名称的压缩文件,形如:package_name.tar.gz等。
(2)将压缩文件解压缩
源代码软件包导入后的压缩文件通常以.tar.gz作为扩展名,也有以tar.Z、tar.bz2或.tgz作为扩展名的。不同的扩展名表示压缩时所用的命令不同,当然解压缩的命令也不相同,用户既可以在命令行下解压缩也可以在图形方式下解压缩。
(3)编译源代码
当解压缩成功后,会建立1个目录,目录名一般就是软件包名。用cd命令进入到对应的目录中。在编译之前最好阅读Readme文件和install文件。尽管许多源代码软件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的信息。例如:安装软件包是否需要其他软件或程序库的支持;软件包中是否含有可以自动安装的脚本程序(.sh)等。在安装前阅读这些说明文件,有助于安装成功和节约时间。
如果目录中已经有Makefile文件,则用户只要执行make命令就可以完成安装;如果目录中没有Makefile文件,则一般有一个可执行的configure脚本文件,执行它会自动检查编译器及编译该软件的条件是否满足,如果检查通过,则生成Makefile文件。再执行make和make install命令即可完成源代码软件包的安装。否则,输出错误信息且运行终止。在执行configure脚本是时常见的错误、判断方法和解决措施是:
1)没有安装C或C++编译器
判断方法:执行命令gcc(C++则为g++),看是否提示找不到该命令。
解决措施:将RedHat Linux 9.0第一张安装光盘挂载(mount)到/mnt目录,然后进入/mnt/RedHat/RPMS目录,执行命令。
#rpm -ivh gcc*
安装的时候会出现依赖性关系,按照提示,安装所有依赖的软件即可。
2)没有安装make工具
判断方法:执行命令make,看是否提示找不到该命令。
解决措施:将RedHat Linux 9.0第一张光盘挂载(mount)到/mnt目录,然后进入/mnt/RedHat/RPMS目录,执行命令:
#rpm -ivh make*
3)没有安装make工具
判断方法:执行命令make,看是否提示找不到该命令。
解决措施:将RedHat Linux 9.0第二张光盘挂载(mount)到/mnt目录,然后进入/mnt/RedHat/RPMS目录,执行命令:
#rpm -ivh autoconf*
4)缺少某些链接库。
判断方法:在make时,提示缺少某些链接文件。
解决措施:从网络上下载并安装包含这些链接库文件的包。
这些错误是在安装Linux系统时没有全部安装或没有选中软件开发包造成的。除了采用命令方式解决这些问题外,如果用户已经安装了图形方式下的软件包管理工具,则也可以在图形方式添加这些软件包。
参考示例:
安装bluefish-0.11-1.fr.src.rpm 源代码软件包。Bluefish是Linux系统下所见即所得的HTML编辑器。安装具体方法如下:
[root@localhost root]#rpm -ivh bluefish-0.11-1.fr.src.rpm *导入源代码包
[root@localhost root]#cd /usr/src/redhat/SOURCES
[root@localhost SOURCES]#tar -jxvf bluefish-0.11.tar.bz2 *从tar包解压缩还原文件
[root@localhost SOURCES]#cd bluefish-0.11
[root@localhost bluefish-0.11]#./configure *执行configure文件,产生Makefile文件
[root@localhost bluefish-0.11]#make *执行make命令,编译源代码
[root@localhost bluefish-0.11]#make install *安装编译生成的可执行文件
[root@localhost bluefish-0.11]#make clean *删除安装时产生的临时文件
以上的解压缩和从tar包中还原文件操作,在图形界面下软件打包器也可以一步完成并且更方便、速度更快。如果是*.tar.gz压缩包,则使用tar -zxvf *.tar.gz解压缩,当然同样可以在图形界面下用软件打包器解压缩。
有些源代码软件包在编译安装后可以用make uninstall 命令卸载。如果不提供此功能,则该软件的卸载必须手动删除(删除源文件)。
本文出自 “人生在勤,不索何获” 博客,谢绝转载!