天天看點

Linux軟體包的管理--源碼管理

    任何管理工具都有自己最适用的場景,像軟體包的管理,在CentOS系列中,有了RPM包管理器,但是它自動不能解決包的管理器,是以就出現了yum管理器,但是,他卻不能符合我們實際要求(定制功能),是以就出現了源碼管理。也許,有些時候源代碼也不能滿足我們的要求,我就可能要自己基于源碼進行二次開發。這裡,我們講解源碼管理。

一、源碼安裝步驟

    源碼編譯的前提,得有像gcc,make等編譯工具。一般情況下在“Development tools”裡面都提供了這些編譯工具。

    源碼安裝步驟其實沒有特定的步驟,原因是不同的源碼制作者的制作方式的不同導緻了我們使用的安裝步驟和選型都有所差異。但一般情況下,制作者會遵循一些特定的規則。是以,一般情況下,源碼編譯是以下幾步。

以安裝ngnix服務為例:

    # tar xf 軟體包的壓縮檔案

    # cd 解壓後的軟體目錄

    # ./configure   還需通過許多選項指定編譯特性

    此時會在目前目錄中生成一個Makefile的檔案,裡面内容如下:

    # make

    # make install

    執行這2步,軟體就算安裝完成。

Linux軟體包的管理--源碼管理

 ./configure腳本的使用:

    1、擷取幫助

        ./configure --help

    2、較通用的一些選項

    安裝路徑相關:

        --prefix=/path/to/somewhere: 指定安裝路徑

        --sysconfdir=/path/to/somewhere: 指定配置檔案安裝路徑

Linux軟體包的管理--源碼管理

    指定啟用/禁用的特性

        --enable-FEATURE: 例如--enable-fpm

        --disable-FEATURE: 例如--disable-socket

    指定所依賴的功能、程式或檔案

        --with-FUNCTION[=/path/to/somewhere]

        --without-FUNCTION

Linux軟體包的管理--源碼管理

二、安裝後的配置

1、如果隻是程式的的運作,不做為其他軟體開發的依賴環境

    1)我們可以再全局下使用軟體的相關功能

    當然實作這樣的辦法有多種,例如:将這些指令作為連結檔案,連結至PATH變量中的某一路徑;或者将這些指令拷貝到PATH變量中的某一路徑;或者修改環境變量的值,将指令的路徑添加進去。

    我這裡示範的方法是:

    在 /etc/profile.d/下建一個于軟體名相同的腳本,例如:nginx.sh。添加如下一行内容

    2)導出手冊頁:

    編輯/etc/man.config配置檔案,添加一項MANPATH,路徑為新安裝的程式的man目錄;

Linux軟體包的管理--源碼管理

    當然,我們也可以通過man -M 指定幫助文檔路徑檢視。

    3)如果我們想使用像其他RPM包軟體的啟動方式,此時我們就要自己寫相關格式的腳本放到/etc/init.d目錄下統一管理。

2、如果作為程式開發:即其它應用程式依賴此程式的開發環境,或針對此程式做二次開發

    1)導出庫檔案

        第一步:指定讓系統搜尋定制的路徑

        編輯/etc/ld.so.conf.d/APPNAME.conf

        第二步:觸發系統重新搜尋所有的庫檔案并生成緩存,因為系統在啟動時已經通過 /etc/ld.so.cache 這個檔案緩存了庫檔案

        # ldconfig 

        -v 顯示過程

    2)導出頭檔案

        導出方式:建立連結進行

    總結:本文主要介紹了源碼如何安裝軟體包。

繼續閱讀