yum不会从Fedora中本地创建的rpm repo返回包

时间:2013-12-02 10:43:09

标签: fedora rpm yum

我使用createrepo命令在主目录的路径中创建一个本地仓库。我在里面添加了三个包来测试它。我已经将myrepo.repo文件创建到/etc/yum.repo.d/并运行“yum search runit --disablerepo = * --enablerepo = myrepo”,期望只返回我的repo中的包。包是myrepo / runit-2.1.1-4.1.src.rpm。当我运行repomanage --new myrepo时,它会正确返回包列表。但我怀疑yum是否设法找到包裹。当我运行yum repolist时,虽然列出了repo,但状态仅提供创建rep后包含的内容。这是输出:

  

fedora / 19 / i386 Fedora 19 - i386 30,446

!google-talkplugin google-talkplugin 1

!livna rpm.livna.org for 19 - i386 8

!myrepo myrepo 2

rpmora-free / 19 / i386 RPM融合Fedora 19 - 免费377

我不确定我必须做些什么以及我必须寻求帮助的地方。在互联网上搜索没有任何用处。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我遇到过类似的问题。我通过制作一个使用createrepo的脚本并在每隔几分钟在crontab中运行它来解决它(我有另一个cron,它不断从我的构建框上传最近创建的包)。

#!/bin/sh

destdir="/share/CentOS/6/myrepo/i686/"

for arch in i686 x86_64

do

    pushd ${destdir}/${arch} >/dev/null 2>&1

        createrepo .

    popd >/dev/null 2>&1

done

如果仍然无法使其正常工作,则需要按照上面的建议显示.repo

答案 1 :(得分:0)

本地仓库的createrepo是不够的,我必须添加2个需要root访问权限的额外命令,即使sudo对我不起作用

# First run createrepo.sh from Bruno9779

# then, run this as root user
yum --disablerepo="*" --enablerepo="local" clean metadata
yum makecache --enablerepo="local" --disablerep="*"

# yum search your-package-name-short