本地Yum生成数据库及常用命令

如果您是使用在线的Yum源,您可以忽略这步。
简单说明下思路:从网上下载相应版本的DVD光盘的内容拷贝到本地的目录下,重新生成相应的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,如需转载请自行联系原作者

上一篇:Windows 下音频数据采集和播放


下一篇:工业网络安全市场未来五年的规模将大幅扩大