<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    linux下的軟件包安裝

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    linux下安裝軟件包有兩種方法:源文件編譯安裝(source) rpm 安裝

     1.源文件包安裝的通用方法。

        一般安裝源代碼的程序你得要看它的README,一般在它的目錄下都有的。

     01.配置

        構建應用的第一步就是執行configure腳本,該腳本位于程式源文件的主目錄下:

        [root@localhost~]# ./configure

        該腳本將掃描系統,以確保程式所需的所有庫文件業已存在,并做好文件路徑及其他所需的設置工作。如果程式所需的庫文件不完全,該設置腳本就會退出,并告訴你還需要哪些庫文件或是哪些版本太舊需要更新。

        如果遇見這種情況,僅弄到含有該庫文件的軟件包還是不夠的,同時還要找到具有該庫文件所有頭文件的研發包,在linux中,這樣的包一般以-dev作為文件名的結尾。安裝好所有需要的庫文件后,重新運行設置腳本,直到沒有錯誤提示為止,這說明需要的庫文件已全部安裝妥當了即滿足了依賴關系。

     02.編譯

        當設置腳本成功退出后,接下來要做的就是編譯代碼了。具體操作為在源文件的主目錄中運行make命令:

        [root@localhost~]#  make

        注:這時,你會看到一串編譯輸出數據迅速從屏幕上滾過,如果正常的話,系統會返回的提示符狀態。然而,如果編譯過程中出現錯誤的話,排錯的過程可就不像設置步驟那么簡單了。因為,這通常要涉及到原始碼的調試,可能原始碼有語法錯誤,或其他錯誤等等。怎么辦?

        你是編程高手,那就自己調試吧!否則,檢查該軟件的郵件列表等支持渠道,看看是不是已知的bug,如果是就看看別人是怎么解決的,不是就提交一份bug報告吧,也許不久就會有解決辦法。

     03.安裝:

        當軟件成功編譯后,最后一步就是將他們安裝到系統上。大部分程式的makefile文件中都會有一個用于安裝的函數。需要注意的是,大多時候我們必須作為root用戶來安裝程式,這樣程式就把文件安裝到/usr或其他只有終極用戶才有寫權限的目錄中。依舊是在源文件的主目錄下,執行如下命令:

       [root@localhost~]#  make install

        注:這樣程序就會安裝到你的計算機上了。

     

     04.另外,當你不再使用該程序時,能使用軟件所帶的卸載功能,一般程序都會具有此功能。轉換至源文件的主目錄下,執行以下命令即可:    

       [root@localhost~]#  make uninstall


     06.  多數情況下,利用上面介紹的方法安裝的程式,都位于/usr/local下面,編譯安裝源碼包還有一個特點就是我們可以自己指定安裝位置,這需要在配置時指定安裝文件夾下,通常我們會裝在/opt下,命令如下:

       [root@localhost~]#  ./configure --prefix = /opt/

        注:當然有時候也有例外,有些程序根本就不理會你指定的文件夾,它會自己指定文件夾進行安裝。 

     

    2.rpm安裝軟件包的方法。

      01. 命令參數使用方法

       以上參數有些需要組合使用,比如說 rpm -h package.rpm 是沒有意義的,但 rpm -ih package.rpm 即表示安裝 package 并用 # 符顯示安裝進度。 

         • 安裝 RPM 包 :               

         # rpm -ivh package.rpm

         • 升級 RPM 包命令 :             

         # rpm -Uvh package.rpm

         • 卸載 RPM 包命令 :               

         # rpm -ev package

         • 查詢 RPM 包中包含的文件列表命令: 

         # rpm -qlp package

         • 查詢 RPM 包中包含的文件列表命令:

         # rpm -qlp package

         • 查詢 RPM 包中包含的內容信息命令:

         # rpm -qip package

         • 查詢系統中所有已安裝 RPM 包 :   

         # rpm -qa

     

      02. 包管理示例

        以下步驟描述了一個普通用戶安裝 IBM Lotus Notes V85 ( 以下簡稱 Notes) 的典型操作過程。 Notes 的 RPM 包名為 ibm_lotus_notes-8.5.i586.rpm 。

     

        1.首先查詢是否該軟件是否已經在系統中存在      
        # rpm -qa | grep ibm_lotus_notes

        : 如果返回信息為空那么說明該軟件還未被安裝。

     

        2.查詢 Notes 軟件包內容:  
        # rpm -qip ibm_lotus_notes-8.5.i586.rpm 
        Name        : ibm_lotus_notes           Relocations: /opt/ibm/lotus/notes 
        Version     : 8.5                               Vendor: IBM 
        Release     : 20081211.1925             Build Date: Sat 13 Dec 2008 09:38:55 AM CST 
        Install Date: (not installed)               Build Host: dithers.notesdev.ibm.com 
        Group       : Applications/Office           
        Source RPM: ibm_lotus_notes-8.5-20081211.1925.src.rpm 
        Size        : 603779427                        License: Commercial 
        Signature   : DSA/SHA1, Sat 13 Dec 2008 09:43:02 AM CST, Key ID 314c8c6534f9ae75 
        Summary     : IBM Lotus Notes 
        Description : 
        IBM Lotus Notes software provides a robust ..

     

        3.安裝 Notes:      
        # rpm -ivh ibm_lotus_notes-8.5.i586.rpm

        返回信息 :
          
        Preparing...             ########################################### [100%] 
        1:ibm_lotus_notes        ########################################### [100%]


        4.升級 Notes:
        若今后需要基于該版本升級至更高版本的 Notes( 縫 .0 - ibm_lotus_notes-9.0.i586.rpm),則使用 -U 參數:

        # rpm -Uvh ibm_lotus_notes-8.5.i586.rpm 
        注:在該步驟中如果使用 -i 則系統通常會報文件沖突錯誤,無法正常安裝。

     

        5.卸載 Notes
        注意:卸載軟件使用軟件名稱,而不是包文件名:

        # rpm -ev ibm_lotus_notes

       

      03.軟件包依賴性關系

        由于開源的多態性,Linux 操作系統中的軟件之間的依賴性關系處理一直令用戶感到頭疼。如果 package_a 依賴于 package_b,那么在一個沒有安裝 package_b 的系統中,package_a 是不被系統推薦安裝的,強制安裝很可能會導致軟件無法正常工作。

        基于以上 package_a 和 package_b 的關系,在一個干凈的系統中 ( 未安裝 package_a 或 package_b),欲安裝 package_a,錯誤通常會表現為:

        RHEL 5.2
        
        # rpm -ivh package_a.rpm

        error: Failed dependencies: 
            pacakge_b = version info is needed by package_a

     

        查詢 RPM 包的依賴關系,   使用 rpm -qRp:
        
        # rpm -qRp package_a.rpm

        package_b = version_info 
      或
        package_b >= version_info 
      或
        package_b <= version_info 


        表明 package_a.rpm 依賴于 version_info 版的 package_b,或者任何高于并包括 version_info 版的 package_b,亦或低于或包括 version_info 版的 package_b 。所以 package_b.rpm 必須在 package_a 之前安裝于系統中。

        對于 package_a,正確的安裝方法應該是:
        ##RPM 
         # rpm -ivh package_b.rpm 
         # rpm -ivh package_a.rpm

     

      常見問題列表

        01.可以手動強制不進行 RPM的依賴性關系檢查嗎?

        RPM 可以。使用 --nodeps 輔助參數,則安裝過程將不理會依賴性關系限制,強制安裝目標包,

        如:# rpm -i --nodeps package_a.rpm

        02.RPM 中的 --force 是干什么用的?

        RPM 中的默認安裝規則是不允許同一個包多次安裝的,也不允許降級安裝。使用 --force 輔助參數將不考慮以上

    因素,強制安裝 RPM 包。但是,--force 無法強制安裝一個不滿足系統依賴性關系的包 ( 此時需要用到 --nodeps

    參數 ) 。使用方法如:
         # rpm -i --force package_a.rpm

        03.RPM支持遠程安裝嗎?

        RPM 是。 RPM 支持 HTTP 和 FTP 協議,如:# rpm -Uvh ftp://user:pass@ftpserver/package.rpm 
        04.RPM提供包安裝成功的驗證機制嗎?

        RPM 是。 可以使用 -V 參數進行驗證。
        05.RPM提供包安全簽名嗎?

        RPM 是。可以使用 --import 導入與軟件同時發布的 GPG KEY, 接著使用 -K 命令來驗證包的安全性,如:
        # rpm --import pub_ibm_lotus_notes.gpg # rpm -K ibm_lotus_notes-8.5.i586.rpm 返回信息 :  ibm_lotus_notes-

     8.5.i586.rpm: (sha1) dsa sha1 md5 gpg OK

        06.如果 RPM 的底層數據庫損壞,RPM 還能使用嗎?

        RPM 如果底層數據庫損壞,RPM 將無法正常使用。此時最常用的解決方法是重構數據庫:
        # rm -f /var/lib/rpm/__* ; rpm -vv --rebuilddb

        07.可以查詢系統中已經安裝的某個文件屬于哪個 RPM 包嗎?

        RPM  可以。使用 -qf 參數 , 如在安裝了 Notes8.5 的系統中:
        # rpm -qf /opt/ibm/lotus/notes/notes 返回信息 : Ibm_lotus_notes-8.5-20081211.1920

        08.可以查詢 RPM 包的安裝時間嗎?

        RPM 可以。可使用 --last 查詢。如:
        # rpm -qa --last 返回信息 : 系統中所有軟件的安裝時間。

     

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全