創建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