关键词:
在linux下面安装一个源码包是最常用的,在日常的管理工作中,大部分软件都是通过源码安装的。
安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件。
如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。
源码包的编译用到了linux系统里的编译器,常见的源码包一般都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言。
Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件。所以如果你的机器上没有安装gcc就没有办法去编译源码。你可以使用 yum install -y gcc 来完成安装。
安装一个源码包,通常需要三个步骤:
1)./configure
在这一步可以定制功能,加上相应的选项即可,具体有什么选项可以通过 ./configure --help 命令来查看。在这一步会自动检测你的linux系统与相关的套件是否有编译该源码包时需要的库,因为一旦缺少某个库就不能完成编译。只有检测通过后才会生成一个Makefile文件。
2) make
使用这个命令会根据Makefile文件中预设的参数进行编译,这一步其实就是gcc在工作了。
3) make install
安装步骤,生成相关的软件存放目录和配置文件的过程。
上面介绍的3步并不是所有的源码包软件都一样的,以前也曾经遇到过,安装步骤并不是这样,也就是说源码包的安装并非具有一定的标准安装步骤。这就需要你拿到源码包解压后,然后进入到目录找相关的帮助文档,通常会以INSTALL或者README为文件名。
#vim INSTALL或者#vim README
所以,你一定要去看一下。下面会编译安装一个源码包来帮你更深刻的去理解如何安装源码包。
下载一个源码包
下载源码包一定要去官方站点去下载,不要在网上随便下载,那样很不安全。因为你下载到的源码包很有可能是被人修改过的。
[[email protected] src]# cd /usr/local/src/ [[email protected] src]#wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.2.27.tar.bz2
(地址不确定,到官网下载即可:http://www-eu.apache.org/dist/)
这里提供的下载地址为apache官方网站上提供的一个镜像,下载速度还可以。在下载之前,进入到了 “/usr/local/src” 目录,这是因为习惯把源码包都放到这个目录下,这样做的好处是,方便自己和其他管理员维护,所以建议,以后下载的源码包都统一放到这个目录下吧。
解压源码包
[[email protected] src]# tar jxvf httpd-2.2.27.tar.bz2
配置相关的选项,并生成Makefile
[[email protected] src]# cd httpd-2.2.27 [[email protected] httpd-2.2.27]# ./configure --help |less `configure‘ configures this package to adapt to many kinds of systems.Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print `checking ...‘ messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for `--cache-file=config.cache‘ -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or `..‘]
后面的内容省略掉了,使用 ./configure --help 命令查看可以使用的选项。
一般常用的有:
--prefix=PREFIX 这个选项的意思是定义软件包安装到哪里。
到这里,再提一个小小的建议,通常源码包都是安装在/usr/local/目录下的。比如,我们把apache安装在/usr/local/apache下,
那么这里就应该这样写 --prefix=/usr/local/apache
其他还有好多选项,如果你有耐心可以挨个去看一看都有什么作用。
[[email protected] httpd-2.2.27]# ./configure --prefix=/usr/local/apache checking for chosen layout... Apache checking for working mkdir -p... yes checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu Configuring Apache Portable Runtime library ... checking for APR... reconfig configuring package in srclib/apr now checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu Configuring APR library Platform: i686-pc-linux-gnu checking for working mkdir -p... yes APR Version: 1.4.6 checking for chosen layout... apr checking for gcc... no checking for cc... no checking for cl.exe... no configure: error: in `/usr/local/src/httpd-2.2.27/srclib/apr‘: configure: error: no acceptable C compiler found in $PATH See `config.log‘ for more details configure failed for srclib/apr
不幸的是,报错了,因为没有gcc编译器,需要先安装一下。
[[email protected] httpd-2.2.27]# yum install -y gcc
由于gcc依赖的包很多,所以安装时间会长一些。
安装完后,再继续上面的步骤。
tcode:
[[email protected] httpd-2.2.27]# ./configure --prefix=/usr/local/apache
验证这一步是否成功的命令是:
[[email protected] httpd-2.2.27]# echo $?0
返回值如果是 “0” 则执行成功,否则就是没有成功。
此时就成功生成 Makefile 了。
[[email protected] httpd-2.2.27]# ls -l Makefile -rw-r--r-- 1 root root 8954 5月 13 12:02 Makefile
进行编译
[[email protected] httpd-2.2.27]# make -bash: make: command not found
如果发生错误,提示 “make” 命令没有发现,解决办法是安装make工具。
[[email protected] httpd-2.2.27]# yum install -y make
继续make
[[email protected] httpd-2.2.27]# make Making all in srclib make[1]: Entering directory `/usr/local/src/httpd-2.2.27/srclib‘ Making all in apr make[2]: Entering directory `/usr/local/src/httpd-2.2.27/srclib/apr‘ make[3]: Entering directory `/usr/local/src/httpd-2.2.27/srclib/apr‘ /bin/sh /usr/local/src/httpd-2.2.27/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I./include -I/usr/local/src/httpd-2.2.27/srclib/apr/include/arch/unix -I./include/arch/unix -I/usr/local/src/httpd-2.2.27/srclib/apr/include/arch/unix -I/usr/local/src/httpd-2.2.27/srclib/apr/include -o passwd/apr_getpass.lo -c passwd/apr_getpass.c && touch passwd/apr_getpass.lo
编译的时候,就会出现类似这么多乱七八糟的信息,编译的时间比较长,CPU使用率会很高,这是因为CPU高速计算,编译完后,再使用 echo $? 验证一下是否正常成功。
[[email protected] httpd-2.2.27]# echo $? 0
如果是0的话,就可以执行最后一步了。
安装
[[email protected] httpd-2.2.27]# make installMaking install in srclib make[1]: Entering directory `/usr/local/src/httpd-2.2.27/srclib‘ Making install in apr make[2]: Entering directory `/usr/local/src/httpd-2.2.27/srclib/apr‘ make[3]: Entering directory `/usr/local/src/httpd-2.2.27/srclib/apr‘ make[3]: Nothing to be done for `local-all‘. make[3]: Leaving directory `/usr/local/src/httpd-2.2.27/srclib/apr‘
当然你也可以使用 echo $? 看看有没有正确安装,执行完这一步,则会在 “/usr/local/apache2” 目录下增加了很多目录。
[[email protected] httpd-2.2.27]# ls /usr/local/apache2/bin cgi-bin error icons lib man modules build conf htdocs include logs manual
到此,apache源码的安装就完成了,其实在日常的源码安装工作中,并不是谁都这样顺利完成安装的,遇到错误不能完成安装的情况是很多的。通常都是因为缺少某一个库文件导致的。这就需要你仔细琢磨报错信息或者查看当前目录下的 “config.log” 去得到相关的信息。另外,如果自己不能解决那就去网上google一下吧,通常会得到想要的答案。
本文出自 “12350027” 博客,谢绝转载!
源码编译安装lnmp环境
一、源码编译安装步骤首先说明源码安装的好处 速度快,可自定义路径主要有三步:1.配置进入源码安装包 ./configure--prefix=/uer/local/nginx 可指定参数--prefix为安装路径2.编译相当于rpm包 make3.安装makeinstall如果安... 查看详情
源码编译安装
在linux下面安装一个源码包是最常用的,在日常的管理工作中,大部分软件都是通过源码安装的。安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代... 查看详情
lamp源码编译安装
源码编译安装
...sp; 在日常管理工作中,大部分软件都是通过源码安装的。安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件。使用源代码的好处有可以自定义修改源代码,还可以定制相关的功能,因为源代码在... 查看详情
lamp架构nginxphpmysql源码编译安装(代码片段)
目录一、nginx源码编译及使用1.源码编译2.nginx配置及部署软连接瘦身nginx清除缓存不显示nginx版本nginx开机自启二、php源码编译及使用1.源码编译2.nginx结合php-fpm安装phpmyadmin三、mysql源码编译phpmyadmin连接mysql源码编译安装三部曲... 查看详情
lamp架构nginxphpmysql源码编译安装(代码片段)
目录一、nginx源码编译及使用1.源码编译2.nginx配置及部署软连接瘦身nginx清除缓存不显示nginx版本nginx开机自启二、php源码编译及使用1.源码编译2.nginx结合php-fpm安装phpmyadmin三、mysql源码编译phpmyadmin连接mysql源码编译安装三部曲... 查看详情
源码编译安装
除了用rpm、yum安装包外,还可以用源码编译安装源码包:代码可见的,要想在系统里运行,要翻译成机器语言,编译就是翻译的过程。源码包下载最好去官方网站以httpd为例下载地址650)this.width=650;"src="http://note.youdao.com/yws/res/1887/... 查看详情
源码编译安装lnmp架构环境
源码编译安装LNMP架构环境OS版本:2.6.32-431.el6.x86_64Nginx版本:nginx-1.6.1mariadb版本:mariadb-10.0.13php版本:php-5.4.261、安装编译安装所需系统环境~]#yumgroupinstall"DevelopmentTools""ServerPlatformDevelopment"-y2、编译安装nginx-1.6.1#yum 查看详情
源码编译安装httpd(代码片段)
源码编译安装MAKE项目???管理器???管理C、C++项目configure脚本通过配置此脚本,管理安装信息,例如定制安装路径,指定启用哪些功能,最终生成Makefile。由于格式复杂,需要借助模板Makefile.in。安装三大步骤一、下载源码包,并建... 查看详情
源码编译安装zabbix安装
先安装好LNMP环境mysql-uroot-p123456mysql>createdatabasezabbix;mysql>grantallonzabbix.*to[email protected]identifiedby‘123456‘;mysql>flushprivileges;安装zabbix:yuminstall-ynet-snmp-develtarxvfzab 查看详情
mairadb-源码编译安装(代码片段)
源码编译安装Mairadb1.先安装环境所需要的依赖组件[[email protected]~]#yum-yinstallbisonbison-develzlib-devellibcurl-devellibarchive-develboost-develgccgcc-c++cmakencurses-develgnutlsevellibxml2-developenssl-devellibe 查看详情
编译安装c源码程序程序
...;编译安装1安装GCC编译器:yum-yinstall"DevelopmentTools";2解压源码包:tar-xvfxxx.tar-C/usr/local/;3切换目录:cd/usr/local/xxx;4执行configure文件;./ 查看详情
mysql源码编译安装(代码片段)
目录:一、源码编译安装1.参考MySQL源码安装官方文档:2.MySQL的源码编译安装:①.安装MySQL编译需要用到的依赖库:②.上传软件到服务器端并解压③.配置(基于cmake进行配置)④.编译安装:编译报错常... 查看详情
源码编译安装httpd-2.4.39(代码片段)
环境centos7.6需要下载的源码编译安装包:官网http://www.apache.org/index.html#projects-listhttpd-2.4.39.tar.bz2(最小化安装系统需安装bzip2)apr-1.7.0.tar.gzapr-util-1.6.1.tar.gz基于最小化安装的centos系统,生产实践,源码编译需要安装下面组件yuminstall... 查看详情
源码编译安装libtool工具
1.获取源码 wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz tarxvf libtool-2.4.6.tar.gz-C~/ cd~/libtool-2.4.62.配置 ./configure--prefix=/home/jello/libtool3.编译 make-j44.安装 makeinstall 查看详情
源码安装步骤
把源码编译成二进制的可执行文件(自定义修改源代码,定制相关功能,附加额外选项)编译器(gcc):安装yuminstall-ygcc echo$?验证是否安装成功成功输出为0源码安装步骤1)./configure可定制相关功能(./configure-help)如果缺少相... 查看详情
tensorflow源码编译安装
##Installprerequisites(rhel)yuminstallnumpypython-develpython-wheelpython-mock##InstallBazelwgethttps://github.com/bazelbuild/bazel/releases/download/0.4.5/bazel-0.4.5-dist.zipunzipbazel-0.4.5-dist.zi 查看详情
源码编译安装httpd
1丶解包和配置。2丶编译安装。下图为安装编译和过程中的状态,这里将会等待几分钟,请耐心等待...3丶确认安装结果,如果出现下图所示,表示安装成功了。4丶优化执行路径。5丶添加httpd系统服务(添加好了之后就可以使用se... 查看详情