創建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
下一篇 2017-08-09

相關推薦

  • RAID詳解

    1、什么是RAID RAID:獨立硬盤冗余陣列,舊稱廉價磁盤冗余陣列,簡稱磁盤陣列。其基本思想就是將多個相對便宜的硬盤結合起來,成為一個磁盤陣列,是性能達到甚至超過一個昂貴、容量巨大的硬盤,根據選擇的版本不同,RAID比單顆硬盤有以下一個或多個方面的好處:增強數據集成度,增強容錯功能,增加處理量或容量。目前應用較多的有RAID0,RAID1,RAID4,RA…

    Linux干貨 2017-01-03
  • useradd命令

    useradd創建用戶 使用格式: useradd[options] LOGIN -c:備注信息保存在passwd的備注欄中。 -d:用戶登入時的主目錄 -e:賬號的失效日期,缺省表示永久有效。 -f:密碼過期后多少天關閉該賬號。 -g:用戶所屬組。 -G:用戶所屬的附加群組。 -m:自動創建用戶的登入目錄。 -M:不要自動創建用戶的登入目錄。 -n:取消創…

    Linux干貨 2017-12-20
  • block(data block,directory block)、inode、塊位圖、inode位圖和super block概念詳解

    一.基本概念:      1.block:文件系統中存儲數據的最小單元,ext3文件系統中,創建時默認4k,分為存儲文件數據的data block和存儲目錄數據的directory block      2.inode:又稱“索引節點”,每一個inode對應一個文件或目錄,記錄了…

    Linux干貨 2016-03-04
  • 關于大型網站技術演進的思考(三):存儲的瓶頸(3)

    原文出處: 夏天的森林    存儲的瓶頸寫到現在就要進入到深水區了,如果我們所做的網站已經到了做數據庫垂直拆分和水平拆分的階段,那么此時我們所面臨的技術難度的挑戰也會大大增強。 這里我們先回顧下數據庫的垂直拆分和水平拆分的定義: 垂直拆分:把一個數據庫中不同業務單元的數據分到不同的數據庫里。 水平拆分:是根據一定的規則把同一業務…

    Linux干貨 2015-03-03
  • N25-第16周博客作業

    1、源碼編譯安裝LNMP架構環境;     安裝nginx:      1)安裝依賴包 ]# yum groupinstall “Development Tools” “Development Libraries” -y ]# yum install wget openssl-devel ncurses-de…

    2017-05-21
  • keepalived配置

    前兩個配置做完實驗沒截圖,后面的實驗有圖片。 keepalived的的單獨設置 1.確保時間同步 ntpdate 10.1.0.1 2.保證/etc/hosts文件可以解析到 3.本機配置ssh-keygen -t rsa -P ''  ,然后ssh-copy-id -i .ssh/id_rsa.pub root@10.1.44…

    Linux干貨 2016-11-11
欧美性久久久久