Linux源碼包安裝詳解

安裝源碼包

安裝一個源碼包,是需要我們自己把源代碼編譯成二進制的可執行文件。如果你讀得懂這些源代碼,那么你就可以去修改這些源代碼自定義功能,然后再去編譯成你想要的。使用源碼包的好處除了可以自定義修改源代碼外還可以定制相關的功能,因為源碼包在編譯的時候是可以附加額外的選項的。

源碼包的編譯用到了linux系統里的編譯器,常見的源碼包一般都是用C語言開發的,這也是因為C語言為linux上最標準的程序語言。Linux上的C語言編譯器叫做gcc,利用它就可以把C語言變成可執行的二進制文件。所以如果你的機器上沒有安裝gcc就沒有辦法去編譯源碼。你可以使用 yum install -y gcc 來完成安裝。

安裝一個源碼包,通常需要三個步驟: 
1)./configure

在這一步可以定制功能,加上相應的選項即可,具有有什么選項可以通過./configure --help 命令來查看。在這一步會自動檢測你的linux系統與相關的套件是否有編譯該源碼包時需要的庫,因為一旦缺少某個庫就不能完成編譯。只有檢測通過后才會生成一個 Makefile 文件。 
--prefix=/PATH : 指定默認安裝位置, 默認為/usr/local/ 
--sysconfdir=/PATH :配置文件安裝位置

2) make

使用這個命令會根據Makefile文件中預設的參數進行編譯,這一步其實就是gcc在工作了。

3) make install

安裝步驟,生成相關的軟件存放目錄和配置文件的過程。 
上面介紹的3步并不是所有的源碼包軟件都一樣的,安裝步驟并不是這樣,也就是說源碼包的安裝并非具有一定的標準安裝步驟。這就需要你拿到源碼包解壓后,然后進入到目錄找相關的幫助文檔,通常會以INSTALL或者README為文件名。所以,你一定要去看一下。

實戰安裝一個源碼包

1、獲取源碼包

下載源碼包一定要去官方站點去下載,不要在網上隨便下載,那樣很不安全。因為你下載到的源碼包很有可能是被人修改過的。

2、解壓源碼包

[root@localhost ]# tar jxvf httpd-2.2.29.tar.bz2
[root@localhost ~]# cd httpd-2.2.29

3、配置相關的選項,并生成Makefile

[root@localhost httpd-2.2.29]# ./configure --help |less

./configure –help 命令查看可以使用的選項。一般常用的有 –prefix=PREFIX 這個選項的意思是定義軟件包安裝到哪里。通常源碼包都是安裝在/usr/local/目錄下的。比如,我們把apache安裝在/usr/local/apache2下,那么這里就應該這樣寫 –prefix=/usr/local/apache2 其他還有好多選項,如果你有耐心可以挨個去看一看都有什么作用。

[root@localhost httpd-2.2.29]# ./configure --prefix=/usr/local/apache2
[root@localhost httpd-2.2.29]# echo $?
0

返回值如果是 “0” 則執行成功,否則就是沒有成功。此時就成功生成 Makefile 了。

[root@localhost httpd-2.2.29]# ll Makefile
-rw-r--r-- 1 root root 8909 Sep  6 12:44 Makefile

4、進行編譯

[root@localhost httpd-2.2.29]# make

編譯的時候,就會出現類似這么多亂七八糟的信息,編譯的時間比較長,CPU使用率會很高,這是因為CPU高速計算,編譯完后,再使用 echo $? 驗證一下是否正常成功。

[root@localhost httpd-2.2.29]# echo $?
0

如果是0的話,就可以執行最后一步了。

5、安裝

[root@localhost httpd-2.2.29]# make install

當然你也可以使用 echo $? 看看有沒有正確安裝,執行完這一步,則會在 “/usr/local/apache2” 目錄下增加了很多目錄。

[root@localhost httpd-2.2.29]# ls /usr/local/apache2/
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules

遇到錯誤不能完成安裝的情況是很多的。通常都是因為缺少某一個庫文件導致的。這就需要你仔細琢磨報錯信息或者查看當前目錄下的 “config.log” 去得到相關的信息。

6、啟動服務看能否正常訪問

[root@localhost httpd-2.2.29]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                          [  OK  ]

7、訪問網頁IP看能否訪問web

原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/44112

(0)
M20_heM20_he
上一篇 2016-09-06
下一篇 2016-09-06

相關推薦

  • vim簡單實用的技巧總結

    vi 和 vim無需過多的區分,vim可認為是vi的增強版。        這篇關于vim的手冊,我個人覺得實在無法把它寫成文章,只能以手冊的方式列舉出來,因為,vim是一個動手使用的工具,只能在使用中你才能慢慢發現它的操作多么符合邏輯,我從下面這些簡略的描述中,盡量將它的操作步驟寫出來,但更重要的…

    Linux干貨 2015-09-14
  • 第二次作業

    一、只顯示某目錄下隱藏文件    答案1:#ls -d /tmp/*/    但是此答案是我在同學知道下完成,但是原理沒明白 如果單獨執行        #ls -d  &nbsp…

    Linux干貨 2016-08-03
  • /etc/fstab及/boot分區文件恢復

    以centos6為例,/boot目錄下有最為關鍵的開機啟動所必須的內核文件、根文件系統驅動文件已經引導加載程序(bootloader)grub。當我們清空此文件夾之后關機,機器就不能正常啟動了,這種情況下,可以借助光盤啟動進入救援模式解決。具體步驟如下: 1. 開機進入救援模式 這里不像正常情況下,顯示根文件系統掛載在/mnt/sysimage目錄,而是提示…

    2017-07-09
  • 計算機網絡知識,腳本編程_第八周練習

    Q1:請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:網橋(Bridge)是早期的兩端口二層網絡設備,用來連接不同網段。網橋的兩個端口分別有一條獨立的交換信道,不是共享一條背板總線,可隔離沖突域。網橋比集線器(Hub)性能更好,集線器上各端口都是共享同一條背板總線的。后來,網橋被具有更多端口、同時也可隔離沖突域的交換機(Sw…

    Linux干貨 2016-12-25
  • 學習學習,復習復習,linux基礎中的基礎

    計算機的組成及其功能          根據馮諾依曼體系結構構成的計算機,應該具備以下幾點功能: l  具有把程序、數據輸入到計算機的能力 l  具有長期記憶程序、數據、中間結果以及最終結果的能力 l  能夠完成各種算術運算、邏輯運算和數據傳輸的數據…

    Linux干貨 2016-09-25
  • 千里眼–用NFS和Samba實現共享網頁文件

     目的:使用網絡文件系實現LAMP的分步式資源共享 配置過程– 搭建nfs服務器:(centos 6.8) 安裝yum install mysql-server nfs-utils httpd #這里安裝httpd是為了方便后面共享文件的屬主屬組定義 啟動nfs服務 #service nfs start  mkdir /dat…

    2017-04-30
欧美性久久久久