将新包添加到存储库服务器

将新包添加到存储库服务器

我正在使用 CentOS,我已经构建了一个存储库并将软件包放在上面,从另一台服务器进行测试,一切都很好。

当我在存储库中添加新包并执行时:

$ createrepo -v /var/www/html/centos/6.5/updates/x86_64/Packages/

尝试安装最近从添加了我的存储库的服务器添加的最后一个包,但直到我在同一服务器上执行后它才起作用:

$ yum clean all

这是正常情况吗?

答案1

到目前为止,这是“正常”行为,您调用“yum update”的服务器确实保留了存储库上可用软件包的缓存。当您调用“yum clean all”时,该缓存将被删除,服务器需要再次向存储库询问可用包的列表 - 包括您刚刚添加的包。

实际发生了什么

  1. 您将一个新包添加到机器 A 上的存储库中
  2. 您调用 createrepo - 存储库信息已更新
  3. 你跳转到服务器 B,其中包含机器 A 的存储库
  4. 您在 B 上调用“yum update” - 上次 yum 运行并不是很久以前,因此 yum 不会(!)连接到 A,而仅检查本地缓存;由于本地缓存已经存在几个小时了,因此您的新包不会在那里列出
  5. 现在,由于您感到不安,您在 B 上拨打“yum clean all”[您也可以等待一段时间]
  6. B 上的所有缓存都被删除
  7. 在 B 上再次调用“yum update”会强制 B 连接到服务器,拉取所有当前数据 - 从而能够看到您的新包

答案2

对我来说,这听起来不像正确的行为。 YUM 下载的 RPM 保存在/var/cache/yum.

例子

从 Fedora 19 系统:

$ pwd
/var/cache/yum

请注意所有目录,每个存储库都有一个目录:

$ tree . -L 3 -d
.
`-- x86_64
    `-- 19
        |-- fedora
        |-- fedora-debuginfo
        |-- google-chrome
        |-- home_pstavirs_ostinato
        |-- home_tpokorra_mono
        |-- livna
        |-- livna-debuginfo
        |-- rpmfusion-free
        |-- rpmfusion-free-debuginfo
        |-- rpmfusion-free-updates
        |-- rpmfusion-free-updates-debuginfo
        |-- rpmfusion-nonfree
        |-- rpmfusion-nonfree-debuginfo
        |-- rpmfusion-nonfree-updates
        |-- rpmfusion-nonfree-updates-debuginfo
        |-- rpm-sphere
        |-- updates
        |-- updates-debuginfo
        `-- virtualbox

21 directories

相关内容