make编译安装_学习笔记
2017-11-30 23:09
204 查看
时间:2017.11.30
作者:李强
参考:man,info,magedu讲义,神奇的internet
声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好
操作环境:CentOS Linux release 7.4.1708
我们我们编译的对象是什么是一些源码
c,c++
java
perl
python
等的源码
源码如何去获取。
开源项目可能有哪些人开发,
项目基金会:FSF,ASF等,他们会有自己的官网供下组
项目组:几个人等
小程序:个人
因为不会为一个程序单独建一个站点供大家下载所以,针对这些开源项目的源码,会集中放置在某些网站中去,
当然这些网站是由大公司维护的,比如google等,
https://code.google.com/(这个被墙了)
https://sourceforge.net/
https://github.com/
通过gcc可以编译c但是一个软件可能由几万个c文件来组成而且不同文件的编译顺序也是有甘系的
所以就有了GNU/make 项目管理工具来编译,这个工具可有yum grouplist development tools 包组提供这个功能。
通过我们获取源码为package-version.tar.[gz|bz2|xz]等格式的文件,里面有
configure
makefile.in
程序员通过aufoconf:工具来生成configure脚本。configure 通常会定义安装的目录和提供的特性或功能等等。结果就是根据make.in 来生成makefile文件
automake:生成make.in 配合configure脚本来生成makefile文件
然后通过make命令来编译软件
然后通过make install 来完成文件的复制,把各个文件复制到软件定义的指定目录。
重要的过程就是在configure的地方你要知道你需要软件的哪些特性等要自定义软件。
编译安装说白了就是自定义软件安装。什么安装目录啊,什么功能特性啊,比如我就不要ssl啊,我就放一个html网页自己玩,结果我要把ngix,apache所有的功能都装上没必要。我就要支持ntfs啊,自定义版本,不使用发行版本。发行版本的用户软件或者操作系统软件。
所以我们编译的步骤就是
1、准备编译环境
安装make,gcc等工具通过使用yum groups install "development tools" 获取。
不通软件再通过.configure 检查编译环境的时候也会需要安装一些deps 组件,这里可以提前安装完毕,一般都是那些不会改变,当然也可以执行configure去检查编译环境缺什么补什么,一般都需要缺的后面加上-devl
2、获取编译软件,定义编译工作路径
mkdir workstation ,在哪里干活。
然后wget 获取相关的源码,
cd workstation ,进入目录,tar -xf package-version.tar.gz|bz2|xz 解压到当前路径
然后ls package-version 检查configure和make.in 文件是否存在
查看README和INSTALL文件,了解如何编译这个软件。
然后.configure 运行脚本,检查编译环境同时定义相关安装选项和功能
configure 脚本的通用功能:
1)、定义安装路径:
--prefix=/usr/local/package-name
--sysconfdir=/etc/package-name
2)、指启用或禁用相关特性
--enable-feature:例如--enable-so
--disable-feature:例如--disable-socket
3)、指定所依赖功能,
作者:李强
参考:man,info,magedu讲义,神奇的internet
声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好
操作环境:CentOS Linux release 7.4.1708
我们我们编译的对象是什么是一些源码
c,c++
java
perl
python
等的源码
源码如何去获取。
开源项目可能有哪些人开发,
项目基金会:FSF,ASF等,他们会有自己的官网供下组
项目组:几个人等
小程序:个人
因为不会为一个程序单独建一个站点供大家下载所以,针对这些开源项目的源码,会集中放置在某些网站中去,
当然这些网站是由大公司维护的,比如google等,
https://code.google.com/(这个被墙了)
https://sourceforge.net/
https://github.com/
通过gcc可以编译c但是一个软件可能由几万个c文件来组成而且不同文件的编译顺序也是有甘系的
所以就有了GNU/make 项目管理工具来编译,这个工具可有yum grouplist development tools 包组提供这个功能。
通过我们获取源码为package-version.tar.[gz|bz2|xz]等格式的文件,里面有
configure
makefile.in
程序员通过aufoconf:工具来生成configure脚本。configure 通常会定义安装的目录和提供的特性或功能等等。结果就是根据make.in 来生成makefile文件
automake:生成make.in 配合configure脚本来生成makefile文件
然后通过make命令来编译软件
然后通过make install 来完成文件的复制,把各个文件复制到软件定义的指定目录。
重要的过程就是在configure的地方你要知道你需要软件的哪些特性等要自定义软件。
编译安装说白了就是自定义软件安装。什么安装目录啊,什么功能特性啊,比如我就不要ssl啊,我就放一个html网页自己玩,结果我要把ngix,apache所有的功能都装上没必要。我就要支持ntfs啊,自定义版本,不使用发行版本。发行版本的用户软件或者操作系统软件。
所以我们编译的步骤就是
1、准备编译环境
安装make,gcc等工具通过使用yum groups install "development tools" 获取。
不通软件再通过.configure 检查编译环境的时候也会需要安装一些deps 组件,这里可以提前安装完毕,一般都是那些不会改变,当然也可以执行configure去检查编译环境缺什么补什么,一般都需要缺的后面加上-devl
2、获取编译软件,定义编译工作路径
mkdir workstation ,在哪里干活。
然后wget 获取相关的源码,
cd workstation ,进入目录,tar -xf package-version.tar.gz|bz2|xz 解压到当前路径
然后ls package-version 检查configure和make.in 文件是否存在
查看README和INSTALL文件,了解如何编译这个软件。
然后.configure 运行脚本,检查编译环境同时定义相关安装选项和功能
configure 脚本的通用功能:
1)、定义安装路径:
--prefix=/usr/local/package-name
--sysconfdir=/etc/package-name
2)、指启用或禁用相关特性
--enable-feature:例如--enable-so
--disable-feature:例如--disable-socket
3)、指定所依赖功能,
不同的软件的configure可能后面跟的并不一样,因为他们的特性 不会一样,所以可以查看源码目录里的README文件,或者configure 后面加--help会有帮助。 3、编译安装完成后,我们需要修改一些配置, 头文件 ln -sv /usr/local/package-name/include /usr/include/package-name 库文件 vi /etc/ld.so/config.d/package-name.conf /usr/local/package-name/modules 让系统去重新加载库 ldconfig 二进制文件 vi /etc/profile.d/package-name.sh PATH=/usr/local/package-name/man/bin|sbin;$PATH 重新生成PATH变量 . /etc/profile.d/package-name.sh 帮助文件 vi /etc/man_db.conf MANDB_MAP /usr/local/package-name/man 注意的是: 因为编译的文件,如果没有uninstall的脚本是不能自动卸载的,就像windows下你把目录清空了,但是它的注册表信息还在,在linux下也一样,你的一些配置文件也还在成为了垃圾文件。因此我们最好只指定--prefix=/usr/local/package-name --sysconfdir=/etc/package-name,一个是自己的软件的安装路径,一个配置文件的路径,其他的都放置在你的--prefix指定的安装目录下,便于维护。最好是能在安装目录下记录下各项操作,这样方便以后卸载。或者自己创建一个install和unstall的自动化编译和卸载脚本放在安装目录下。 因为httpd服务需要使用80端口,如果你的端口被占用会导致你的apachectl start 无法启动 下面我们来编译apache软件。 1、准备编译环境 2、下在安装源码 3、三步骤 4、修改相关配置文件。试运行。
相关文章推荐
- VTK学习笔记1—VTK安装及源码编译(Winxp + VS2010 + CMake2.8.6 + VTK5.8)
- 【XEN学习笔记】XEN-3.4.2在Ubuntu 8.04上的编译安装
- 马哥学习笔记八——LAMP编译安装之PHP及xcache
- 马哥学习笔记六——编译安装LAMP只httpd
- SASS学习笔记1 —— 安装、编译和调试
- Thrift 学习笔记2——Windows环境下Thrift的安装、编译以及测试
- (JAVA SE 学习笔记)Java.SE.第001讲.Java.SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行
- 马哥linux学习笔记:源码编译安装
- nginx学习笔记之一:nginx介绍及其编译安装
- 树莓派学习笔记——交叉编译练习之SQLite3安装
- centos 学习笔记——源码编译安装apache
- Amlogic open linux 编译环境安装 ---学习笔记
- MySQL学习笔记之二:源码编译安装和二进制格式安装MariaDB
- Linux学习笔记 第十课 rpm、yum、编译安装
- 【学习笔记】编译Linux内核(中)--安装内核时易出现的问题和解决方案
- 大数据学习笔记——hadoop1.2.1 eclipse_plugin编译、安装及使用
- Thrift 学习笔记1——Ubuntu环境下Thrift的安装、编译以及测试 - 张进の专栏 - 博客频道 - CSDN.NET
- VTK+cmake+vs2008安装和编译,学习笔记
- 学习笔记_安装交叉编译工具链(For S3C2440)
- 马哥学习笔记七——LAMP编译安装之MYSQL