首頁 > 軟體

Linux教學:rpm包管理器,yum工具,編譯安裝從入門到精通

2020-06-16 16:52:57

Linux軟體包管理之--rpm
網路作業系統都是架構在底層硬體之上的,目前核心有Linux系列,UNIX系類,Windows系列等,再向上是程式庫呼叫,程式的實現方式在不同的作業系統中實現的方式也不盡相同。作業系統向外輸出供使用者使用的介面稱之為API(Application Programming Interface),向使用者輸出統一的呼叫介面,這樣當一個檔案使用呼叫介面後就可以在不同的作業系統中按照統一的格式輸入輸出了。(如下圖)
ABI(Application Binary Interface)即應用二進位制介面,我們知道Windows和Linux系統是不相容的,但是如果我們想實現不同系統的相同應用,就需要使用庫級別的虛擬化,在Linux作業系統中有WINE系統,在Windows作業系統中有Cywin系統,都可以實現在各自的作業系統中執行非各自作業系統原生的應用程式,從而實現了作業系統應用的擴充套件。
系統級的開發語言有C、C++,而應用級的開發語言有JavaPython、php、perl以及ruby等。其中二進位制應用程式的組成部分包含:(1)二進位制檔案(2)庫檔案(3)組態檔(4)幫助檔案。
在程式包的管理器中現行的有Debian發行版下的deb、dpt管理器等,RedHat發行版下有rpm管理器。

RPM是RPM Package Manager(RPM軟體包管理器)的縮寫,這一檔案格式名稱雖然打上了RedHat的標誌,但是其原始設計理念是開放的,現在包括OpenLinux、SUSE以及Turbo Linux等的Linux發行版都有採用,可以算是公認的行業標準了。RPM是一種用於網際網路下載包的打包及安裝工具,它包含在某些Linux發行版中。它生成具有.RPM擴充套件名的檔案。
RPM主要功能:
*安裝、解除安裝、升級和管理軟體
*元件查詢功能
*驗證功能
*軟體包GPG(來源合法性)和MD5數位簽章(完整性)的倒入、驗證和發布
*軟體包依賴處理
*選擇安裝
*網路遠端安裝功能
什麼是程式包管理器:
將編譯好的應用程式的各個組成檔案打包稱一個或幾個程式包檔案,從而更方便地實現程式包的安裝、升級、解除安裝和查詢等管理操作。主要包含兩個部分,首先是程式包的組成清單,這是每個包獨有的,包含檔案清單,安裝或解除安裝時執行的指令碼;其次是公共的資料庫,主要有程式包的名稱及版本,依賴關係,功能說明和安裝生成的各檔案的檔案路徑及校驗碼資訊。
由於程式包之間會存在依賴關係(例如三個檔案:X,Y,Z),所以程式包管理器需要前端管理工具來解決關聯檔案之間的依賴關係。
  yum:是rpm包管理器的前端管理工具
  apt-get:deb包管理器的前端管理工具
  zypper:suse上的rpm前端管理工具
  dnf:Fedora 22+rpm包管理器前端管理工具
軟體原始碼命名格式:
原始碼:name-VERSION.tar.gz
  VERSION:major.minor.release
  major:主版本號
  minor:次版本號
  release:發行號
RPM包的命名格式:
RPM包的命名格式是依賴並延續軟體原始碼的命名格式的,格式如下
RPM包:name-VERSION-ARCH.rpm
  VERSION:major.minor.release
  ARCH:release.os.arch
範例:
zlib-1.2.7-13.el7.i686.rpm
RPM包的檔案組織結構:
由於一個應用程式可能包含數十種不同的功能,這個時候如果對所有功能都進行RPM包統一格式的製作,對大部分的使用者來說都是不合適的,這個時候需要將應用程式的功能進行分類,製作成可以由使用者自由客製化的拆包模式來進行軟體的安裝,如下所示。
testapp:拆包
  testapp-VERSION-ARCH.rpm:主包
  testapp-devel-VERSION-ARCH.rpm:支包1
  testapp-testing-VERSION-ARCH.rpm:支包2
範例:
yum-langpacks-0.4.2-3.el.noarch.rpm:主包
yum-plugin-aliases-1.1.31-29.el7.noarch.rpm:支包
獲取程式包的途徑:
(1)系統發行版的光碟或官方伺服器:
   CentOS映象:
    http://mirrors.aliyun.com
    http://mirrors.sohu.com
    http://mirrors.163.com
(2)專案官方站點
(3)第三方組織:
   Fedora-EPEL社群
   專業搜尋引擎:
    http://pkgs.org
    http://rpmfind.net
    http://rpm.pbone.net
CentOS系統上rpm命令管理程式包:
安裝、解除安裝、升級、查詢、校驗、資料庫維護。
(1)安裝:
rpm {-i|--install} [install-options] PACKAGE_FILE
 -v:verbose
 -vv:顯示更詳細的安裝資訊
 -h:以“#”顯示程式包管理執行進度,每個“#”表示2%的進度
rpm -ivh PACKAGE_FILE
 --test:測試安裝,但不真正執行安裝過程,屬於dry run模式
 --nodeps:忽略依賴關係
 --replacepkgs:重新安裝
 --nosignature:不檢查來源合法性
 --nodigest:不檢查包完整性
 --noscipts:不執行程式包指令碼片段
  %pre:安裝前指令碼:--nopre
  %post:安裝後指令碼:--nopost
  %preun:解除安裝前指令碼:--nopreun
  %postun:解除安裝後指令碼:--nopostun

範例:
#rpm -ivh --nodeps php-fpm-5.4.16-23.el7_0.3.x86_64.rpm
解釋:忽略依賴關係安裝軟體php-fpm
#rpm -ivh --replacepkgs zsh-5.0.2-7.el7.x86.64.rpm
解釋:重新安裝一次軟體zsh
#rpm -ivh --replacepkgs --nodigest --nosignature zsh-5.0.2-7.el7.x86.64.rpm
解釋:digest即完整性,signature即來源合法性,表示安裝時不檢查zsh安裝包的完整性和來源合法性
(2)升級:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE
rpm {-F|--freshen} [install-options] PACKAGE_FILE
 upgrade:安裝有舊版程式包,則“升級”;如果不存在舊版程式包,則“安裝”
 freshen:安裝有舊版程式包,則“升級”;如果不存在舊版程式包,則不執行升級操作
rpm -Uvh PACKAGE_FILE
rpm -Fvh PACKAGE_FILE
 --oldpackage:降級
 --force:強行升級
注意:
(1)不要對核心做升級操作,Linux支援多核心版本並存,因此直接安裝新版本核心即可
(2)如果原程式包的組態檔安裝後曾被修改,升級時新版本提供的同一個組態檔並不會直接覆蓋老版本的組態檔,而是把新版本的檔案重新命名(FILENAME.rpmnew)後保留
(3)查詢:
rpm {-q|--query} [select-options] [query-options]
[select-options]
 -q:查詢包
 -a:所有包
 -f:檢視指定的檔案由哪個程式包安裝生成
 -p /PATH/TO/PACKAGE_FILE:針對尚未安裝的程式包檔案查詢其安裝檔案資訊
 --whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供
 --whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
[query-options]
 --changelog:查詢rpm包的更新紀錄檔
 -c:查詢程式的組態檔
 -d:查詢程式的文件
 -i:information
 -L:列出許可證資訊
 -l:檢視指定的程式包安裝後生成的所有檔案
 --scripts:程式包自帶的指令碼片段
 -R:查詢指定的程式包所依賴的CAPABILITY
 --provides:列出指定程式包所提供的CAPABILITY
用法小結:
(1)-qi PACKAGE,-qf FILE,-qc PACKAGE,-ql PACKAGE,-qd PACKAGE
(2)-qpi PACKAGE_FILE,-qpl PACKAGE_FILE
(3)-qa
範例:
#rpm -qa | grep "php"
解釋:查詢所有rpm包,並找出“php”開頭的軟體包
#rpm -qf /etc/issue
解釋:查詢/etc/issue檔案是由哪個程式包安裝生成
#rpm -q --whatrequires /bin/cat
解釋:查詢/bin/cat被哪些程式包依賴
#rpm -q --whatprovides /bin/cat
解釋:查詢/bin/cat是由哪個包所提供
#rpm -q --changelog zsh
解釋:查詢zsh的安裝更新紀錄檔
#rpm -q -c zsh
解釋:查詢zsh包含的組態檔
#rpm -q --conflicts zsh
解釋:列出zsh包和哪些檔案會發生衝突
#rpm -q -d zsh
解釋:列出zsh包下的所有的手冊文件
#rpm -qi zsh
解釋:列出包的相關簡要資訊,包含名稱,版本和描述資訊
#rpm -ql zsh
解釋:列出zsh安裝後生成的所有檔案的列表
#rpm -q --scripts zsh
解釋:列出所有程式包含的指令碼
#rpm -q -R zsh
解釋:列出zsh程式包所依賴的CAPABILITY
#rpm -ql -p php-common-5.4.16-23.el7_0.3.x86_64.rpm
解釋:如果程式php-common沒有安裝,那麼使用-p可以查詢其安裝後可以生成的檔案的資訊
(4)解除安裝:
rpm {e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME
範例:
#rpm -e zsh
解釋:解除安裝zsh
(5)校驗:
rpm {-V|--verify} [select-options] [verify-options]
校驗資訊含義:
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
範例:
#rpm -V zsh
解釋:校驗zsh哪些地方有發生改變。
包來源合法性驗正及完整性驗正:
 完整性驗正:SHA256
 來源合法性驗正:RSA
公鑰加密:
 對稱加密:加密,解密使用同一個金鑰
 非對稱加密:金鑰是成對的
 public key:公鑰,公開所有人
 secret key:私鑰,不能公開
匯入所需要的公鑰:
CentOS 7發行版光碟提供的密??檔案:RPM-GPG-KEY-CentOS-7
#rpm --import RPM-GPG-KEY-CentOS-7
(6)資料庫重建:
rpm {--initdb|--rebuilddb}
 initdb:初始化,如果事先不存在資料庫,則新建之;否則,不執行任何操作
 rebuilddb:重建,無論當前存在與否,直接重新建立資料庫
總結:
以上這些命令就是RPM包管理器的所有基礎的管理功能,後面的所有服務的設定過程,首先都需要建立使用者並安裝程式包,這是兩個經常用到的操作,其中安裝程式包部分比重會更大,所以這部分的知識大家一定要做到熟練運用。
Linux程式包管理之--yum
rpm是Linux的一種軟體包名稱,以.rpm結尾,安裝的時候語法為:rpm -ivh,rpm報道安裝有一個很大的缺點就是檔案的關聯性太大,有時候裝一個軟體要安裝很多其他的軟體包,很麻煩,所以就有了yum前端管理工具的誕生,它可以徹底解決這個軟體依賴的關聯性問題,很方便,只要設定兩個檔案即可安裝。簡單的說,rpm只能安裝已經下載到本地機器上的rpm包,yum能線上下載並安裝rpm包,能更新系統,並且還能自動處理包與包之間的依賴問題,這是yum前端管理工具解決的重要問題。
yum是rpm軟體包管理器的前端管理工具。yum是一個在Fedora和RedHat以及CentOS的shell前端軟體包管理器。基於rpm包管理,能夠從指定的伺服器自動下載rpm包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無需繁瑣地一次次下載、安裝。

在網路中會有一些檔案伺服器,在伺服器上會有一塊儲存空間,用來存放使用者所需的所有rpm包檔案,然後這個檔案服務系統會通過一個檔案共用服務的介面輸出到外部主機,這個檔案服務我們稱之為yum倉庫。我們一般使用者所使用的是Linux主機,本身支援rpm包管理器的基本功能,同時還支援yum工具的使用。原生的yum通過一個組態檔決定自己要到網路中哪個伺服器去下載哪些軟體包,組態檔會告訴我們主機上的yum工具通過哪個地址能找到所需的檔案伺服器,yum在接收到安裝程式的指令後會嘗試著通過設定指令去找遠端的伺服器主機。遠端伺服器會提供一個自身資料倉儲的後設資料描述資訊,用來大體記錄自身資訊,這時Linux主機只會將容量較小的後設資料下載至原生的快取cache當中,yum用戶端就會分析安裝的指令中是否有使用者請求安裝的包名,如果有話就會像yum倉庫嘗試讀取下載這個包,同時還會通過組態檔去分析軟體包之間的依賴關係,會分析得出需要但尚未安裝的軟體包的名稱,並羅列出來,然後再去向yum倉庫請求連線下載所需的程式包。下載完成後會將軟體包快取在本地cache當中,在本地會去執行類似rpm的命令操作,安裝時會自動先去安裝有依賴關係的檔案,安裝完成後會自動清除快取中的檔案以節約空間,但是後設資料不會刪除,因為安裝包檔案在一個系統中很少會多次安裝,但是後設資料檔案會多次的用來對比分析等操作,所以會留下後設資料檔案。有時候我們的用戶端在進行yum命令安裝的時候,連線不上網路上的yum倉庫伺服器,這個時候就需要我們自己定義策略來判斷是否使用已過期或者無法判斷是否過期的rpm包檔案。所以說yum用戶端需要連線一個遠端的yum倉庫,到倉庫中下載後設資料檔案,在本地支援yum完成程式包的安裝或者升級操作,如果還需要其他依賴的程式包時,yum還需要啟動一個檔案伺服器的用戶端到檔案伺服器去下載所需要的檔案,所以我們說yum是C/S架構,它需要一個檔案存取的伺服器,完成對軟體包的提供和安裝管理。
YUM:Yellowdog Udatte Modifier
儲存了眾多rpm包,以及包的相關的後設資料檔案(放置於特定目錄下:repodata)
檔案伺服器:
 ftp://(ftp伺服器提供檔案服務)
 http://(http伺服器提供檔案服務)
 nfs://(Linux系統中nfs檔案系統提供服務)
 file:///(本地計算機提供檔案服務)
yum用戶端:
 組態檔:
  /etc/yum.conf:為所有倉庫提供公共設定
  /etc/yum.repos.d/*.repo:為倉庫的指向提供設定
 倉庫指向的定義:
  [repositoryID]
  name=Some name for this repository(倉庫功能的完整的描述)
  baseurl=url://path/to/repository/(指向了倉庫的存取路徑)
  enabled={1|0}(是否啟用此倉庫,預設為1,啟用此倉庫)
  gpgcheck={1|0}(程式包安裝前校驗其完整性和來源合法性)
  gpgkey=URL(指明能存取金鑰檔案的存取路徑)
  enablegroup={1|0}(是否使用基於組來批次管理程式包)
  failovermethod={roundrobin|priority}(輪詢|優先順序)
   預設為:roundrobin,意為隨機挑選
  cost=1000
   預設為1000

範例:
#vim centos-local.repo
[base]
name=Base Repo on 198.18.0.1
baseurl=http://198.18.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/
gpgcheck=0
[epel]
name=Fedora EPEL for EL6 x86_64
baseurl=http://198.18.0.1/frdora-epel/6/x86_64
gpgcheck=0

yum命令的用法:yum [options] [command] [package]
 顯示倉庫列表:
  repolist [all|enabled|disabled]
 顯示程式包:
  list
  #yum list [all | glob_exp1] [glob_exp2]
  #yum list {available|installed|updates} [glob_exp1]
 安裝程式包:
  install package1 [package2]
  reinstall package1 [package2](重新安裝)
 升級程式包:
  update [package1] [package2]
  downgrade package1 [package2](降級)
 檢查可用升級:
  check-update
 解除安裝程式包:
  remove | erase package1 [package2]
 檢視程式包的簡要資訊:(類似於rpm -qi)
  info package
 檢視指定的特性(可以是某檔案)是由哪個程式包所提供:
  provides | whatprovides feature1 [feature2]
 清理本地快取:
  clean [ package | metadata | expire-cache | rpmdb | plugins | all ]
  (程式包|後設資料|過期快取|rpm資料庫資料|外掛|所有)
 構建快取:
  makecache
 根據關鍵字搜尋相關資訊:
  search string1 [string2](以指定的關鍵字搜尋程式包名及summary資訊)
 檢視指定包所依賴的capabilities:
  deplist [package1] [package2]
 檢視yum事務歷史:
  history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
 安裝及升級本地程式包:
  localinstall rpmfile1 [rpmfile2]
  (maintained for legacy reasons only - use install)
  localupdate rpmfile1 [rpmfile2]
  (maintained for legacy reasons only - use update)
 包組管理的相關命令:
  groupinstall group1 [group2](安裝包組)
  groupupdate group1 [group2](升級包組)
  grouplist [hidden] [groupwildcard](列出包組的列表)
  groupremove group1 [group2](移除包組)
  groupinfo group1(檢視包組的相關資訊)
 yum源的組態檔要求指明了做版本精確匹配的,yum源倉庫的指向必須升級,不能降級,所有CentOS 6.0可以指向CentOS6.1的源,反之不行。
範例:
#less CentOS-Base.repo
解釋:CentOS自行提供的定義repo倉庫的檔案
#rpm -q yum
解釋:查詢yum的安裝資訊
#rpm -qc yum
解釋:查詢yum的組態檔的資訊
#yum repolist
解釋:列出系統中所有可用的倉庫
#yum install php-common
解釋:安裝php-common檔案
#yum remove cpp
解釋:刪除cpp程式包
#yum provides gcc
解釋:檢視gcc程式是由哪個程式包所提供
#yum search bash
解釋:搜尋包含bash的資訊有哪些
#yum deplist gcc
解釋:檢視gcc包所依賴的capabilities能力
#yum history
解釋:查詢過去安裝、升級、解除安裝等事務的操作歷史記錄
#yum history summary
解釋:檢視安裝歷史的摘要資訊
#yum grouplist
解釋:顯示包組資訊
#yum groupinstall "Development Tools"
解釋:安裝程式開發工具的包組“Development Tools”
安裝範例:
#mount -r /dev/cdrom /media/cdrom
#cd /etc/yum.repos.d/
#vim local.repo
[base]
name=CentOS 7 Release 7.1.1503
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
#yum repolist
解釋:檢視系統中所有可用的yum倉庫
#yum list all
解釋:檢視所有的程式包
#yum grouplist
解釋:檢視包組資訊
yum命令的用法之yum倉庫:
如何使用光碟當作本地yum倉庫:
 (1)掛載光碟至某目錄,例如/media/cdrom
  #mount -r -t iso9660 /dev/cdrom /media/cdrom
 (2)建立組態檔
  [CentOS7]
  name=CentOS 7 Release 7.1.1503
  baseurl=file:///media/cdrom
  gpgcheck=0
  enabled=1
yum的命令列選項:
 --nogpgcheck:禁止進行gpg的檢查
 -y:自動回答為“yes”
 -q:靜默模式
 --disablerepo=repoidglob:臨時禁用此處指定的repo
 --enablerepo=repoidglob:臨時啟用此處指定的repo
 --noplugins:禁用所有外掛
yum的repo組態檔中可用的變數:
 $releasever:當前OS的發行版的主版本號
 $arch:平台
 $basearch:基礎平台
 $YUM0-$YUM9
 http://mirrors.linuxidc.com/centos/$releasever/$basearch/os
建立yum倉庫:
createrepo [options] <directory>
 -u --baseurl:表示可選的,指明baseurl
 -o --outputdir:表示輸出資料到什麼地方去
 -x --excludes:表示把哪些包排除了
 -i --pkglist:指明對哪些包建立
 -g --groupfile:指明有哪些包組的
 --basedir:能獲取repodata的basedir,預設是當前的工作目錄
Linux軟體包管理之--編譯安裝
testapp-VERSION-release.src.rpm(原始碼格式的rpm包檔案)-->安裝後,使用rpmbuild命令製作成二進位制格式的rpm包,而後再安裝:
 原始碼-->預處理-->編譯(gcc)-->組合-->連結-->執行
原始碼組織格式:(如果是程式的開發者很好理解編譯安裝程式的順序,但是對於一般的使用者來說並不能夠直接理解編譯程式的具體步驟)
 多檔案:檔案中的程式碼之間,很可能存在跨檔案依賴關係
 C,C++:有一個非常著名的專案管理工具make,其組態檔為makefile,Makefile.in檔案是構建模板,configure是檔案生成工具(configure-->Makefile.in-->makefile)
 java:maven
編譯安裝三部曲:
【1】./configure
  (1)通過選項傳遞引數,指定啟用特性、安裝路徑等,執行時會參考使用者的指定以及Makefile.in檔案生成makefile
  (2)檢查各啟用特性所依賴到的外部環境
【2】make
  根據makefile檔案,構建應用程式
【3】make install
  將編譯完成的檔案copy到對應的目錄檔案當中
開發工具:
 autoconf:用來生成configure檔案
 automake:用來生成Makefile.in檔案
 建議:安裝前先檢視INSTALL文件,如果沒有就找README檔案

開源程式原始碼的獲取路徑:
官方自建站點:
  Apache.org(ASF)
  mariadb.org
程式碼託管站點:
  SourceForge
  Github.com
  code.google.com
工具C/C++:gcc(GNU C Complier)
【A】編譯C程式程式碼:
 前提:提供開發工具及開發環境
  開發工具:make,gcc等
  開發環境:開發庫,標頭檔案
  glibc:標準庫
  通過“包組”提供開發元件
   CentOS 6:“Development Tools”,“Server Platform Development”
 第一步:configure指令碼
  選項:指定安裝位置,指定啟用的特性
  --help:獲取其檔案使用的選項
  選項分類:
   安裝路徑設定:
     --prefix=/PATH/TO/SOMEWHERE:指定預設安裝位置:預設為/usr/local/
     --sysconfdir=/PATH/TO/SOMEWHERE:組態檔安裝位置
   System types:系統型別
   Optional Features:可選特性
     --disable-FEATURE:預設啟用的,我們不想啟用,可以使用disable選項
     --enable-FEATURE[=ARG]:預設沒有啟用,我們把它啟用,那麼使用的是enable選項
   Optioal Packages:可選包
     --with-PACKAGE[=ARG](依賴於某包)
     --without-PACKAGE(不依賴於某包)
 第二步:make
 第三步:make install
【B】安裝後的設定:
(1)匯出二進位制程式目錄至PATH環境變數中,修改PATH環境變數,以能夠識別此程式的二進位制檔案路徑
  編輯檔案/etc/profile.d/NAME.sh:
   export PATH=/PATH/TO/BIN:$PATH
(2)匯出庫檔案路徑:
  編輯/etc/ld.so.conf.d/NAME.conf:
   新增新的庫檔案所在目錄至此檔案中,在預設情況下系統搜尋檔案的路徑/lib、/usr/lib;
   想增添額外搜尋路徑,在/etc/ld.so.conf.d/中建立以.conf為字尾名的檔案,而後把要增添的路徑直接寫至此檔案
  讓系統重新生成快取:
   ldconfig [-v]
(3)匯出標頭檔案,輸出給系統:
  預設:/usr/include/
  基於連線的方式實現:
   ln -sv:建立軟連線,並且顯示建立過程
   eg.#ln -s /usr/local/tengine/include/ /usr/include/tengine
(4)匯出幫助手冊:
  編輯/etc/man.config檔案,新增一個MANPATH:
   #vim /etc/man.config
   MANPATH /usr/local/apache2/man
範例:
#yum install createrepo
解釋:可以建立出系統所需的repodata的檔案
#yum repolist
解釋:會自動獲取新的yum源
#yum install xen
解釋:安裝xen???序包
#gcc --version
解釋:查詢本機的gcc的版本
yum倉庫建立範例:
#!mkdir -p /yum/repo
解釋:“!”表示在本地建立一個目錄/yum/repo
#lcd /yum/repo
解釋:進入到原生的yum目錄當中
#mget *.rpm
解釋:從網路的yum倉庫中獲取所有以rpm結尾的檔案
#createrepo ./
解釋:建立當前目錄的repodata
#vim centos-local.repo
[xen4centos]
name=Xen 4 CentOS 6
baseurl=file:///yum/repo/
gpgcheck=0
使用yum安裝httpd服務:
#yum groupinstall "Server Platform Development" -y
解釋:安裝包組“erver Platform Development”,並且安裝時自動回答為yes
#cd httpd-2.2.29
解釋:進入到httpd的目錄
#./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2
解釋:程式的安裝路徑是/usr/local/apache2,組態檔的安裝路徑是/etc/httpd2
#make
解釋:執行編譯操作
#make install
解釋:執行install複製安裝的操作
#cd /usr/local/apache2/
解釋:進入到apache2的目錄
#ls bin
解釋:顯示bin目錄下的資訊
#bin/apachectl start
解釋:啟動apache伺服器
#netstat -tan
解釋:檢視系統中有哪些監聽埠是開啟的,其中-t是建立tcp連線,-n表示以數位的方式顯示,-a (all)顯示所有選項
#apachectl stop
解釋:將apache伺服器停止

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-04/151915.htm


IT145.com E-mail:sddin#qq.com