程序包管理rpm,yum用法解析及自動化部署apacheserver實(shí)戰(zhàn),讓您輕松擁有apache網(wǎng)站!

=

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比洪江管理區(qū)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式洪江管理區(qū)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋洪江管理區(qū)地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

 

程序包管理器rpm,yum用法及apache httpd服務(wù)的自動化部署

程序包管理?

通常來說在windows中將需要安裝的程序,程序名.exe下載下來然后點(diǎn)擊setup的安裝程序或直接點(diǎn)擊程序包,下一步下一步即可.而Linux中程序包不是exe,不同的主流發(fā)行版有著不同的程序包管理機(jī)制.比較主流的主要是rpm程序包管理器和deb程序包管理.

這里要區(qū)別:

包名(PACKAGEFILE): rpm包程序文件的全名
程序名(PACKAGE
NAME): rpm包不帶版本號的程序名,比如QQ而不是QQ-8.0.1.exe

現(xiàn)在先了解一下rpm的管理命令是如何"雙擊"安裝卸載管理rpm包的?

rpm:RPM Package Manager

-q  <程序名>   查看程序是否安裝,一般配合其他選項(xiàng)來查詢
-p  <包名>       一般用于查看未安裝程序的信息,配合其他選項(xiàng)使用可用于預(yù)覽程序
-V  <包名>     驗(yàn)證包的來源及安全性
-K             驗(yàn)證數(shù)字簽名(沒有檢測工具,默認(rèn)not ok)
-v             顯示詳細(xì)信息
-vv            顯示的更為詳細(xì)
-U | -F        升級程序包,會刪除舊程序包(慎用)
-R             檢查包依賴關(guān)系
-ivh           安裝rpm程序包
-e             卸載程序包
-qi            查看程序包的相關(guān)信息
-ql            安裝時生成的文件
-qf            查看某個文件來自于哪個程序
-qc            查看程序生成的配置文件
--replacepkgs  覆蓋安裝,已有的保留
--replacefiles 覆蓋某個已有的文件
--ql --script  查看安裝腳本
--script       查看包中的腳本文件 
--whatprovides "function" 查看某功能由那個軟件提供
--import       導(dǎo)入密鑰key

如何查看rpm中的文件?

rpm2cpio x.rpm | cpio -tv 預(yù)覽
rpm2cpio x.rpm | cpio -d  解包

rpm管理器會將程序,安裝時建立數(shù)據(jù)庫文件用來記錄程序的信息: /var/lib/rpm, 利用rpm 命令查詢已安裝的程序時的查找依據(jù).

rpm 如何獲得呢?

  1. 程序的官方網(wǎng)站獲得.

  2. 官方認(rèn)證的rpm源倉庫

  3. 第三方組織:fedora-epel源

  4. 幾個常用rpm包網(wǎng)站:http://rpm.pbone.net/
    https://www.rpmfind.net

  5. 自己制作,FPM:制作rpm包工具

RPM 包管理器十分強(qiáng)大,但是當(dāng)遇到包之間存在調(diào)用,依賴關(guān)系,有時安裝一個包依賴很多包
不得不一個一個安裝,此類包的安裝效率存在缺陷,為了解決依賴性,產(chǎn)生了yum管理器, 并不意味著取代rpm命令,二者互為重要,yum依賴于rpm程序.

如何使用yum(Yellowdog Update Modifier)包管理器?

yum管理器基于c/s架構(gòu),服務(wù)端主要存rpm包及描述rpm包屬性的元數(shù)據(jù)(metadata).

客戶端配置:

/etc/yum.conf:為所有倉庫提供公共配置 /etc/yum.repos.d/*.repo:為倉庫指向服務(wù)端地址提供配置

國內(nèi)的yum源:

1.阿里云yum源:http://mirrors.aliyun.com/repo/
2.網(wǎng)易yum源:http://mirrors.163.com/
3.搜狐yum源:http://mirrors.sohu.com/

生成客戶端yum配置文件的命令:
yum- config-manager --add-repo=http://mirrors.sohu.com/centos/6.9/os/x86_64/
yum- config- manager -- disable “倉庫名 " 禁用倉庫
yum- config- manager -- enable “倉庫名 ” 啟用倉庫
yum命令的用法:
yum [options] [command] [package ...]  
yum repolist  all   顯示yum倉庫中有哪些軟件  
yum list            顯示程序名  
yum search          查找程序是否存在  
yum install         安裝程序,同時將所依賴程序安裝  
yum history         查看yum的操作歷史  
yum reinstall       重新安裝,有些軟件安裝途中意外終止再安裝提示已安裝卸載提示未安裝可用此選項(xiàng)  
yum Update          升級程序包  
yum check-update    檢查可用升級  
yum remove|erase    卸載軟件,不會卸載安裝時安裝的依賴包  
yum provide         某個功能由哪個包提供  
yum clean all       清除本地緩存,每次更改客戶端的配置文件指向地址,建議清除  
yum makecache       建立本地緩存

幾個常用選項(xiàng):

-- nogpgcheck:     禁止進(jìn)行g(shù)pg check  
-y                  自動回答"y"  
-q                  靜默模式

yum操作的日志文件歷史依據(jù): /var/log/yum.log

yum配置文件可用的變量:
$arch
$basearch
$releasever

如果rpm被卸載了,如何解決安裝軟件的需求呢?

第三種管理軟件包的方式:源碼編譯編譯安裝,優(yōu)點(diǎn)還可以根據(jù)平臺特性進(jìn)行安裝,發(fā)揮最佳性能.

一般安裝步驟(僅僅是安裝):源代碼-- >預(yù)處理-- >編譯-- >匯編-- >鏈接-- >執(zhí)行

1.解壓源碼xxx.tar.bz2 或者其他類型
2. cd 進(jìn)入源碼編譯的目錄
3. ./configure --prefix=/PATH/INSTALL/ 生成MakeFile模板文件(預(yù)處理)
4. make 編譯
5. make install 編譯安裝

下面來做一下實(shí)戰(zhàn),熟悉一下上面的知識.

在centos 6中源碼編譯安裝apache服務(wù)程序httpd,并嘗試自動化實(shí)現(xiàn)批量編譯安裝?

1.分析httpd-2.2.32源碼編譯所依賴的程序(版本可能不同),將其先安裝.

(1).apr-1.5.2
(2).apr-util-1.5.4
(3).apr-iconv-1.2.1
(4).pcre-8.40 :通過測試安裝此依賴包,需要gcc,gcc-c++編譯器,前一步先安裝

2.分析完主要的依賴包,我這里是centos6版本,視情況而定可能有的不缺,先安裝依賴包.
第一個依賴包還要被第二三個依賴包所依賴所以先安裝第一個依賴包.
1.apr-1.5.2的安裝.

      wget http://www-eu.apache.org/dist/apr/apr-1.5.2.tar.bz2
      tar jxf apr-1.5.2.tar.bz2           #解壓依賴包
      cd apr-1.5.2.tar.bz2
     ./configure --prefix=/home/apache/apr
     make #編譯
     make instal  #編譯安裝

2. apr-util的安裝

      wget  http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2  
     tar jxf apr-util-1.5.4.tar.bz2            #解壓依賴包      cd apr-util-1.5.4                              ./configure --with-apr=/home/apache/apr/ --prefix=/home/apache/apr-util      make                                      #編譯安裝依賴包      make install  

3.apr-iconv的安裝

      wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.1.tar.bz2
     tar jxf apr-iconv-1.2.1.tar.bz2 #編譯安裝依賴包
     cd
apr-iconv-1.2.1
     ./configure --prefix=/home/apache/apr-iconv
     make
     make install

4.pcre-8.40的編譯安裝

在安裝他之前先將gcc和gcc-c++裝好,需要他們來編譯,我這里直接用yum來裝gcc和gcc-c++了, 如果真的沒有rpm程序,就要考慮源碼安裝這兩個編譯器了.

      wget -c https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.bz2
      tar jxf pcre-8.40.tar.bz2  #編譯安裝依賴包
      cd pcre-8.40
      ./configure --prefix=/home/apache/pcre &>/dev/null
      make &>/dev/null
      make install

3.安裝完成依賴包后開始安裝主程序httpd.

      wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.2.32.tar.bz2
      tar jxf httpd-2.2.32.tar.bz2
      cd httpd-2.2.32
      ./configure --prefix=/home/apache/httpd --with-apr=/home/apache/apr --sysconfdir=/etc/apache                       #我這里指明了安裝路徑和配置文件的路徑便于查找
      make &>/dev/null                 #編譯安裝httpd程序
      make install

4.安裝完成,激動人心的時刻啟動Apache httpd程序.

      /home/apache/httpd/bin/apachectl  start  #httpd程序的啟動命令

5.開放Linux防火墻的80端口或者臨時直接關(guān)掉(我這里先臨時關(guān)掉).

      iptables -F

6.在瀏覽器中輸入我的Linux主機(jī)ip地址,看到It works! 的字樣證明,大功告成,成功擁有了自己的網(wǎng)站!

按照上面的思路,開始實(shí)現(xiàn)自動化批量編譯安裝?

#!/bin/bash  
#
#version 0.9  
#  
OLDPWD=$(pwd)       #保存當(dāng)前程序的所在路徑  
echo -e "\033[31mWARNING:The operation is will be uninstall old httpd!\033[0minstalling apache site on centos6 , wating please..."
echo -e "[##                   ]10%"

rpm -qa| grep apr-util &>/dev/null && yum -y remove apr-util &>/dev/null #清除以前安裝的apr-util程序
rpm -qa| grep apr-icon &>/dev/null && yum -y remove apr-icon &>/dev/null #清除以前安裝的apr-icon程序
rpm -qa| grep apr &>/dev/null && yum -y remove apr &>/dev/null #清除以前安裝的apr程序
rpm -qa| grep httpd &>/dev/null && yum -y remove httpd &>/dev/null #清除以前安裝的httpd程序

if [ ! -e ./apr-1.5.2.tar.bz2 ];then                   #判斷安裝包是否存在
    wget -c http://www-eu.apache.org/dist/apr/apr-1.5.2.tar.bz2 &>/dev/null
fi
    tar jxf apr-1.5.2.tar.bz2
    cd apr-1.5.2
    ./configure --prefix=/home/apache/apr &>/dev/null       #編譯安裝apr依賴包
    make &>/dev/null
    make install &>/dev/null
    cd "$OLDPWD"
echo -e "[####                ]20%"
if [ ! -e ./apr-util-1.5.4.tar.bz2 ];then #判斷安裝包是否存在
    wget -c http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2 &>/dev/null
fi
    tar jxf apr-util-1.5.4.tar.bz2            #解壓依賴包
    cd apr-util-1.5.4             #編譯安裝依賴包
    ./configure --with-apr=/home/apache/apr/ --prefix=/home/apache/apr-util &>/dev/null
    make &>/dev/null
    make install &>/dev/null
    cd "$OLDPWD"
echo -e "[######              ]30%"
if [ ! -e ./apr-iconv-1.2.1.tar.bz2 ];then #編譯安裝依賴包
    wget -c http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.1.tar.bz2 &>/dev/null
fi
    tar jxf apr-iconv-1.2.1.tar.bz2
    cd apr-iconv-1.2.1
    ./configure --with-apr=/home/apache/apr --prefix=/home/apache/apr-iconv &>/dev/null
    make &>/dev/null
    make install &>/dev/null
    cd "$OLDPWD"
echo -e "[########            ]40%"
    yum install -y  gcc gcc-c++  &>/dev/null   #依賴包pcre編譯安裝需要gcc和gcc-c++
if [ ! -e ./pcre-8.40.tar.bz2 ];then
    wget -c https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.bz2 &>/dev/null
fi
    tar jxf pcre-8.40.tar.bz2  #編譯安裝依賴包
    cd pcre-8.40
    ./configure --prefix=/home/apache/pcre &>/dev/null
    make &>/dev/null
    make install &>/dev/null
    cd "$OLDPWD"
echo -e "[############        ]60%"
if [ ! -e ./httpd-2.2.32.tar.bz2 ];then
    wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.2.32.tar.bz2 &>/dev/null
fi
    tar jxf httpd-2.2.32.tar.bz2
    cd httpd-2.2.32
    ./configure --prefix=/home/apache/httpd --with-apr=/app/apache/apr --sysconfdir=/etc/apache \                      
                --with-apr-util=/app/apache/apr-util --with-pcre=/app/apache/pcre &>/dev/null
    make &>/dev/null                   #編譯安裝httpd程序
    make install &>/dev/null
echo -e "[####################]100% install complete"
echo -e "staring site...\nEnter your IP address in browser."
    /home/apache/httpd/bin/apachectl start &>/dev/null  #啟動apache程序
echo "apache server is installed at `date +%F-%T`,you can see /home/apache/install.log"
echo -e "Install_Package: apr-1.5.2.tar.bz2 Install_Path: /home/apache/apr \n
Install_Package: apr-util-1.5.4.tar.bz2 Install_Path: /home/apache/apr-util \n
Install_Package: apr-iconv-1.2.1.tar.bz2 Install_Path: /home/apache/apr-iconv \n 
Install_Package: pcre-8.40.tar.bz2 Install_Path: /home/apache/pcre \n
Install_Package: httpd-2.2.32.tar.bz2 Install_Path: /home/apache/httpd  Configfile_dir: /etc/apache">>/home/apache/install.log   #生成一段日志便于得知程序的安裝情況

上面的腳本程序我在 centos6 Everthing上面實(shí)現(xiàn)的,其他發(fā)行版未曾經(jīng)過測試.近期通過miniinstall測試出現(xiàn)了一些問題,并做了改動.也可根據(jù)自己的情況修改安裝的路徑 及版本,這里只完成了主體功能,可能還有部分功能體驗(yàn)沒有優(yōu)化,可根據(jù)您的情況進(jìn)行優(yōu)化調(diào)整.這種方式實(shí)現(xiàn)的Apache server不受service httpd start的統(tǒng)一管理,在后面的學(xué)習(xí)中,我會繼續(xù)編寫用service命令的管理腳本.如果您是apache配置小白直接復(fù)制上面shell 代碼運(yùn)行完畢就可以訪問頁面了!

 

網(wǎng)站欄目:程序包管理rpm,yum用法解析及自動化部署apacheserver實(shí)戰(zhàn),讓您輕松擁有apache網(wǎng)站!
分享網(wǎng)址:http://bm7419.com/article14/igdpge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站網(wǎng)站策劃、Google、企業(yè)建站、動態(tài)網(wǎng)站、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司