如何在不更新存储库信息的情况下使用yum安装软件包?


10

我想从存储库中安装一些软件包,但是总是在尝试yum install packagename百胜更新数据库时安装:

Loaded plugins: fastestmirror, langpacks, presto, refresh-packagekit
Determining fastest mirrors
updates/metalink                                                                                                                      |  23 kB     00:00     
 * fedora: nl.mirror.eurid.eu
 * rpmfusion-free: ftp.astral.ro
 * rpmfusion-free-updates: ftp.astral.ro
 * rpmfusion-nonfree: ftp.astral.ro
 * rpmfusion-nonfree-updates: ftp.astral.ro
 * updates: nl.mirror.eurid.eu
fedora-awesome                                                                                                                    | 3.3 kB     00:00     
google-chrome                                                                                                                     |  951 B     00:00     
rpmfusion-free-updates                                                                                                        | 3.3 kB     00:00     
rpmfusion-free-updates/primary_db                                                                                             | 272 kB     00:08     
rpmfusion-nonfree-updates                                                                                                     | 3.3 kB     00:00     
rpmfusion-nonfree-updates/primary_db                                                                                          |  93 kB     00:05     
updates                                                                                                                       | 4.7 kB     00:00     
updates/primary_db                                                                                                            | 4.6 MB     02:35     
updates/group                                                                                                                     | 1.9 MB     00:33     

因此,使用yum install packagename -C也不起作用(发生“找不到缓存”错误,yum makecache也不会给出结果)。但是我只想安装软件包而不更新数据库。


3
为什么?更新数据库意味着您拥有软件包列表的最新版本
Smudge

我们在说什么分贝?百胜仓库/软件包缓存?
thinice 2011年

1
@sam,因为我的Internet速度太慢,无法为每个安装更新仓库。
克拉克

1
@thinice是的,正如您在日志中看到的那样,存储库永远都会发生更新。我不需要它,我只想安装软件包而不更新存储库。
克拉克

1
@purple然后,您应该使用本地存储库,yum被设计为可以完全访问存储库数据,无论是远程还是本地yum都不在乎,但它应该拥有它。
涂抹

Answers:


12

如果您想要yum表现出来apt-get(不要在每次运行时都更新元数据),请编辑/etc/yum.conf并放置在此处:

metadata_expire=never

要么

metadata_expire=7d

如果您想在一周后更新元数据。如果运行yum makecache,则您的元数据将像apt-get updateDebian中的by一样进行更新。

但是请记住,如果在配置文件中使用“从不”,则必须手动进行处理。如果使用“ 7d”,则可以节省数据带宽,但是一周后,元数据将自动为您更新。

这里是metadata_expire文档:

您还可以通过分别附加ad,h或m,将默认值(使用秒)更改为使用天,小时或分钟。默认值为6小时,以补充每小时运行一次的yum-updatesd。也可以使用单词“从不”,这意味着元数据将永不过期。


2w好吗?
塞巴斯蒂安·戈德莱特

2w不起作用。默认值为6小时,以补充每小时运行一次的yum-updatesd。您可以a d, h or m分别通过附加从默认的使用秒更改为使用天,小时或分钟。
Shubham Chaudhary

4

在某些方面,您要问的是出于百胜的精神。Yum是一个全面的软件包和依赖项管理器。为了做到这一点,并且不会通过混合匹配不兼容的软件包来破坏系统,它需要拥有您不想更新的数据。

您可以使用手动分析软件包具有哪些依赖关系,deplist <packagename>并手动安装它们。

在任何情况下都不让yum保持最新状态似乎是一个奇怪的请求...


但是,为什么在键入install命令时apt-get不更新存储库?仅当您键入update时,它才会更新存储库。我希望百胜做同样的事情。
克拉克

1
如果您运行apt-get install foo-并且远程软件包版本已更改,您将收到类似以下的消息:bitbucket.org/ianb/silverlining/issue/26/…-同样,在仓库中已更新了所有依赖项也一样 (本质上是强迫您运行更新)。
thinice 2011年

2
是的,但是当我运行yum安装未更改的应用程序时,它也会更新db。
克拉克

4

如果要安装软件包而不更新数据库,请直接下载rpm(通过yumdownloader,ftp或Web浏览器),然后直接使用rpm安装它:

rpm -ivh packagename

我不建议您这样做,因为要跟踪依赖项(这就是创建yum的原因)还需要做很多工作,并且它可能会通过yum破坏以后的安装。


是的,但是为什么当您告诉他安装软件包时,例如apt-get不会更新存储库?对于更新,请使用“ apt-get update”命令。
克拉克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.