软件包管理之源码编译安装

编译步骤:

1.#cd SOURCE_CODE

2../configure

作用:

检测编译环境

提供给用户编译配置(通过脚本选项)

--help 帮助信息

--prefix=/usr/local/name 安装路径

二进制

/usr/local/name/bin

/usr/local/name/libexec不允许自动执行,只能被其他程序调用执行

配置文件

/usr/local/name/conf

库文件

/usr/local/name/lib

帮助文档

/usr/local/name/share/man

3.make

默认使用gcc编译器

make依赖于makefile来编译源码

configure脚本 + Makefile.in = makefile

autoconf生成configure脚本

automake生成Makefile.in

4.make install

下面我们以编译安装httpd-2.4.6.tar.bz2为例:

1.解压展开httpd-2.4.6.tar.bz2源码包:

[[email protected] ~]# ls
Documents  Music     Public     Videos           httpd-2.4.6.tar.bz2  install.log.syslog 
Desktop  Downloads  Pictures  Templates  anaconda-ks.cfg  install.log          mkscript
[[email protected] ~]# tar -xf httpd-2.4.6.tar.bz2 #解压展开源码包到本目录下
[[email protected] ~]# ls 
Documents  Music     Public     Videos           httpd-2.4.6          install.log         mkscript     Desktop  Downloads  Pictures  Templates  anaconda-ks.cfg  httpd-2.4.6.tar.bz2  install.log.syslog

2.执行./configure

[[email protected] ~]# cd httpd-2.4.6 #切换到源码所在目录
[[email protected] httpd-2.4.6]# ls
ABOUT_APACHE     CHANGES         Makefile.in    README.platforms  apache_probes.d  configure.in  include       srclib
Apache-apr2.dsw  INSTALL         Makefile.win   ROADMAP           build            docs          libhttpd.dsp  support
Apache.dsw       InstallBin.dsp  NOTICE         VERSIONING        buildconf        emacs-style   modules       test
BuildAll.dsp     LAYOUT          NWGNUmakefile  acinclude.m4      config.layout    httpd.dsp     os
BuildBin.dsp     LICENSE         README         ap.d              configure        httpd.spec    server
[[email protected] httpd-2.4.6]# ./configure --prefix=/usr/local/apache    #执行configure脚本
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
configure: 
configure: Configuring Apache Portable Runtime library...
configure: 
checking for APR... no
configure: error: APR not found.  Please read the documentation.
#很不幸运,缺少apr相关包,下面编译安装apr包

[[email protected] ~]# tar -xf apr-1.4.6.tar.bz2 
[[email protected] ~]# cd apr-1.4.6
[[email protected] apr-1.4.6]# ./configure --prefix=/usr/local/apr    #执行configure脚本,指定安装路径
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring APR library
Platform: x86_64-unknown-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.4.6
checking for chosen layout... apr
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
.........

configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/apr.h
config.status: creating build/apr_rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
rm: cannot remove `libtoolT‘: No such file or directory
config.status: executing default commands

[[email protected] apr-1.4.6]# make    #执行make
make[1]: Entering directory `/root/apr-1.4.6‘
/bin/sh /root/apr-1.4.6/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE   -I./include -I/root/apr-1.4.6/include/arch/unix -I./include/arch/unix -I/root/apr-1.4.6/include/arch/unix -I/root/apr-1.4.6/include
.............

sed -e ‘s,^\(apr_build.*=\).*$,\1/usr/local/apr/build-1,‘ -e ‘s,^\(top_build.*=\).*$,\1/usr/local/apr/build-1,‘ < build/apr_rules.mk > build/apr_rules.out
make[1]: Leaving directory `/root/apr-1.4.6‘

[[email protected] apr-1.4.6]# make install    #执行make install
make[1]: Entering directory `/root/apr-1.4.6‘
make[1]: Nothing to be done for `local-all‘.
make[1]: Leaving directory `/root/apr-1.4.6‘
/root/apr-1.4.6/build/mkdir.sh /usr/local/apr/lib /usr/local/apr/bin /usr/local/apr/build-1 		     /usr/local/apr/lib/pkgconfig /usr/local/apr/include/apr-1
mkdir /usr/local/apr
mkdir /usr/local/apr/lib
mkdir /usr/local/apr/bin
mkdir /usr/local/apr/build-1
mkdir /usr/local/apr/lib/pkgconfig
........

	    /usr/bin/install -c -m 644 /root/apr-1.4.6/build/${f} /usr/local/apr/build-1; 	done
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config

[[email protected] apr-1.4.6]# ls /usr/local/apr/    #的确生成了相关文件
bin  build-1  include  lib

#上述相同方式编译安装apr-util
[[email protected] ~]# tar -xf apr-util-1.4.1.tar.bz2 
[[email protected] ~]# cd apr-util-1.4.1
[[email protected] apr-util-1.4.1]# ./configure 
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
APR-util Version: 1.4.1
checking for chosen layout... apr-util
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
Applying apr-util hints file rules for x86_64-unknown-linux-gnu
checking for APR... no
configure: error: APR could not be located. Please use the --with-apr option.
#与上面不同的是,需要使用--with-apr=/usr/local/apr选项

[[email protected] apr-util-1.4.1]# ./configure --with-apr=/usr/local/apr/ --prefix=/usr/local/apr-util    #--with-apr指定apr的安装路径
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
.....

config.status: creating include/apu_want.h
config.status: creating test/Makefile
config.status: creating include/private/apu_config.h
config.status: executing default commands

[[email protected] apr-util-1.4.1]#make
......
......

[[email protected] apr-util-1.4.1]#make install
.....
.....

[[email protected] apr-util-1.4.1]# ls /usr/local/apr-util/    #生成相关文件
bin  include  lib
#重新执行httpd的configure脚本:
[[email protected] httpd-2.4.6]# ./configure --prefix=/usr/local/apache
checking for chosen layout... Apache
.........
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from
#XXOO,继续编译安装pcre包
#步骤同上./configure,make,make install
[[email protected] httpd-2.4.6]# ./configure --with-apr-util=/usr/local/apr-util/ --prefix=/usr/local/apache    ##--with-apr-util安装路径##
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
........
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
[[email protected] httpd-2.4.6]#make    ##make##
......
make[2]: Leaving directory `/root/httpd-2.4.6/modules‘
make[2]: Entering directory `/root/httpd-2.4.6/support‘
make[2]: Leaving directory `/root/httpd-2.4.6/support‘
make[1]: Leaving directory `/root/httpd-2.4.6‘
[[email protected] httpd-2.4.6]#make install    ##make install##
.......
mkdir /usr/local/apache/man
mkdir /usr/local/apache/man/man1
mkdir /usr/local/apache/man/man8
mkdir /usr/local/apache/manual
make[1]: Leaving directory `/root/httpd-2.4.6‘
[[email protected] httpd-2.4.6]# ls /usr/local/apache/    ##安装后生成的文件##
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
1.将/usr/local/apache/bin加入PATH:
[[email protected] apache]# vim /etc/profile.d/apache.sh    #编辑配置文件,生成环境变量,永久生效
    export PATH=/usr/local/apache/bin:$PATH
[[email protected] apache]# . /etc/profile.d/apache.sh    #source配置文件
[[email protected] apache]# echo $PATH    #查看PATH环境变量
/usr/local/apache/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] apache]# apachectl start    #启动服务
[[email protected] apache]# hash    #查看,确实是该路径下的apachectl命令
                           #在/usr/sbin/apachectl,也有该命令
hitscommand
   1/usr/local/apache/bin/apachectl
   
[[email protected] apache]# ifconfig | grep "inet addr" | cut -d: -f2 | cut -d‘ ‘ -f 1 | grep -v "127.0.0.1"    ##获取本机ip地址
192.168.155.3

浏览器浏览该ip地址:

2.如果源码编译安装的软件包生成了lib,则需要将lib所在路径加入到

vim /etc/ld.so/conf.d/apache.conf
    写入:/usr/local/apache/lib
# ldconfig -v: 重新搜索当前系统上所有库文件搜索路径下的库文件,并生成缓存/etc/ld.so.cache

3.配置/etc/man.conf:

 vim /etc/man.conf
        写入:PATH  /usr/local/apache/man

4.头文件路径:

[[email protected] apache]# ln -s /usr/local/apache/include/ /usr/include/apache#符号链接至/usr/include
[[email protected] apache]# ls -l /usr/include/apache        
lrwxrwxrwx. 1 root root 26 May 23 23:38 /usr/include/apache -> /usr/local/apache/include/


软件包管理之源码编译安装,布布扣,bubuko.com

时间: 05-21

软件包管理之源码编译安装的相关文章

Linux软件包管理04-压缩归档及源码编译安装

一.压缩.解压缩命令 1.压缩格式:gz, bz2, xz, zip, Z 2.压缩算法:算法不同,压缩比也会不同: 3.原始的压缩命令:compress: FILENAME.Z 解压缩:uncompress 4.压缩成.gz格式的文件(仅压缩文件) a)gzip /PATH/TO/SOMEFILE:压缩完成后会删除原文件,如:gzip /tmp/file* -d:解压缩,相当于gunzip命令: -#:指定压缩比,范围是1-9,默认是6: b)gunzip: 解压缩: gunzip /PATH

Linux软件包管理之源码安装

Linux软件包管理之源码安装 源码包的编译用到了linux系统里的编译器,常见的源码包一般都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言.Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件.所以如果你的机器上没有安装gcc就没有办法去编译源码.你可以使用 yum install -y gcc 来完成安装. 3.1 源码包安装的步骤 1.拿到源代码,并解压 #tar xf package-version.tar.{gz|bz2|xz} 注意:展开

yum方式软件管理及进阶源码编译安装

1. yum简介2. yum组成结构3. yum配置使用4. yum命令详解5. yum源变量6. yum仓库创建7.进阶源码编译安装 1. yum简介YUM: Yellowdog Updater Modifed, 是由Duke University团队修改Yellow Dog Linux的Yellow Dog Updater开发而来的,是一个基于RPM包管理器的字符前端软件管理器(依赖于RPM包).能够从指定的服务器自动下载RPM包并且安装,可以处理RPM包的依赖关系,并且一次安装所有依赖的软

Linux程序包管理之yum仓库、源码编译安装

CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础软件包,在这个基础环境上我们可以搭建任何使用PHP/Perl/Python等语言的动态网站,如商务网站.博客.论坛和开源Web应用程序软件等,它是互联网上被广泛使用的Web网站架构之一. 部署方式 从网站规模大小(访问流量.注册用户等)角度来看,LNMP架构可以使用单机部署方式和集群部署方式.单机部

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

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

LAMP纯源码编译安装日志

一.LAMP构架的安装与经验技巧(源码安装好处.是便于管理,可以选定参数,可以使用新版本) 相关软件列表: # ls /soft/ | grep -E "*.gz|*.zip|*.xz|*.bz2"    apr-1.4.5.tar.gz    apr-util-1.3.12.tar.gz    autoconf-2.61.tar.gz    freetype-2.3.12.tar.gz    httpd-2.4.18.tar.bz2    jpegsrc.v6b.tar.gz    

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的

yum源码编译安装http

继上次linux程序包管理(2)之yum的配置及使用,大家都很疑惑不是有yum就行了吗干嘛还要学习源码安装,听说源码安装很费事也很麻烦,是的 yum是用起来简单方便,但是yum是直接写在镜像里面的,所以一些安装包的版本就有点低了.而且有些特性是编译选定的,如果编译未选定此特性,将无法使用:rpm包的版本会落后于源码包,甚至落后很多.俗话说有利必有一弊,对于一些安装包已经更新换代了,大家都在接受新事物你还在原地不动,这对于it农民工来说不合适吧,所以源码安装就解决了这个问题,两者的结合三字棒棒哒.