我们在使用linux做服务器的时候,因为linux自带的软件包都有些老,不是最新的,但是有时候我们为了使用最新的软件,会使用最新的软件的源码来进行安装。

所以我们需要用心去做了...

在我们拿到一个软件的源码时,源码一般都是使用tar.gz或tar.bz2结尾。
源码--》配置文件(./configure)--》编译(makefile)--》(可执行 头文件 库文件 手册)--》安装
对于源码的安装,我们说西安要确定机器安装了编译环境
使用yum  grouplist |less 查看是否安装了
Develoment Libraries 和Develoment Tools开发环境,如果没有,
请先安装,否则没法源码安装
那我们首先要对源码进行包的拆解

tar -zxvf 源码 -C /usr/local/src/(对源码包解压到一个路径,/usr/local/src/是系统给我们用来存放源码拆解后的文件路径)
源码解压后我们就可以对源码安装了。

源码文件解压后进入拆解后的文件,一般会看到很多个文件夹或文件,其中有一个INSTALL文件或README文件,以及配置文件这是我们安装前必看的说明书
我们一安装apache服务为例做个实验。
安装前先把源码下载到机器里,进入所在目录

进入apsche拆解后的目录

我们看到一个INSTALL文件,查看一下

我们要查看一下configure的使用说明

接下来开始配置安装apache

报错了,我们来看啊可能否安装了apr

我们装了apr,但是有的调用的文件并不都在apr里,有的在apr-devel里,我们去在安装看下,

然后我们再次执行apache的安装

这次有报错了,但是说的明确了,说我们的apr的版本太低了,那我们重新安装

我们把apr新版的拆解到/usr/local 下

我们安装apr包和apr-util包

我们会看到生成了很多的makefile文件,那我们直接make

安装后我们进入apr文件内,因为apache要调用他的库,可是apr是我们自己安装的,不是默认的路径,所以我们要对apr库进行连接处理,使apache可以调用

那么我没呢可以简单些直接建立一个系统可是识别的文件,这样可以避免对所有的库文件做链接

建立apr.conf文件,把apr的库路径加入进去就ok!
然后我们要更新缓存,在查看是否成功

接着安装apr-util

然后make和make install

现在apr的问题已经解决了,那我们重新安装apache

但是还是报错 ,说我们缺少apr-1-config ,那我们在说明一次,添加他的路径

为了避免麻烦,我们再次查询一下所有与apr相关的配置 ,全部带上

找到后,我们再次重新安装

但是又报错了。说我们的pcre没有找到

我们来解决他,安装prec

我们再来安装apache的源码
没有报错,安装成功,生成了很多的makefile文件
那我们就安装apache  make && make install

到此,我们的apache就是安装完成了
我们看到了,源码的安装很复杂,而且很容易出错,我们需要做很多的调试
在我们安装完成后,但是不完美,没法开机自动启动
没关系,我们来帮他,手动启动或自动启动
进入/usr/local/apache/bin 目录下

我们只需要在命令行下输入 ./httpd -f /usr/local/apache/http.conf 就可以启动,但是不是很完美,我们可以给他写一个启动脚本
一般的服务的脚本放在rtc/init.d/目录下,我们就去这里写apache服务脚本
脚本如下:(个人写的,有些简陋,请见谅)
#!/bin/bash‍
prog=/usr/local/apache/bin/httpd
configfile=/etc/apache/httpd.conf
lockfile=/var/lock/subsys/httpd
. /etc/init.d/functions
start() {
  if [ -e $lockfile ];then
     echo "The program `basename $prog` is started!"
  else
     echo "The program `basename $prog` is starting......"
     sleep 2
     $prog && echo -e "[ok]" && touch $lockfile || echo -e  "[fail]"
  fi
}
stop() {
  if [ -e $lockfile ];then
     echo "The program `basename $prog` is stoping......"
     sleep 2
     killproc httpd && echo "[ok]" && rm -rf $lockfile || echo "[fail]"
  else
     echo "The program `basename $prog` is stoped!"
  fi
}
status() {
  if [ -e $lockfile ];then
     echo "The program `basename $prog` is running......"
  else
     echo "The program `basename $prog` is stop......"
fi
}
case "$1" in
start)
     start
     ;;

stop)
     stop
     ;;
status)
     status
     ;;
restart)
     stop
     start
     ;;
*)
     echo "usage: start|stop|status|restart"
esac

我们对写下的脚本测试一下

上面的是我们手动的启动我们的服务,我们可以让它开机启动,使用chkconfig命令来实现,我们要在/etc/init.d/httpd 内增加chkconfig

把httpd的启动缓存加入chkconfig

这样子httpd服务开机启动的目地就达到了!

linux下源码软件包的安装相关推荐

  1. linux源码编译安装lamp环境搭建,linux下源码包编译安装LAMP环境

    1.下载所需的源码包 Httpd-2.4.10  apr-1.5.1  apr-util-1.5.3  pcre-8.33(这些均可在Apache官网进行下载) Mysql-5.5.39    php ...

  2. Linux下源码安装CodeBlocks

    Linux下源码安装CodeBlocks qianghaohao(CodingNutter) 一. 安装平台说明: CentOs6.4-i686  gcc-4.4.7 二. 下载最新源码: http: ...

  3. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录

    Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录 安装需求 准备工作 Python及其依赖项 libffi glibc GDBM mpdecimal bz2 xz re ...

  4. linux下源码编译升级ssh版本,ssh打补丁过程

    linux下源码编译升级ssh版本过程 记录打补丁之ssh源码编译升级过程 安装前软件准备 升级步骤 结尾及一些坑 记录打补丁之ssh源码编译升级过程 应安全报告要求需要修复操作系统中的ssh协议,原 ...

  5. vc6可编译的 linux 源码,Linux 下源码编译FFMEG

    1. 安装依赖关系 $ sudo apt-get update $ sudo apt-get -y install autoconf automake build-essential libass-d ...

  6. linux下源码编译lrzsz

    linux下源码编译lrzsz 更新时间:2022-04-09(六) lrzsz github地址 lrzsz: free x/y/zmodem implementation 可找到下载链接 wget ...

  7. windows和linux下源码编译7-Zip(7za)

    windows和linux下源码编译7-Zip(7za) 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 windows和l ...

  8. Linux下源码编译安装新版libxcb

    前言 上一篇文章提到,linux 下编译Qt源码如果要用到Quick的话,那么运行时会依赖qxcb库,而编译生成qxcb库就需要先安装libxcb,并且最低要求 版本大于1.9.1 Requires ...

  9. 【Python 笔记】Linux 下源码编译安装 python

    本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...

最新文章

  1. win7下的IP-主机名映射
  2. python打砖块游戏算法设计分析_python实现打砖块游戏
  3. 概述---《TCP/IP协议》卷一
  4. c语言程序设计的几种循环,C语言程序设计教案 第六章 循环程序设计.doc
  5. 一、SQL语法——4-数据库约束
  6. 15 CT04创建特性程序DUMP解决方法
  7. 规格示例_最佳引导示例
  8. weblogic 解决线程阻塞
  9. 在智能家居时代,你愿意用个人数据换取收益吗?
  10. 【转】Gnuplot基本介绍
  11. WAPI网络认证原理
  12. ESP8285如何做探针盒子
  13. 前端程序员为何焦虑?web前端未来终将是什么样?
  14. Docker 部署微服务
  15. 中银泰定期存款理财技巧
  16. sql中的模糊查询及字段前加N的作用
  17. 解决浏览器“根据监管部门规定以及投诉举报,此链接违反相关法律法规,禁止访问”的策略
  18. Thunderboard EFR32BG22出厂历程分析
  19. 6、RocketMQ 源码解析之 Broker 启动(上)
  20. ruby实现按键精灵的功能

热门文章

  1. 转载 vue的基础使用
  2. 利用PHP SOAP实现web service
  3. js(function(){alert(‘’‘)})
  4. JQuery 文本框高亮显示插件
  5. iOS 二叉树相关算法实现
  6. Effective Objective-C 2.0 初读小结
  7. 状态管理工具vuex的基本使用(vuebus的理解)
  8. MongoDB升级导致启动失败
  9. 8.8 正睿暑期集训营 Day5
  10. [原创]Toolbar setNavigationIcon无效