如何实现源码编译安装程序
2015-05-03 14:59
225 查看
一、问题:
发行商提供的rpm包不想用,别人提供的rpm包也不想用,那么只能自己编译源码进行安装程序。不是不想用,而是别人提供的不能满足最大优化,所以需要自己编译定制。
二、源码语言类型:
c,c++,perl,python等,最常见的为c
三、开源代码站点:
1、 http://sourceforge.net/ 2、 https://github.com/ 3、https://code.google.com/
四、源码要满足编译安装,开发者开发的源码必须完成如下2项工作:
1、 autoconf工具:生成configure脚本,configure脚本用途如下:
(1)、检查编译环境是否满足编译需求(gcc在不在,make命令有没有,以及依赖在不在等)。
(2)、定义当前程序编译时启用哪些特性或者功能。
(3)、安装路径的定义。
2、automake工具:生成Makefile.in文件
(1)、Makefile.in文件结合configure脚本,生成makefile文件。
(2)、makefile文件是make命令的配置文件。
五、编译者编译安装源码的步骤:
1、拿到源代码(即下载源程序),并解压。
#tar xf package-versin.tar.{gz|bz2|xz}
展开后的目录为package-versin
2、切换至源码目录中
#cd package-versin
3、执行configure脚本
# ./configure,详见[b]六[/b]
注意:看最后一行是否有error类似字样,如果无则成功。
4、编译,其实就是执行cc -c -pipe等:
# make
5、安装,其实就是copy文件,将编译好的文件copy到configure时指定的目录:
# make install
六、configure脚本的通用功能,我们需要定义的配置:
1、指定安装路径:(指定二进制程序、库文件、帮助文件、配置文件路径,一般配置文件要单独指定)
(1)、--prefix=/usr/local/package_name:指定”二进制程序、库文件、帮助文件“的安装路径
(2)、--sysconfdir或者--conf-path=/etc/package_name:指定”配置文件“的安装路径,
因有的软件不同,但不外乎--sysconfdir或者--conf-path两种。
注意1、--sysconfdir指的是配置文件目录,最后无需写配置文件名。
注意2、 --conf-path指的是配置文件路径,最后需写配置文件名。
2、指定启动/禁用的特性:
--enable-特性:如--enable-fpm
--disable-特性:如--disable-socket
3、指定所依赖功能、程序或文件:
--with-功能、程序或文件:启用依赖某功能
--without-功能、程序或文件:禁用依赖某功能
4、注意:不同的程序,其configure脚本功能略有不同,
要获取帮助./configure --help 或者查看 readme
七、在编译安装前,请确保在Installed Groups下已有,即已安装下面的两个组。
Server Platform Development Development tools
1、执行的如下命令,查看是否已安装某组: #yum grouplist
2、如未安装请执行: #yum -y groupinstall "Server Platform Development"
#yum -y groupinstall "Development tools"
发行商提供的rpm包不想用,别人提供的rpm包也不想用,那么只能自己编译源码进行安装程序。不是不想用,而是别人提供的不能满足最大优化,所以需要自己编译定制。
二、源码语言类型:
c,c++,perl,python等,最常见的为c
三、开源代码站点:
1、 http://sourceforge.net/ 2、 https://github.com/ 3、https://code.google.com/
四、源码要满足编译安装,开发者开发的源码必须完成如下2项工作:
1、 autoconf工具:生成configure脚本,configure脚本用途如下:
(1)、检查编译环境是否满足编译需求(gcc在不在,make命令有没有,以及依赖在不在等)。
(2)、定义当前程序编译时启用哪些特性或者功能。
(3)、安装路径的定义。
2、automake工具:生成Makefile.in文件
(1)、Makefile.in文件结合configure脚本,生成makefile文件。
(2)、makefile文件是make命令的配置文件。
五、编译者编译安装源码的步骤:
1、拿到源代码(即下载源程序),并解压。
#tar xf package-versin.tar.{gz|bz2|xz}
展开后的目录为package-versin
2、切换至源码目录中
#cd package-versin
3、执行configure脚本
# ./configure,详见[b]六[/b]
注意:看最后一行是否有error类似字样,如果无则成功。
4、编译,其实就是执行cc -c -pipe等:
# make
5、安装,其实就是copy文件,将编译好的文件copy到configure时指定的目录:
# make install
六、configure脚本的通用功能,我们需要定义的配置:
1、指定安装路径:(指定二进制程序、库文件、帮助文件、配置文件路径,一般配置文件要单独指定)
(1)、--prefix=/usr/local/package_name:指定”二进制程序、库文件、帮助文件“的安装路径
(2)、--sysconfdir或者--conf-path=/etc/package_name:指定”配置文件“的安装路径,
因有的软件不同,但不外乎--sysconfdir或者--conf-path两种。
注意1、--sysconfdir指的是配置文件目录,最后无需写配置文件名。
注意2、 --conf-path指的是配置文件路径,最后需写配置文件名。
2、指定启动/禁用的特性:
--enable-特性:如--enable-fpm
--disable-特性:如--disable-socket
3、指定所依赖功能、程序或文件:
--with-功能、程序或文件:启用依赖某功能
--without-功能、程序或文件:禁用依赖某功能
4、注意:不同的程序,其configure脚本功能略有不同,
要获取帮助./configure --help 或者查看 readme
七、在编译安装前,请确保在Installed Groups下已有,即已安装下面的两个组。
Server Platform Development Development tools
1、执行的如下命令,查看是否已安装某组: #yum grouplist
2、如未安装请执行: #yum -y groupinstall "Server Platform Development"
#yum -y groupinstall "Development tools"
相关文章推荐
- 如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库
- 如何编译安装源码包软件
- Linux操作系统下如何编译安装源码包软件
- 如何编译安装源码包软件
- 问题的提出:如何在Windows上通过终端程序实现Unix平台的前台编译?
- 如何编译安装源码包软件
- 软件包管理 之 如何编译安装源码包软件
- 如何编译安装源码包软件
- 如何编译安装源码包软件
- 简单实现WEB程序在线安装 (附源码)
- Linux操作系统下如何编译安装源码包软件
- 如何实现 Setup Factory 安装程序的背景音乐, Setup Factory 7.0
- vc2005编译出来的程序实现绿色版,即无须安装运行库
- 如何编译安装源码包软件
- Linux如何编译安装源码包软件
- Linux如何编译安装源码包软件
- Linux如何编译安装源码包软件
- Android 源码编译的系统apk如何安装到手机
- 如何编译安装源码包
- Linux如何编译安装源码包软件