nginx httpd 編譯安裝

        軟件包常見的安裝方式主要分爲:1,使用make等工具對源碼進行編譯安裝.2使用rpm管理工具安裝下載好的軟件包.3使用yum工具傻瓜是安裝.

軟件包的組成部分:
 

系統默認二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
      #假如:安裝nginx二進制程序, /usr/local/nginx/
庫文件:系統共享庫文件/lib, /usr/lib, /lib64, /usr/lib64, /usr/local/lib, /usr/local/lib64
      #假如:安裝nginx軟件單獨使用的庫, /usr/local/nginx/
      #開發用頭文件,運行用運行庫
      #/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf  修改系統查找庫文件的路徑
      #ldd命令   ldd `which cat` 查看cat命令所依賴的共享庫  
配置文件:/etc
幫助文件: man文件, info文件, README, INSTALL, ChangeLog
      #需要注意的是COMMAND --help是寫在程序本身輸出的,程序的組成部分,

 

 

 一,編譯安裝:通過下載開發者的源碼包對源碼進行定製功能的安裝方式.這種安裝方式優點可以避免安裝一些不需要的功能,以及根據自己的需求對軟件進行一些個性化設置.缺點也很明顯,不能自動解決依賴關係,對初學Linux者難度較高,下面就以安裝nginx和httpd爲例來複習一下安裝中遇到的一些問題:

 

    (一)nginx的編譯安裝:

        1,首先安裝編譯安裝中必須使用到的自動編譯工具autoconf,automake,gcc等;

autoconf: 檢查編譯環境是否編譯需求,並定義當前程序編譯時啓用哪個特性或功能,以及安裝路徑的定義等等;會根據Makefile.in文件生成makefile文件
automake: Makefile.in文件,   用於結合configure腳本生成makefile文件   makefile文件是make命令的配置文件

gcc:c語言程序編譯器

wKioL1QJ2puiBp3dAAJmaYlxdKQ020.jpg

 

        2,安裝nginx所依賴的軟件,通過yum安裝在系統中生成了信息可以解決安裝時nginx所需要的依賴關係;

wKioL1QJ2yLRczvoAABogZyOZwI738.jpg

 

        3,創建nginx用戶和組,使用系統用戶和組

wKioL1QJ24PAsQOsAABCw-zW3Qw843.jpg

 

        4,找到nginx官網下載源碼包,我這裏使用的是國內鏡像站

wKiom1QJ27TSIBU-AABIRg0pzKM716.jpg

 

        5,解壓源碼包,運行安裝腳本,在這裏可以根據自己的需求進行定製,爲了演示效果這裏使用了--prefix指定軟件路徑 --user屬主 --group屬組 --error錯誤日誌 --ssl模塊ssl等,詳細參考官方的說明文檔可以定製更加個性化功能的nginx

wKioL1QJ3APg0wyTAAFoOMoxlqQ491.jpg

 

        6,創建error.log等文件

wKiom1QJ3VCBVMYmAACBFx4a3BU619.jpg

 

        7,找到nginx執行文件並啓動

wKioL1QJ3Y-R1wcoAABSmyVIoSI114.jpg

 

        到這裏安裝文件就基本完成了,需要總結的是在編譯安裝中要留意輸出的信息提示,最好截圖備份以免時間久了以後忘記安裝信息造成配置錯誤wKioL1QJ3n-yfwjFAAH0T8v7F78926.jpg

 

 

    (二)axel和httpd的編譯安裝

        1,axel是一個非常強大,被稱爲Linux版"迅雷",所以先安裝了一個axel.因爲是做實驗,所以就默認安裝了.其中遇到一個問題:wget去獲取https網站的時候被拒絕,因爲今天不是討論wget.所以簡單記住加上--no-check-certificae --http-user=username --http-password=password這幾個選項參數就可以解決!

wKiom1QJ4CzgT0owAAUfQFRZ_rI914.jpg

 

         2試用axelwKiom1QJ5nrBgHSxAABNIQ5WbPk330.jpg

 

         3,官方網站有httpd安裝環境的說明,安裝httpd之前由於需要apr和apr-util支持,這裏提供apr的下載鏈接,比較坑的是我使用yum安裝的apr-1.3.9在安裝過程中仍然提示缺少apr;wKiom1QJ4afQfLCgAA0lZQn5mGQ292.jpg

 

         4,下載了apr1.5.1安裝

wKiom1QJ40iyv1eJAACmKW_6g8E777.jpg

 

         5,apr-util需要注意的必須要手動指定apr的安裝位置,不然會提示安裝不成功,

wKioL1QJ47ayZ_DNAAC7TOvMl68792.jpg    wKiom1QJ5S7SuQKZAAAumiIARnI657.jpg

 

        6,又是好大一個坑,在安裝完apr和apr-util以後編譯httpd有提示"libtoolT"的錯誤,通過搜索得知要修改apr安裝腳本configure裏的代碼,刪除重裝一次apr和apr-util

wKiom1QJ5e_hPFHwAALQi-22yQk723.jpg

 

        7,終於可以成功執行了,還是需要手動指定--with-apr=/usr/local/apr/bin/apr-1-config,不然還是會提示找不到apr

wKioL1QJ5tvAU970AACAGy-XZC0829.jpg

        

 二,Rpm主要是對已經編譯過的安裝包進行安裝和管理,主要功能有:安裝,卸載,查詢,升級,校驗,數據庫管理.

        1,安裝

rpm -i /path/to/rpm_package ...  #安裝指定路徑下的包,也可以用--install
-v        #顯示詳細信息,也可以加-vv和-vvv
-h        #顯示安裝進度
--test    #僅測試,不執行安裝. 
--nodeps  #忽略依賴關係
-ivh      #也可以用--replacepkgs 原來的配置文件不會被覆蓋,新安裝的配置文件將會重命名爲以.rpmnew爲後綴的文件;

         2,卸載

rpm -e package_name #如果卸載被其它程序所依賴的包:
--nodeps   #忽略依賴關係

 

         3,查詢

rpm -qa                        #查詢所有已經安裝的包 
rpm -qi package_name           #查詢包的描述信息
rpm -q package_name            #查詢某單個包是否安裝
rpm -ql package_name           #查詢包安裝之後在當前系統生成文件列表
rpm -qf /path/to/somefile      #查詢某文件是哪個包安裝生成的
rpm -qd package_name           #查詢包安裝後生成的幫助文檔  
rpm -qc package_name           #查詢包安裝後生成的配置文件
rpm -qpl /path/to/package_file #查詢安裝後會生成的文件列表
rpm -qpi /path/to/package_file #查詢其簡單描述信息 
rpm -q --scripts package_name  #查詢包相關的腳本,
                    腳本有四類:preinstall #安裝前腳本
                               postinstall #安裝後腳本 
                               preuninstall #卸載前腳本
                               postuninstall #卸載後腳本

         4,升級

rpm -U                                 #安裝並升級
rpm -F                                 #如果未安裝軟件包則不升級
rpm {-Uvh|-Fvh} /path/to/package_file  #常用的組合方式
--force                                #強行安裝   
--nodeps                               #忽略依賴關係

         5,校驗:檢查包安裝後生成的文件是否被修改過;

                rpm -V package_name

S file Size differs                       #文件大小
M Mode differs (includes permissions and file type) #權限
5 digest (formerly MD5 sum) differs       #效驗碼
D Device major/minor number mismatch      #設備號
L readLink(2) path mismatch               #路徑
U User ownership differs                  #屬主
G Group ownership differs                 #屬組
T mTime differs                           #時間戳
P caPabilities differ                     #提供的能力

         6,檢驗來源合法性和軟件包完整性

rpm --import /path/to/gpg-key-file #導入製作者的gpg公鑰
rpm -K /path/to/package_file       #檢查gpg公鑰
--nosignature                      #不檢查來源合法性  
--nodigest                         #不檢查完整性

         7,rpm數據庫

rpm --initdb         #初始化,如果事先不存在一個數據庫,則新建
rpm --rebuilddb      #重建,直接重建數據庫,會覆蓋原有的庫

 

 三,程序包管理器的前端工具:yum.通過已知的文件服務器共享rpm包,自動解決軟件包之間依賴關係進行安裝的軟件包管理工具.ftp, http, nfs, file四種支持的文件服務器.要使用yum管理應用程序,首先得配置其可用的y軟件包倉庫,保存在配置文件中 /etc/yum.conf主配置文件和 /etc/yum.repos.d/*.repo各不同倉庫配置文件.

            倉庫配置文件格式

[repo_ID]
name=            #以String字段顯示倉庫名稱
baseurl=         #倉庫的訪問路徑
enabled={1|0}    #倉庫是否啓用啓用爲1,禁用爲2
gpgcheck={1|0}   #是否啓動gpg檢查
gpgkey=          #公鑰文件(可以在本地,也可是服務器端路徑)
cost=            #定義此倉庫開銷,默認爲1000

             yum子命令

yum repolist [all|enabled|disabled] #列出所有可用yum repo
yum clean [all|packages|metadata|expire-cache|rpmdb|plugins] #清理緩存
yum list [all|installed|available]  #列出rpm包
yum info package_name               #列出包的描述信息
yum grouplist                       #列出所有包組
yum groupinfo "package_group_name"  #顯示包組信息
yum install package_name ...        #安裝指定的程序包
yum reinstall package_name ...      #重新安裝指定的程序包
yum check-update                    #檢查可升級的包
yum update package_name ...         #升級指定的程序包 要升級到指定版本:yum downgrade package_name          #降級
yum erase|remove  package_name ...  #卸載某個包,依賴於這個包的軟件也會被卸載
yum whatprovides|provides /path/to/somefile #查詢某文件是由哪個包安裝生成的
yum groupinstall "group_name"       #安裝指定的包組
yum groupremove "group_name"        #卸載指定的包組 
yum install /path/to/package_file   #安裝本地包,不指定路徑則到配置文件的倉庫中去尋找對應軟件包
--nogpgcheck   #手動禁止檢查來源及完整性
    yum install /tmp/zsh-2.3.1-2.el6.x86_64.rpm --nogpgcheck

 

提示:跟開發相關的包組使用

CentOS 5,常用的開發包組爲“Development Tools”和“Development Libraries”
CentOS 6,常用的開發包組爲“Development Tools”和“Server Platform Development”
Desktop Platform Development:有圖形程序時需安裝此組;
Development Tools
 

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