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/httpdconfigfile=/etc/apache/httpd.conflockfile=/var/lock/subsys/httpd.?/etc/init.d/functionsstart()?{??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"?instart)?????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下源码软件包的安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用Procexp工具监控Windows
- 下一篇: Linux面试题