如果您是使用在线的Yum源,您可以忽略这步。
简单说明下思路:从网上下载相应版本的DVD光盘的内容拷贝到本地的目录下,重新生成相应的xml信息。
注意一下,这里要用到这个createrepo命令,所以要保证这个命令存在,同时要重建一些文件。
下面我通过一个脚本来说明问题:
#!/bin/bash
# admin#wangxiaoyu.org
# 2009-09-23 19:26:24
# 2009-09-24 23:01:38 Added comments
# 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
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
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
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]
* 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来获得更详细的帮助信息。
* help [command]万能的,你会看到上面的这些信息,得到的信息量绝对不亚于这里。或者可以通过man rpm来获得更详细的帮助信息。
本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/205188,如需转载请自行联系原作者