学习日志---linuxの 源码编译使用及实例运行

程序包管理之编译安装:

源码:c, c++

perl源码:

python源码:

应用程序:项目组

软件基金会:FSF,ASF

项目组:主导者,contributor

小项目:一个人维护

商业公司支持:开源版/企业版

SourceForge.net

github.com

code.google.com

源程序:

项目工程:把代码分散于多个源代码文件

GNU/make

autoconf: configure脚本

检查编译环境是否编译需求,并定义当前程序编译时启用哪个特性或功能,以及安装路径的定义等等;

结果:会根据Makefile.in文件生成makefile文件

automake: 用户生成Makefile.in文件,一般是源码人提供了

用于结合configure脚本生成makefile文件

makefile文件是make命令的配置文件

编译安装的步骤:

1、拿到源代码,并解压:

# tar xf package-version.tar.{gz|bz2|xz}

注意:展开后的目录名通常为package-version

2、切换至源码目录中

# cd package-version

3、执行configure脚本,检查编译环境

# ./configure

4、编译

# make

5、安装

# make install

configure脚本的通用功能:

我们需要定义的配置:

1、指定安装路径:

--prefix=/usr/local/package_name 指定统一安装路径,其下放配置文件等

--sysconfdir=/etc/package_name 配置文件路径

2、指定启用/禁用的特性:

--enable-feature: 例如--enable-fpm 这个表示启用fpm功能

--disable-feature: 例如 --disable-socket 禁用socket功能

3、指定所依赖功能、程序或文件

--with-function:启用某功能

--without-function:禁用某功能

不同的程序,其configure脚本功能不同,要获取帮助:

./configure --help

因为有些命令不尽相同

程序在打包时,有的程序的rpm包依附在devel的子包里

例如安装nginx时,需要的pcre的库,但是已经安装了,因为有些该pcre的库是在devel包里面

练习:

1、编译安装nginx, 并启动之;

2、编译安装axel,并试用之;

这是一个linux上使用的下载工具,类似迅雷

axel -o /tmp -n 3 下载路径

3、编译安装httpd,并启动之;

新安装的软件有些配置和lib都在自己的目录下,如需内核识别,需如下配置:

二进制程序:

/usr/local/apache/bin

# vim /etc/profile.d/apache.sh

PATH=/usr/local/apache/bin:/usr/local/apache/sbin:$PATH

export PATH

头文件输出给系统:

# ln -sv /usr/local/apache/include /usr/include/httpd

库文件输出:

/etc/ld.so.conf.d 这个目录是内核找lib库的位置,因此如果要把其他的库加入需要在其下添加其他库路径

# vim /etc/ld.so.conf.d/httpd.conf

在这个新建http.conf文件,里面输入/usr/local/apache/lib,如下

[[email protected] ld.so.conf.d]# cat mysql-i386.conf

/usr/lib/mysql

让系统重新生成库文件路径缓存

# ldconfig   该缓存是存在/etc/ld.so.cache中

缓存的lib路径都存在这里,供内核动态使用

导出man文件:

# vim /etc/man.config

MANPATH /usr/local/apache/man

# 还有一种是使用man -M +路径

总结:源码编译安装

前提:准备好开发环境

编译过程:

./configure

make

make install

输出:

头文件

库文件

二进制程序

man文档

例子:

源码编译安装httpd-2.4.17.tar.gz

[[email protected] software]# tar -xf httpd-2.4.17.tar.gz

[[email protected] software]# ls

axel-2.0  axel-2.0.tar.bz2  httpd-2.4.17  httpd-2.4.17.tar.gz  nginx-1.8.0  nginx-1.8.0.tar.gz

[[email protected] software]# cd httpd-2.4.17

这里需要注意的是要预先编译安装apr和apr-util

在安装编译httpd时,需要在后面指明依赖程序的位置,如下

[[email protected] httpd-2.4.17]# ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

我这里安装的位置都在/usr/local/httpd下,因此启动也在这里面的bin目录下。

过程比较简单就不赘述了

时间: 2024-10-05 12:57:17

学习日志---linuxの 源码编译使用及实例运行的相关文章

linux源码编译安装php出现 cannot find -lltdl

原因: 在编辑php时添加的“–with-mcrypt”选项造成. 解决方法: 1.如果不需要mcrypt,那么编辑php时去掉该选项,然后再make.make install. 2.如果需要mcrypt,那么需要安装libltdl libltdl在libmcrypt软件包中就有,具体过程: #cd /software/libmcrypt-2.5.8/libltdl #./configure –enable-ltdl-install #make #make install 这个时候再回到php的

马哥linux学习笔记:源码编译安装

由于rpm包在作者制作封装的时候已经把程序的一些特性固定了,如果我们根据自己的需求,需要运用程序的一些没有普适性相关特性,就需要下载程序的源码手动编译安装了,这里只是简单的介绍一下C代码的程序包编译安装方法. 为了能更直观的看到源码编译安装的过程,我演示一下在centos7.2环境中编译安装httpd2.2: 首先,编译的前提是得有称手的工具及环境了,编译c源代码就需要用到开发工具,make,gcc了,环境就需要开发库跟头文件了,如果系统中没有这些,就需要yum安装了. 这里我运行yum gro

SUSE Linux源码编译安装MySQL 5.6

这篇文章主要介绍了SUSE Linux下源码编译方式安装MySQL 5.6过程分享,本文使用SUSE Linux Enterprise Server 10 SP3 (x86_64)系统,需要的朋友可以参考下.MySQL为开源数据库,因此可以基于源码实现安装.基于源码安装有更多的灵活性.也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整.本文

linux源码编译安装OpenCV

为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以类比安装.此文针对,有一点Linux常识(会使用终端)的读者. 源代码准备 如果不想在安装过程中,一步步的下载.编译.安装,可以先一次性下载完需要用到的源代码. X264: ftp://ftp.videolan.org/pub/videolan/x264/snapshots/ FFMPEG: htt

Linux 源码编译安装 MySQL 5.5.x

Linux 环境:CentOS 6.5 MySQL 版本:5.5.20,附下载地址:[点击下载] 1.安装cmake MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具. 因此,我们首先要在系统中源码编译安装cmake工具. 下载 cmake [[email protected] soft]# wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz 解压 [[email protec

Hadoop之Linux源码编译

Hadoop开篇,按惯例,先编译源码,导入到Eclipse,这样以后要了解那块,或者那块出问题了,直接找源码. hadoop2.4.1编译需要protoc2.5.0的支持,所以还要下载protoc.我下载的是:protobuf-2.5.0.tar.bz2 对protoc进行编译安装前先要装几个依赖包:gcc,gcc-c++,make 如果已经安装的可以忽略 yum install gcc yum install gcc-c++ yum install make yum install cmake

Linux源码编译安装程序

一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在linux下用man命令查看的命令的文档 二.linux下程序的存放目录 linux程序的存放目录大致有三个地方: /etc, /bin, /sbin, /lib  :系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上 /usr/bin,/usr/sbin,/usr/li

Linux源码编译安装和卸载

Linux下正常的编译安装/卸载 源码的安装一般由3个步骤组成: 配置(configure) 编译(make) 安装(make install). configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表. 其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,

OpenCV学习:OpenCV源码编译(vc9)

安装后的OpenCV程序下的build文件夹中,只找到了vc10.vc11和vc12三种编译版本的dll和lib文件,需要VS2010及以上的IDE版本,而没有我们常用的VS2008版本. 于是,需要的小伙伴们可以自己动手,丰衣足食! 1). 安装CMake cmake-2.8.8-win32-x86.exe (http://www.cmake.org/cmake/resources/software.html) 百度云盘:http://pan.baidu.com/s/1dEYbx77  密码: