程序包管理之編譯安裝apache

編譯就是講開發者提供的源代碼,通過編譯器,匯編器,連接器轉換成可以直接在操作系統上運行的二進制指令的過程。C/C++源碼的編譯通常包括以下幾個過程:

    預處理(Preprocessing)
    編譯(Compilation)
    匯編(Assembly)
    鏈接(Linking)

gcc編譯器的大體過程如下圖所示:程序包管理之編譯安裝apache

Linux中源碼編譯前我們首先需要依賴環境的支持,即編譯工具、以及各個被依賴的程序包的開發組件:

1.編譯的工具包組有:

Development tools

Server Platform Development

Desktop Platform Development

Debug Tools

2.被依賴的程序包的開發組件:

(1)編譯安裝被依賴的程序;

(2)安裝相關程序的名稱中包含devel的子包;

由于源碼包中的源碼文件存放在多個文件中,彼此之間存在著依賴關系,所以我們需要項目管理工具,相對于C/C++我們通常使用的是GNU make。項目構建工具會根據配置文件(makefile)中定義的次序對源碼文件進行編譯。

編譯安裝的過程如下:

1.運行configure腳本

configure腳本的應用:

–prefix:指定默認安裝路徑

–sysconfdir:指定配置文件安裝路徑

–with-CAPABLILITY:依賴的程序包

–without-CAPABILITY:不依賴的程序包

–enable-FEATURE:啟用某個特性

–disable:禁用某個特性

2.運行make命令,完成項目構建

3.運行makeinstall命令,完成安裝

我們以Apache為例進行演示:

程序包管理之編譯安裝apache 程序包管理之編譯安裝apache程序包管理之編譯安裝apache

經過上述三步,編譯安裝的基本步驟已經完成,下面我們需要將編譯生成的二進制程序文件路徑,庫文件路徑,以及頭文件,man幫助手冊路徑寫入系統的環境變量當中: 1).在/etc/profile.d/下建立一個以.sh結尾的文件將/usr/local/apache2/bin路徑添加進去。 程序包管理之編譯安裝apache

2).在/etc/ld.so.conf.d下面建立一個以.conf結尾的的文件將庫文件路徑寫進去。并執行ldconfig命令,重新生成庫映射緩存ld.so.conf. 程序包管理之編譯安裝apache

[root@localhost ~]# ldconfig

3).將頭文件生成軟連接到/usr/include中 程序包管理之編譯安裝apache 4).將man手冊路徑添加到/etc/man.conf當中(CetenOS 6.8) 程序包管理之編譯安裝apache

測試安裝是否成功:

[root@localhost include]# apachectl start
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[root@localhost include]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address   Foreign Address State  
tcp0  0 0.0.0.0:111 0.0.0.0:*   LISTEN  
tcp0  0 0.0.0.0:22  0.0.0.0:*   LISTEN  
tcp0  0 0.0.0.0:38326   0.0.0.0:*   LISTEN  
tcp0  0 127.0.0.1:631   0.0.0.0:*   LISTEN  
tcp0  0 127.0.0.1:250.0.0.0:*   LISTEN  
tcp0 64 10.1.250.133:22 10.1.250.21:2519ESTABLISHED 
tcp0  0 :::58111:::*LISTEN  
tcp0  0 :::111  :::*LISTEN  
tcp0  0 :::80   :::*LISTEN  #80端口已經出現
tcp0  0 :::22   :::*LISTEN  
tcp0  0 ::1:631 :::*LISTEN  
tcp0  0 ::1:25  :::*LISTEN

關閉防火墻:

[root@localhost include]# iptables -F

用links瀏覽器測試:

程序包管理之編譯安裝apache

顯示It works表明安裝成功,并且服務已經開啟。

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

(0)
YOUNGYOUNG
上一篇 2016-08-24 21:22
下一篇 2016-08-24 21:23

相關推薦

  • 腳本實現httpd創建虛擬主機

    概述 本文使用腳本實現基于主機名的虛擬主機按需創建: 腳本可接受參數,提供獨立站點目錄; 生成獨立站點首頁; 腳本可接受參數,參數虛擬主機名稱; 每虛擬使用單獨的配置文件; 腳本可接受參數,參數虛擬主機名稱; 環境 系統基于CentOS7.2,并通過yum安裝httpd 2.4.6 建議關閉防火墻和selinux。 演示   客戶機將域名解析寫入/…

    Linux干貨 2016-10-08
  • N27_第二周作業

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關演示。 ?A、copy命令 ? ? ?? a、 單元復制:cp [OPTION]… [-T] SOURCE DEST 1、? 如果dest不存在:則事先創建此文件,并復制源文件的數據流至dest中; [root@localhost /]# ls -l /tmp total 0 [r…

    2017-09-07
  • Linux的哲學思想

    Linux的哲學思想 一切皆文件 不管是普通的文件、目錄,還是跟硬件相關的字符設備、塊設備、套接字等在Linux中都被當作文件來進行統一的操作管理。 單個程序完成簡單的功能,復雜的功能由多個程序組合而成 單個程序只實現簡單功能,保證了其高效運行,而復雜功能由多個簡單程序組合而成,也能保證一定的高效性。 盡量避免與用戶交互 程序從啟動開始到結束不需要用戶參與,…

    Linux干貨 2017-07-02
  • python裝飾器詳解

    python之裝飾器詳解 一、裝飾器定義 定義一個函數,可以接受一個函數作為參數,對該函數進行一些包裝,不改變函數的本身。 二、裝飾器四部曲(分解) 1、函數可賦值給變量。若賦值給變量的是調用后的函數,變量的值就是return的返回值。 切記:函數賦值給變量,只看return的值。分清楚函數是處于調用狀態還是未被調用狀態。若函數沒有寫return,默認ret…

    2017-02-08
  • 文件查找

        Linux上的所有資源都以文件的形式存在,如果是手工查找的話,勢必會浪費太多的時間,這里推薦倆款大家用于查找的工具。 文件查找    文件查找經常用到的倆款軟件,locate和find    二者區別 locate:1) 非實時查找;    &nbsp…

    Linux干貨 2016-08-18
  • 22期第十二周課堂練習

    1、請描述一次完整的http請求處理過程; (1)建立和處理連接:接收請求或者拒絕請求; (2)接收請求:接收來自于網絡上的主機請求報文中對某特定的資源的一次請求的過程; (3)處理請求:對請求報文進行解析,獲取客戶端請求的資源及請求方法等相關信息 (4)訪問資源:獲取請求報文中請求的資源 (5)構建響應報文; (6)發送響應報文; (7)記錄日志; 2、h…

    Linux干貨 2016-12-26
欧美性久久久久