創建yum源及httpd源碼編譯

創建yum源及源碼編譯httpd

yum本身相比于rpm來說,能夠將有依賴的包文件一次性的安裝完成,是相當的方便的。
 yum的服務器支持的幾種格式:
    http、https、ftp、file

1、yum基礎命令

1、yum命令
 yum [options] [command] [package ...]    
     [options]: 基本不用
     [command]: 
             repolist[all | enable | disable]: 顯示倉庫列表[所有|啟用|禁用] 
             list[all | glob]: 顯示程序包[所有 | 通配符]
             -y : 在安裝時自動回答yes
 安裝程序包: yum install package  安裝 
                yum reinstall package  重新安裝
 升級程序包: yum update package 升級
             yum downgrade package 降級
 卸載程序包: yum remove | erase  package 
 清除本地yum緩存
     當更換光盤時,往往在新建yum時會導致不能讀到光盤,這時我們就需要進行清除yum的緩存
     yum clean all 
2、查看yum歷史(基于yum歷史可以實現撤銷操作)
     yum history [info | list | ...]
    eg: [root@Centos6 ~]#yum history 
         Loaded plugins: fastestmirror, refresh-packagekit, security
        ID | Login user               | Date and time    | Action(s)      | Altered 
         -------------------------------------------------------------------------------
         3 | root <root>              | 2017-08-05 02:13 | Install        |    1   
         2 | root <root>              | 2017-08-04 12:32 | Install        |   46  <
         1 | System <unset>           | 2017-07-14 10:38 | Install        | 1232 > 
         history list    
    eg: yum history redo 3  會將root安裝的歷史步驟重做相當于卸載
        yum history undo 3  會將root安裝歷史步驟撤銷
3、包組管理的相關命令
     yum groupinstall group1 安裝包組
     yum groupupdate group1  升級包組
     yum grouplist group1    列出包組清單
     yum groupremove group1  移除包組
     yum groupinfo group1    包組詳細信息

2、yum倉庫的創建

(1)本地yum源

1、yum的配置文件
        /etc/yum.conf  為所有的yum倉庫提供公共配置
        /etc/yum.repo.d/*.repo  為倉庫的指向提供配置
        yum的repo配置文件中可用變量
        $releasever 當前OS發行版的主版本號
        $arch  平臺 x86_64 、i386 、i486等
        $basearch
    2、倉庫配置文件格式
       [base]  倉庫名稱
       name=CentOS-$releasever - Base  定義一個應用名稱(可省) 
       baseurl=file:///misc/cd  yum源的尋找路徑(將本地光盤作為yum源)
       gpgcheck=1  需要檢查key
               =0  不需要檢查key
       gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6   key的尋找路徑
       enabled=1 倉庫啟用
              =0 倉庫禁用
     到此本地yum源完成

(2)基于ftp網絡yum源

1、搭建ftp服務
    (1)首先要找到基于網絡上的元數據(repodata),我們要記住repodata的父目錄接下來我們要用到
    (2)通過rpm命令安裝vsftpd安裝包,并查看本機服務地址及所開的端口號是否打開 netstat -ntl  /  ss -ntl 
    (3)開啟vsftpd服務
        centos 6 為systemctl start vsftpd 
        centos 7 為service vsftpd start 
       開機自啟vsftpd服務
         centos 6 : chkconfig vsftpd on 
         centos 7 : systemctl enable vsftpd 
    (4)關閉防火墻服務
         centos 6 : service iptanles stop  
         centos 7 : systemctl stop firewall
        開機自動關閉
         centos 6 : chkconfig iptables off
         centos 7 : systemctl disable firewall
    (5)關閉selinux
         setenforce=0
       開機自動生效
         vim /etc/selinux/config
            更改SELINUX=permissive
    (6)將光盤里的文件復制到需要通過網絡服務共享的文件夾里 /var/ftp/pub下
    (7)創建yum配置文件
        這里與本地yum倉庫的配置文件類似,這里不在說明

(3)源碼編譯httpd

在生產中,我們安裝工具時會遇到很多命令或工具會有依賴關系,很是麻煩,并且還不能定制特性
 1、下載源碼并解壓
     eg : tar xf httpd-2.4.25.tar.gz
     需要注意的是
 2、安裝開發工具包   
       因源碼是通過C語言來編譯的,所以在編譯時需要gcc等工具來對源碼進行操作
     eg : yum install "Development Tools"
 3、進入解壓后的目錄
    cd httpd-2.4.25
    閱讀INSTALL README
 4、運行configure腳本
     (1)通過選項指定參數,指定啟用特性,安裝路徑等;執行時會參考用戶的makefile.in文件生成makefile
     (2)檢查依賴的外部環境,如依賴的軟件包
     ./configure --prefix=/path/to/somewhere  --sysconfdir=/path/to/somewhere  為其指定安裝位置及配置文件安裝位置
     在其安裝過程中會提示錯誤,缺少安裝包,只需要將缺的安裝包對應安裝即可
 5、make 及make install
    make : 根據生成的makefile文件構建應用程序
    makeinstall : 復制文件到相應路徑
   到此還沒有徹底完成,還有后續的配置
 6、訪問測試
    iptables  -vnL  查看防火墻狀態
    若防火墻打開,則將其關閉
    iptables -F 關閉防火墻
 7、啟用服務
     httpd的啟動程序在指定的安裝目錄下的/bin/apachectl 
     將其加入PATH變量中
     echo "export PATH=/path/to/somewhere/bin/apachectl:$PATH" > /etc/profile.d/xxx.sh
     而后 ./apachectl start 即啟動服務

3、附上自己源碼編譯簡單腳本:

# 查詢httpd命令之前是否安裝過,如果安裝過則移除
rpm -qa "httpd*" &> /dev/null && yum remove httpd   
# 判斷系統版本號
centos=`cat /etc/centos-release | grep -o " [0-9]"|cut -d" " -f2`  
# 解壓相對應的httpd包
if [ $centos = 6 ] ;then
          tar xf httpd-2.2.34.tar.bz2 &> /dev/null && echo "Uncompress Complete" || echo "failed"
elif
   [ $centos = 7 ];then
          tar xf httpd-2.4.27.tar.bz2 &> /dev/null && echo "Uncompress Complete" || echo "failed"    
fi  
#進入解壓后的目錄
cd   httpd-*/  
# 安裝developmrnt tools包組
    yum groupinstall "development tools" -y &>/dev/null && echo "Development install successed!" || echo " Devement installfailed "
sleep 3      
# 運行configure腳本
    ./configure --prefix=/app/httpd25/ --sysconfdir=/app/httpd25/etc && echo "Configure successed!" || echo "Configure filed!"
sleep 3    
    make && make install && echo "Make install successed"  
sleep 3
# 啟動httpd服務
/app/httpd25/bin/apachectl  start   
# 判斷80端口是否打開
dk=`ss -ntl | grep -o ":::80"`     
if [ $dk == ":::80" ] ;then
    echo "80-port is open" 
else 
    echo "80-port is not open please restart"
     exit 10
fi
# 導入man幫助
if [ $centos = 6 ] ;then  
     echo "MANPATH /app/httpd25/man" >> /etc/man.config
else 
     echo "MANPATH /app/httpd25/man" >> /etc/man_db.conf
fi

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

(1)
M25_ymdM25_ymd
上一篇 2017-08-08 14:52
下一篇 2017-08-09 09:20

相關推薦

  • mongodb的復制集實現

    簡介:  mongodb有兩種類型的復制,第一種是同于MySQL的主從復制模式,第二種是復制集,提供了自動故障轉移的主從復制集群。其中復制集沒有固定的主節點,當一個主機的故障后從節點會重新“選舉”出一個新的主節點,從而提高的系統的可用性 一、實驗環境: (1)各節點信息: node1: 172.16.2.12 node2: 172.16.2.13 …

    Linux干貨 2015-09-05
  • Linux進程篇16.3ps命令:進程管理工具

    ps命令:進程管理工具

    Linux干貨 2017-12-18
  • RAID有點意思

        獨立硬盤冗余陣列(RAID, Redundant Array of Independent Disks),舊稱廉價磁盤冗余陣列(Redundant Array of Inexpensive Disks),簡稱磁盤陣列。其基本思想就是把多個相對…

    Linux干貨 2017-06-19
  • 部分基本的文本處理工具

    一、   抽取文本的命令     1、cat     cat [option]… [file]…     常用選項:         -E &nb…

    Linux干貨 2016-08-05
  • CentOS 7, lamp (php-fpm);(Blog 15)

    要求:
    (1) 三者分離于三臺主機;
    (2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress;
    (3) xcache

    2017-12-20
  • 用戶與組

    一、用戶與組的概念 1、Linux多用戶,多任務的特性    Linux是多用戶多任務操作系統,多用戶多任務就是可在系統上建多個用戶,多個用戶可同一時間同一個系統互不影執行的響各自不同的任務。例如linux服務器上有root、www、ftp,四個用戶。同一時間內,root用戶在查看系統日志,管理維護系統,www用戶在修改自己的網頁程序,f…

    Linux干貨 2016-10-25
欧美性久久久久