軟件包管理2

四、程序包編譯

    程序包編譯安裝:

    Application-VERSION-release.src.rpm –> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝

    源代碼–>預處理–>編譯(gcc)–>匯編–>鏈接–>執行

    源代碼組織格式:

        多文件:文件中的代碼之間,很可能存在跨文件依賴關系

        C、 C++: make (項目管理器, configure –>

            Makefile.in –> makefile)

        java: maven

    編譯安裝

    C代碼編譯安裝三步驟:

        ./configure:

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

            檢查依賴到的外部環境

        make:根據makefile文件,構建應用程序

        make install:復制文件到相應路徑

    開發工具:

        autoconf: 生成configure腳本

        automake:生成Makefile.in

    注意:安裝前查看INSTALL, README

    開源程序源代碼的獲?。?/p>

        官方自建站點:

            apache.org (ASF)

            mariadb.org

            …

        代碼托管:

            SourceForge.net

            Github.com

            code.google.com

        c/c++編譯器: gcc (GNU C Complier)

    編譯C源代碼:

        前提:提供開發工具及開發環境

            開發工具: make, gcc等

            開發環境:開發庫,頭文件

                glibc:標準庫

        通過“包組”提供開發組件

            CentOS 6: 

                Development Tools

                Server Platform Development

            CentOS 7:

                Development Tools

                Development and Creative Workstation

    第一步: configure腳本

        選項:指定安裝位置、指定啟用的特性

            –help: 獲取其支持使用的選項

        選項分類:

        安裝路徑設定:

            –prefix=/PATH: 指定默認安裝位置,默認為/usr/local/

            –sysconfdir=/PATH:配置文件安裝位置

            System types:支持交叉編譯

        Optional Features: 可選特性

            –disable-FEATURE

            –enable-FEATURE[=ARG]

        Optional Packages: 可選包,

            –with-PACKAGE[=ARG],依賴包

            –without-PACKAGE,禁用依賴關系

    第二步: make

    第三步: make install

    安裝后的配置:

    二進制程序目錄導入至PATH環境變量中;

        編輯文件/etc/profile.d/NAME.sh

            export PATH=/PATH/TO/BIN:$PATH

    導入庫文件路徑

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

            添加新的庫文件所在目錄至此文件中;

        讓系統重新生成緩存:

            ldconfig [-v]

    導入頭文件

        基于鏈接的方式實現:

            ln -sv

    導入幫助手冊

        編輯/etc/man.config|man_db.conf文件

            添加一個MANPATH

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

(0)
DYWDYW
上一篇 2016-08-27 16:39
下一篇 2016-08-28 14:41

相關推薦

  • week7

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; fdisk /dev/sdb  按提示創建出來10G分區 查看1:…

    Linux干貨 2016-12-08
  • 馬哥教育網絡班22期+第一周課程練習

    1、描述計算機的組成及其功能。 計算機由硬件系統、操作系統和應用軟件所組成,沒有安裝任何軟件的計算機稱為裸機。 1.1、硬件系統由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成,遵循馮、諾依曼原理。 控制器:讀取分析指令,向其它部分發出控制信號,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。  運算器:對數據進行各種運算,例如…

    Linux干貨 2016-08-22
  • 運維挖坑埋坑之旅—-413 Request Entity Too Large

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1575160        好久沒寫博文了,天天忙的喘不過來氣。最近是該總結總結前段時間的工作了,順便緩解下這兩天的霉…

    Linux干貨 2016-08-15
  • 細說CP使用

    cp詳細用法和常用選項

    Linux干貨 2017-11-26
  • DNS 子域授權和高級應用

    DNS 基礎主從部分 http://www.www58058.com/12395 實驗環境:     系統環境:Centos 6.7     關閉SELINUX:setenforce 0 #立即生效   (實際是寬容模式)     配置防火墻:iptables…

    Linux干貨 2016-11-15
  • HTTP詳解(1)-工作原理

    1. HTTP簡介          HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用于從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸…

    Linux干貨 2015-04-04
欧美性久久久久