yum的更多用法和源碼編譯安裝apache

一、yum的更多用法

上篇文章介紹了yum的基礎用法及yum源的基本配置,除此之外yum還有更多的用法,以下將繼續介紹yum的使用方法。

1、yum-config-manager工具,該工具可以自動生成yum的repo文件,而不需要手動創建編寫,使用方法如下:

用法:yum-config-manager [options] [section]

-add-repo:添加倉庫

# 添加一個阿里雲的yum倉庫
yum-config-manager -add-repo=http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/

--enable:啓用某個倉庫

--disable:禁用某個倉庫

#禁用名爲base的倉庫
[root@liang yum.repos.d]# yum-config-manager --disable base
#啓用名爲base的倉庫
[root@liang yum.repos.d]# yum-config-manager --enable base

2、包組管理,有些程序的安裝包不止一個,而是一組程序包,這時可以使用包組的相關命令。yum工具從3.4.2版本之後包組管理命令分開爲兩個,比如groups list、groups install,3.4.2之前版本的組管理命令是一個,比如grouplist、groupinstall。以下將以3.4.2之後版本爲例介紹。

groups list:顯示組包名稱

[root@fengl bin]# yum groups list

groups install:安裝組包

#安裝名爲"Basic Web Server"的組包
[root@fengl bin]# yum groups install "Basic Web Server"

groups remove:移除組包

#移除名爲"Basic Web Server"的組包
[root@fengl bin]# yum groups remove "Basic Web Server"

groups info:顯示組包信息,“+”表示要安裝的包,“=”表示已安裝的包

#顯示名爲"Basic Web Server"組包的詳細信息
[root@fengl bin]# yum groups info "Basic Web Server"

groups update:更新包組

#更新名爲"Basic Web Server"的組包
[root@fengl bin]# yum groups update "Basic Web Server"

在CentOS7中,包組的命令有多種方式,比如groups info ,也可以寫成group info或者groupinfo


3、yum的repo配置文件中也可以使用變量,在有些複雜的環境中使用變量能夠大大減少配置量。

$releasever:當前OS的發行版的版本號,例如CentOS6.6 x86_64,其主版本爲6

$basearch:平臺,如 i386,i486,i586,x86_64等

$YUM0-$YUM9:自定義變量

例如:baseurl=http://repo.magedu.com/centos/$releasever/$basearch 且當前系統版本爲CentOS6.6 x86_64,則baseurl表示的路徑爲: http://repo.magedu.com/centos/6/x86_64

    

4、本地創建yum倉庫,有時需要自己建立一個yum倉庫,即需要創建repodata目錄及其相關yum的索引xml文件等,創建時使用的命令爲:createropo,用法如下:

用法:createrepo [options] <directory>

一般情況下直接使用createrepo命令加目錄即可,比如我的rpm包程序都放在/test目錄下,可以直接使用creatrepo命令創建yum倉庫

#爲/test目錄下的rpm包創建倉庫
[root@fengl testdir]# createrepo /test/
#創建完之後可以在/test目錄下看到repodata目錄,裏面存放有相關的倉庫信息
[root@fengl repodata]# ls
01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2
401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2
6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2
dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
repomd.xml

如果/test目錄下的rpm包有增加、刪除或更新等變動時,需要更新源數據信息時,可以使用--update選項

[root@fengl /]# createrepo --update /test

二、源碼編譯安裝

1、源碼編譯安裝主要分爲3個步驟:

(1)運行configure腳本,可以動過該腳本指定以下信息

    --prefix:指定默認安裝路徑

    --sysconfdir:指定配置文件安裝路徑

    --with-CAPABILITY:依賴的程序包

    --enable-FEATURE:啓用某個特性

    --disable-FEATURE:禁用某個特性

(2)運行make命令,完成項目構建,即根據makefile文件,構建引用程序

(3)運行make install命令,完成安裝,即複製文件到相應的路徑


2、源碼安裝apache示例

第1步:先yum安裝develpment tools


第2步:下載apache源碼程序包,並解壓

[root@fengl test]# tar -jxvf httpd-2.2.29.tar.bz2

第3步:進入解壓後的程序包目錄下,查看configure文件,並運行,指定安裝路徑等

[root@fengl httpd-2.2.29]# ./configure --prefix=/usr/local/http2 --sysconfdir=/etc/http2/

第4步:執行make命令,完成項目構建

[root@fengl httpd-2.2.29]# make

第5步:執行make install,完成安裝,安裝完成後會在指定麼目錄下生成相應的文件

[root@fengl httpd-2.2.29]# make install
# /etc/http2下的文件
[root@fengl http2]# ll
total 92
drwxr-xr-x. 2 root root  4096 Aug 24 23:01 extra
-rw-r--r--. 1 root root 13702 Aug 24 23:01 httpd.conf
-rw-r--r--. 1 root root 12958 Aug 24 23:01 magic
-rw-r--r--. 1 root root 53011 Aug 24 23:01 mime.types
drwxr-xr-x. 3 root root  4096 Aug 24 23:01 original
# /usr/local/http2下的文件
[root@fengl http2]# ll
total 56
drwxr-xr-x.  2 root root  4096 Aug 24 23:01 bin
drwxr-xr-x.  2 root root  4096 Aug 24 23:01 build
drwxr-xr-x.  2 root root  4096 Aug 24 23:01 cgi-bin
drwxr-xr-x.  3 root root  4096 Aug 24 23:01 error
drwxr-xr-x.  2 root root  4096 Aug 23  2014 htdocs
drwxr-xr-x.  3 root root  4096 Aug 24 23:01 icons
drwxr-xr-x.  2 root root  4096 Aug 24 23:01 include
drwxr-xr-x.  3 root root  4096 Aug 24 23:01 lib
drwxr-xr-x.  2 root root  4096 Aug 24 23:01 logs
drwxr-xr-x.  4 root root  4096 Aug 24 23:01 man
drwxr-xr-x. 14 root root 12288 Aug 23  2014 manual
drwxr-xr-x.  2 root root  4096 Aug 24 23:01 modules

第6步:將apache的man幫助文件添加到man的配置文件(/etc/man_db.conf)中

wKioL1e_5HLgFqBbAABDK6BcKUY636.png

第7步:將apache服務中的/bin目錄下的可執行命令添加到PATH變量中

#在/etc/profile.d/目錄下創建http2.sh文件,並添加PATH變量
[root@fengl profile.d]# vim /etc/profile.d/http2.sh 
#查看添加的PATH變量
[root@fengl profile.d]# cat /etc/profile.d/http2.sh 
PATH=$PATH:/usr/local/http2/bin
#加載剛添加的變量
[root@fengl profile.d]# . http2.sh
#查看是否加載 
[root@fengl profile.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/http2/bin

第8步:啓動apache服務

[root@fengl bin]# apachectl start

第9步:測試(需要更改防火牆設置)

wKiom1e_5Ieh0iroAAAMI6bYafw631.png

三、當天作業

1、輸入若干個數值存入數組中,採用冒泡算法進行升序或降序排序

[root@fengl bin]# cat sz.sh 
#!/bin/bash

declare -a arr
until echo ${arr[*]} | grep -E "^[[:digit:]' ']+$" &> /dev/null;
do
read -p "請輸入一組數字,每個數字以空格隔開:" -a arr
done

up () {
local i=$[`echo ${#arr[*]}`-1]
while [ $i -ge 0 ] ;
do
    local n=$[i-1]
    while [ $n -ge 0 ] ;
    do
        if [[ ${arr[$i]} -lt ${arr[$n]} ]] ;then
            local x=${arr[$i]}
            local y=${arr[$n]}
            arr[$i]=$y
            arr[$n]=$x
        fi
        let n--
    done
    let i--
done
echo ${arr[*]}
}
down () {
local i=$[`echo ${#arr[*]}`-1]
while [ $i -ge 0 ] ;
do
        local n=$[i-1]
        while [ $n -ge 0 ] ;
        do
                if [[ ${arr[$i]} -gt ${arr[$n]} ]] ;then
                        local x=${arr[$i]}
                        local y=${arr[$n]}
                        arr[$i]=$y
                        arr[$n]=$x
                fi
                let n--
        done
        let i--
done
echo ${arr[*]}
}
echo "升序排列爲:"
up
echo "降序排列爲:"
down


wKioL1e_5JqQm5HvAAB2dilyRSk623.gif


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章