天天看點

本地Yum生成資料庫及常用指令

如果您是使用線上的Yum源,您可以忽略這步。

簡單說明下思路:從網上下載下傳相應版本的DVDCD光牒的内容拷貝到本地的目錄下,重新生成相應的xml資訊。

注意一下,這裡要用到這個createrepo指令,是以要保證這個指令存在,同時要重建一些檔案。

下面我通過一個腳本來說明問題:

#!/bin/bash

# admin#wangxiaoyu.org

# 2009-09-23 19:26:24

# 2009-09-24 23:01:38 Added comments

# 2010-12-29 Added comments

###如果需要配合FTP/Web/NFS等伺服器實作線上yum源的功能,請您修改這個腳本中生成yum用戶端配置檔案的語句

echo -en "Please input the path of the local Yum Server files:\n"

read yum_path

if [ -d $yum_path ]; then

        rm -f /etc/yum.repos.d/* #删除原先的yum用戶端配置檔案,有需要的話請事先備份

        find -L $yum_path -name repomd.xml -exec echo -en "" > '{}' \;  #清空舊的依賴資料檔案*.xml

        if ! rpm -q createrepo ;then

                cd $yum_path/Server && rpm -ivh createrepo-* #保證createrepo軟體已經安裝

        fi

        for i in `find -L $yum_path -name repomd.xml` #采集舊的依賴資料檔案*.xml,來生成新的

        do

                cd `dirname $i`

                cd ..

                rm -rf .olddata

                basefile=`basename $PWD`

                createrepo -g $i $PWD

                if [ $? ]; then #生成新的yum用戶端配置檔案,我主要是用來測試用的

                        cat >>/etc/yum.repos.d/server.repo <<EOF

# $basefile

[$basefile]

name=$basefile

baseurl=file://$PWD

gpgcheck=0

EOF

                fi

        done

fi

yum clean all && yum list

下面簡單說一些常用到的yum指令:

        * install package1 [package2] [...]安裝rpm包

        * update [package1] [package2] [...]更新rpm包

        * check-update同步yum倉庫資訊

        * upgrade [package1] [package2] [...]更新陳舊的rpm包

        * remove | erase package1 [package2] [...]删除已經安裝的軟體

        * list [...]列出倉庫中所有的軟體,常與grep配合使用

        * info [...]列出某一個或多個rpm包的詳細資訊,它類似于rpm -q --info [..]但yum的功能稍強一些,可以列出沒有安裝的軟體資訊

        * provides | whatprovides feature1 [feature2] [...]

        * clean [ packages | headers | metadata | dbcache | all ] “垃圾”清除        * makecache

        * groupinstall group1 [group2] [...] 按軟體的分組安裝軟體,這個多與groupinfo配合使用,例如安裝所有開發工具和相應的庫檔案

        * groupupdate group1 [group2] [...] 按軟體的分組更新軟體

        * grouplist [hidden] 列出分組的清單

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...] 列出分組的詳細資訊

        * search string1 [string2] [...] 查詢某個或某幾個rpm包

        * shell [filename] 

        * resolvedep dep1 [dep2] [...]

        * localinstall rpmfile1 [rpmfile2] [...] 通過yum來不在yum倉庫範圍的rpm包,這個很有用,經常用來自動解決一些依賴關系

        * localupdate rpmfile1 [rpmfile2] [...]

        * deplist package1 [package2] [...]

        * repolist [all|enabled|disabled]

        * reinstall package1 [package2] [...]在軟體遭遇以外删除時,這個可以用來重新安裝rpm包

        * help [command]萬能的,你會看到上面的這些資訊,得到的資訊量絕對不亞于這裡。或者可以通過man rpm來獲得更詳細的幫助資訊。

     本文轉自xiaoyuwang 51CTO部落格,原文連結:http://blog.51cto.com/wangxiaoyu/205188,如需轉載請自行聯系原作者