51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2431|回复: 0
打印 上一主题 下一主题

源码安装linux

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-3-1 13:44:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 做自己的女王ヽ 于 2018-3-1 13:45 编辑

源码包的编译用到了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为文件名。所以,你一定要去看一下。下面会编译
安装一个源码包来帮你更深刻的去理解如何安装源码包。





下载一个源码包
下载源码包一定要去官方站点去下载,不要在网上随便下载,那样很不安全。因为你下载到的源码
包很有可能是被人修改过的。
  1. [root@localhost src]# cd /usr/local/src/
  2. [root@localhost src]# wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.2.27.tar.bz2
复制代码
阿铭
提供的下载地址为apache官方网站上提供的一个镜像,下载速度还可以。在下载之前,阿铭进
入到了 “/usr/local/src” 目录,这是因为阿铭习惯把源码包都放到这个目录下,这样做的好处是,
方便自己和其他管理员维护,所以阿铭给你一个建议,以后下载的源码包都统一放到这个目录下吧。

解压源码包
  1. [root@localhost src]# tar jxvf httpd-2.2.27.tar.bz2
  2. 配置相关的选项,并生成Makefile
  3. [root@localhost src]# cd httpd-2.2.27
  4. [root@localhost httpd-2.2.27]# ./configure --help |less
  5. `configure' configures this package to adapt to many kinds of systems.

  6. Usage: ./configure [OPTION]... [VAR=VALUE]...

  7. To assign environment variables (e.g., CC, CFLAGS...), specify them as
  8. VAR=VALUE.  See below for descriptions of some of the useful variables.

  9. Defaults for the options are specified in brackets.

  10. Configuration:
  11.   -h, --help              display this help and exit
  12.       --help=short        display options specific to this package
  13.       --help=recursive    display the short help of all the included packages
  14.   -V, --version           display version information and exit
  15.   -q, --quiet, --silent   do not print `checking ...' messages
  16.       --cache-file=FILE   cache test results in FILE [disabled]
  17.   -C, --config-cache      alias for `--cache-file=config.cache'
  18.   -n, --no-create         do not create output files
  19.       --srcdir=DIR        find the sources in DIR [configure dir or `..']
  20. 后面的内容阿铭省略掉了,阿铭使用 ./configure --help 命令查看可以使用的选项。一般常用的有 --prefi
  21. x=PREFIX 这个选项的意思是定义软件包安装到哪里。到这里,阿铭再提一个小小的建议,通常源码包
  22. 都是安装在/usr/local/目录下的。比如,我们把apache安装在/usr/local/apache2下,那么这里就应该这样
  23. 写 --prefix=/usr/local/apache2 其他还有好多选项,如果你有耐心可以挨个去看一看都有什么作用。

  24. [root@localhost httpd-2.2.27]# ./configure --prefix=/usr/local/apache2
  25. checking for chosen layout... Apache
  26. checking for working mkdir -p... yes
  27. checking build system type... i686-pc-linux-gnu
  28. checking host system type... i686-pc-linux-gnu
  29. checking target system type... i686-pc-linux-gnu

  30. Configuring Apache Portable Runtime library ...

  31. checking for APR... reconfig
  32. configuring package in srclib/apr now
  33. checking build system type... i686-pc-linux-gnu
  34. checking host system type... i686-pc-linux-gnu
  35. checking target system type... i686-pc-linux-gnu
  36. Configuring APR library
  37. Platform: i686-pc-linux-gnu
  38. checking for working mkdir -p... yes
  39. APR Version: 1.4.6
  40. checking for chosen layout... apr
  41. checking for gcc... no
  42. checking for cc... no
  43. checking for cl.exe... no
  44. configure: error: in `/usr/local/src/httpd-2.2.27/srclib/apr':
  45. configure: error: no acceptable C compiler found in $PATH
  46. See `config.log' for more details
  47. configure failed for srclib/apr
  48. 不幸的是,阿铭一开始就报错了,因为没有gcc编译器,需要先安装一下。

  49. [root@localhost httpd-2.2.27]# yum install -y gcc
  50. 由于gcc依赖的包很多,所以安装时间会长一些。安装完后,再继续上面的步骤。

  51. tcode:

  52. [root@localhost httpd-2.2.27]# ./configure --prefix=/usr/local/apache2
  53. 验证这一步是否成功的命令是:

  54. [root@localhost httpd-2.2.27]# echo $?
  55. 0
  56. 返回值如果是 “0” 则执行成功,否则就是没有成功。此时就成功生成 Makefile 了。

  57. [root@localhost httpd-2.2.27]# ls -l Makefile
  58. -rw-r--r-- 1 root root 8954 5月  13 12:02 Makefile
  59. 进行编译
  60. [root@localhost httpd-2.2.27]# make
  61. -bash: make: command not found
  62. 又发生错误了,提示 “make” 命令没有发现,解决办法是安装make工具。

  63. [root@localhost httpd-2.2.27]# yum install -y make
  64. 继续make

  65. [root@localhost httpd-2.2.27]# make
  66. Making all in srclib
  67. make[1]: Entering directory `/usr/local/src/httpd-2.2.27/srclib'
  68. Making all in apr
  69. make[2]: Entering directory `/usr/local/src/httpd-2.2.27/srclib/apr'
  70. make[3]: Entering directory `/usr/local/src/httpd-2.2.27/srclib/apr'
  71. /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
  72. 编译的时候,就会出现类似这么多乱七八糟的信息,编译的时间比较长,CPU使用率会很高,这是因为
  73. CPU高速计算,编译完后,再使用 echo $? 验证一下是否正常成功。

  74. [root@localhost httpd-2.2.27]# echo $?
  75. 0
  76. 如果是0的话,就可以执行最后一步了。

  77. 安装
  78. [root@localhost httpd-2.2.27]# make install
  79. Making install in srclib
  80. make[1]: Entering directory `/usr/local/src/httpd-2.2.27/srclib'
  81. Making install in apr
  82. make[2]: Entering directory `/usr/local/src/httpd-2.2.27/srclib/apr'
  83. make[3]: Entering directory `/usr/local/src/httpd-2.2.27/srclib/apr'
  84. make[3]: Nothing to be done for `local-all'.
  85. make[3]: Leaving directory `/usr/local/src/httpd-2.2.27/srclib/apr'
复制代码
当然你也可以使用 echo $? 看
看有没有正确安装,执行完这一步,则会在 “/usr/local/apache2” 目录
下增加了很多目录。
  1. [root@localhost httpd-2.2.27]# ls /usr/local/apache2/
  2. bin    cgi-bin  error   icons    lib   man     modules
  3. build  conf     htdocs  include  logs  manual
复制代码
到此,apache源码的安装就完成了,其实在日常的源码
安装工作中,并不是谁都像阿铭这样顺利完
成安装的,遇到错误不能完成安装的情况是很多的。通常都是因为缺少某一个库文件导致的。这就
需要你仔细琢磨报错信息或者查看当前目录下的 “config.log” 去得到相关的信息。另外,如果自己
不能解决那就去网上google一下吧,通常你会得到想要的答案。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 16:42 , Processed in 0.066575 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表