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 22:03
下一篇 2016-09-06 22:25

相關推薦

  • 第十六周

    1、源碼編譯安裝LNMP架構環境;  安裝必要的包組和依賴的包 yum groupinstall “Development Tools” “Development Libraries”  yum install wget openssl-devel ncurses-devel cmake p…

    Linux干貨 2017-08-15
  • N22-第六周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit …

    Linux干貨 2016-09-26
  • Linux終端類型

    Linux終端類型 關鍵字:linux終端,串行終端ttySn;偽終端pty;控制終端tty;控制臺終端console 要想與Linux打交道,就必須學會使用Linux終端。所謂Linux終端,其實也就是一種控制臺,一種字符設備,通常用tty標識,它是用戶和Linux內核交互的平臺,用戶能在平臺上通過各種指令操作Linux。終端的特殊設備文件一般分為以下幾種…

    Linux干貨 2016-10-19
  • Linux中的權限修改指令及正則表達式

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限 [root@centos6 ~]# cp -r /etc/skel/ /home/tuser1 [root@centos6 ~]# ls -la&…

    Linux干貨 2016-10-24
  • 第六周作業補充-vim簡介及其使用方法詳細介紹

    What       Vim是由Vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在Unix& Unix Like操作系統中被廣泛使用。和Emacs并列成為Unix& Unix Like操作系統中最受歡迎的文本編輯器 When& Who  &nb…

    Linux干貨 2016-09-26
  • 第七周小練習

    1.創建一個10G分區,并格式為ext4文件系統 (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl (2)掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 fdisk /dev/sdb n p 1 +10G w mke2fs -t&nbs…

    Linux干貨 2017-01-05
欧美性久久久久