源碼包的安裝

一、 源碼安裝

  並不是所有的安裝包都有已經生成的rpm包的,還有一些已經編寫好的,但是還沒有進行編譯的源碼包,當我們想要安裝着謝源碼包時,我們該如何做呢?
源碼安裝三部曲:

 1、./configure

  源碼安裝不像使用rpm包安裝,使用rpm包安裝一個軟件,什麼都自己內部定製好的,你安裝在哪個目錄上,安裝的命令在哪個目錄上,緩存目錄都是默認的,根本沒得選。而使用源碼安裝時,就可以在運行源碼./configuer時後跟一些選項,想怎麼安裝怎麼安裝,安裝在哪個目錄,命令在哪個目錄,這個命令的man文檔在哪個目錄?開啓或禁用包內的某些功能都可以,相當於私人訂製,後面可以跟多個選項,不瞭解的可以使用命令 ./configure - -help 查看後面的所有選項及作用例圖:
源碼包的安裝
源碼包的安裝
源碼包的安裝
  有一些小夥伴可能覺得看到這麼多選項蒙圈了,英文不太好的可能看了這些選項也不知道什麼意思,下面我就簡單介紹幾個:
   安裝目錄的選擇
    --prefix=/PATH(安裝目錄) : 指定默認安裝位置,不指定一般默認爲/usr/local
    --sysconfdir=/PATH : 配置文件安裝位置
   System types :支持交叉編譯
  安裝包的一些可選特性(feature代指某個可選的特性)
    --disable-feature 安裝時禁用某個特性,功能(默認情況這個特性、功能是啓用的情況下)
    --enable-feature 安裝時啓用某個特性、功能(默認情況下這個特性、功能是被禁用的情況下)
  安裝包的依賴包(pkgage:安裝包名)
    --with-pkgage 同時將源碼包的這個依賴包也安裝
    --without-pkgage 禁用依賴包關係
  還有一些小夥伴覺得這麼多選項好麻煩啊,我就想懶省事,我不想這麼麻煩,那就什麼選項都不加一切都按照默認的安裝就可以了
   ./configure 這個命令不是在什麼目錄下執行都可以的,是需要把你下載下來的源碼包解壓了,然後進入解壓後的目錄下,包含有configure這個腳本文件的目錄,執行這個configure這個腳本,這個命令的作用有兩點:

  (1) 通過選項傳遞參數,指定啓用特性、安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生成的makefile

  (2) 檢查依賴到的外部環境,如依賴的軟件包,檢測一下編譯的時候是否滿足編譯所需要的軟件包是否已安裝

 2、make

  上一個不驟呢,只是檢測一下編譯環境,和傳遞一些參數,這一步纔是真正的編譯,構成應用程序

 3、make install

  編譯成功後這一步來安裝,後臺做的就是把軟件需要的文件拷貝到該放的位置,執行完這一步,這個源碼包就算是安裝成功了
做完以上三個步驟,一個源碼包就算是已經安裝成功了

 4、安裝後的配置

  (1)把二進制程序目錄導入至PATH環境變量中

   可是還有一個問題,有的安裝包呢,是包含着一些命令的,安裝後纔可以使用那些命令做某些特定的事情,而如果我們在安裝時自己定義一個目錄去安裝源碼包呢,這個被指定的文件就會是這個程序的根文件,那麼這個包所包含的所有的文件就會保存在我們所指定的那個文件下,但是當輸入一個二進制程序時,我們系統會默認在PATH變量的值中去尋找,PATH的值是一個或多個目錄,當運行一個程序時,Linux會在這些目錄下進行搜尋編譯鏈接,而我們所安裝的二進制程序的命令會在指定文件的/bin下,庫文件保存在指定文件下的/lib文件中,man文件會在指定文件的/man下,所以我們在使用這個包的命令時是不能直接打出那個命令的,因爲這個程序的二進制程序並沒有保存至PATH變量中任何一個目錄中,所以Linux會提醒找不到該命令。要想使用該命令得麻煩的去打這個二進制程序的全路徑,例如:我把程序安裝在/app/apache下,那麼這個二進制程序會在/app/apache/bin/name,所以調用命令要/app/apache/bin/name –[選項] 這樣用,感覺非常麻煩是不是?命令太長了,用起來不是太方便,我想不輸入全路徑就直接輸入二進制程序名就可以運行該命令,這時候我們就就需要把二進制程序目錄導入PATH環境變量中就OK了。
   我們先來看一個PATH環境變量中都有哪些值
源碼包的安裝
   大家都看出了吧,PATH變量中有着很多值,每一個值都是一個目錄,這些值之間以:分隔,這些目錄都是Linux中包含着二進制程序的一些目錄,我們執行一個二進制程序時Linux會在這各個值中尋找對應的二進制程序,找到就執行,找不到就會出錯無法執行,下面我們就再給它添加我們所安裝的源碼包的二進制程序路徑,就可以在下次運行程序時不用輸入全路徑,只輸入程序名就可以了。
   我們在這之前先來試驗一下,我先安裝好了一個httpd源碼包,但是還沒有把二進制程序目錄導入PATH環境變量中來先運行一下看看會不會出錯?輸入全路徑會不會出錯?
源碼包的安裝
結果證明了不把二進制程序目錄導入至PATH環境變量中程序也可以用,只是用起來更麻煩一點要多輸入路徑,對於一些懶省事的小夥伴就會覺得用的不爽,下圖就交大家怎麼把二進制程序目錄導入PATH環境變量中並且再運行一下該命令看看反應
源碼包的安裝
但是這種方法的PATH在終端關閉後就會消失,所以建議通過編輯/etc/profile來改變PATH,也可以改家目錄下的.bashrc
   第二種方法:
    #vim /etc/profile
   在文檔的最後,添加export PATH=”/app/apache/bin:$PATH” ,保存退出,然後運行
    #source /etc/profile 註釋:
   不報錯則成功

  (2)導入庫文件路徑

   編輯/etc/ld.so.conf文件,在文件中添加庫的搜索路徑
    #vim /etc/ld.so.conf
   然後直接將庫文件的額絕對路徑添加至最後一行就可以了
    如:/app/apache/lib
    一行寫一個路徑
    然後保存退出
   讓系統重新搜索庫文件生成緩存:
    #ldconfig [-v]
      -v : 顯示過程

  (3)導入頭文件

    基於鏈接的方式實現:
     ln-sv

  (4)導入幫助手冊

   幫助手冊其實就是man命令,使用man 後跟一個命令,可以查出這個命令的幫助手冊,幫助你更好的使用這個命令,新裝的源碼包也有自己的man手冊,但是不導入幫助手冊,即使二進制程序可以正常使用,也是不能查看man幫助信息的,所以需要還需要導入man手冊來方便查看幫助手冊
   編輯/etc/man.config|man_db.conf文件,添加一個MANPATH(man路徑)
     #vim /etev/man.config|man_db.conf
     在文件末行添加一條man路徑
     格式爲MANPATH 安裝程序的man路徑,例如:
      MANPATH /app/apache/man
     保存退出
    這樣一個源碼包就算是完美的安裝好了,後面的安裝後的配置也可以不做,源碼包安裝好久可以用,不過是使用命令麻煩點,man麻煩點而已,所以建議大家有rpm包文件最好使用rpm安裝,簡單省事,一條命令解決所有的問題

二、 源碼包的組成

  1、源碼包的通常是由多個文件組成的,文件中的代碼很可能跨文件依賴關係,另外源碼包除了包含源代碼的文件,還包含一些其它的man文件、幫助文檔、配置文件等。把這些文件壓縮成一個壓縮包就叫做源碼包
  2、源代碼是不能夠直接使用安裝的,必須經過編譯後纔可以安裝,
源代碼預處理編譯彙編鏈接執行
  3、源碼包的安裝的大同小異,大部分安裝方法都是差不多的,但是不妨礙也有一部分的源碼包安裝不一樣,所以建議大家在安裝前可以查看一下README這個文件,README文件呢是對於這個軟件的一些介紹,關於它的版本,它的目錄放在哪,還有一個INSTALL這個文件裏面是包含一些這個包的配置文件的介紹
  4、開源程序源代碼的獲取:
   官方自檢站點:
    Apache.org   mariadb.org
   代碼託管:
     SourceForge.net  Github.com   code.google.com
  5、c/c++編譯器:gcc(GNU C Complier)
  6、編譯C源代碼:
   1.準備:提供開發工具及開發環境
    開發工具:make,gcc等
    開發環境:開發庫,頭文件
    glibc:標準庫
    2.實現:通過“包組”提供開發組件
    Development Tools
    Server Platform Development

三、 安裝源碼包的示例

  光是這樣看呢,可能也不是太明白,下面給大家做一個示例
  要求:將CentOS 6中安裝httpd-2.2.34.tar.gz源碼包

 第一步:從apache官網上找到並下載httpd-2.2.34.tar.gz源碼包

  打開瀏覽器在地址欄輸入http://httpd.apache.org/ 進入下圖
源碼包的安裝
  點擊左邊紅框處的下載進入下圖:
源碼包的安裝
  往下滾動鼠標找到下圖中的紅框處點擊會下載此httpd-2.2.34.tar.gz安裝包至您的物理機上
源碼包的安裝
  然後會出現下圖中的下載框,讓您選擇下載至指定的位置並記住這個位置,方便下一個把源碼包拷貝至虛擬機上
源碼包的安裝

 第二步:從物理機上把下載好的源碼包拷貝至虛擬機內

  從物理機上拷貝文件至虛擬機需要rz命令,如果虛擬機沒有安裝rz命令,下面我們來先安裝rz命令,但是隻知道這個命令是rz,不知道有沒有rz這個包呢?我們來看一下下圖,使用yum安裝一下rz:
源碼包的安裝
  發現安裝失敗,並沒有rz這個安裝包,怎麼辦呢?彆着急我們還有yum provides來查詢關於rz這個命令的來自於哪個安裝包
源碼包的安裝
  發現了rz這個命令來源於lrzsz這個包
  下面就可以安裝這個命令了
源碼包的安裝
源碼包的安裝
  本來安裝過rz的小夥伴可以忽略衣裳步驟,直接使用rz拷貝,安裝成功後我們來看看如何使用rz來講物理機上的文件拷貝至虛擬機,
源碼包的安裝
  然後或彈出對話框如下圖
源碼包的安裝
  找到第一步下載的源碼包的位置選擇open拷貝至虛擬機,這一步要注意了,rz這個命令,是在哪個目錄下執行的,拷貝的文件就會在哪個目錄下,

 第三步:解壓源碼包

  然後將源碼包從當前文件拷貝至想要安裝的目錄,我這裏就安裝在/app目錄了
源碼包的安裝
  再下一步就是解壓了
源碼包的安裝
  解壓完成我們來看一下源碼包內都有什麼文件吧
源碼包的安裝

 第四步:安裝development包組

  這裏解釋一下爲甚麼要先安裝development包組,因爲這個是源碼安裝,這些源碼是未經過編譯的,源碼包必須要編譯過後纔可以安裝,而編譯需要的一些命令軟件徐亞用到development包組內的好多軟件包,所以要先安裝development包組
源碼包的安裝

 第五步:./configure 檢測編譯環境

  這個命令必須在解壓的目錄中,包含configure腳本的目錄中執行
  我這裏其它選項就太多了就不設置了,只設置安裝主目錄在/app/apache
源碼包的安裝

 第六步:make 編譯

  傳遞我設置的選項參數,並檢測成功後使用make命令編譯,構建應用程序
源碼包的安裝

 第七步:make install

  編譯成功,這一步就是安裝軟件了
源碼包的安裝
  完成這一步,這個源碼包就算是安裝好了

四、 卸載源碼包

  有安裝就有卸載,源碼包的卸載不用像rpm包那樣卸載,rpm -e如果源碼包中有卸載程序呢,就查看安裝手冊,按說明卸載,不同的源碼包卸載方法也不同,但是有一個通用的卸載方法,那就是記住安裝時選擇的安裝目錄,例如上面的安裝步驟,安裝在了/app/apache目錄下,所以安裝的程序的所有文件都在該目錄下,直接簡單粗暴的刪除這個目錄就可以了
    Rm -rf /app/apache

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章