歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux下源碼軟件包的安裝

linux下源碼軟件包的安裝

日期:2017/3/3 16:03:30   编辑:關於Linux

我們在使用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服務開機啟動的目地就達到了!

本文出自 “無痕” 博客,請務必保留此出處http://hucwuhen.blog.51cto.com/6253667/1260058

Copyright © Linux教程網 All Rights Reserved