更新后不要重新创建存储库

凯文·C

我们管理系统,从而管理存储库。我们删除了我们不使用的存储库,存在于/etc/yum.repos.d/<file>

我们的问题是:在系统更新/升级后,CentOS 会自动重新创建被删除的存储库,这对我们来说是一个问题。

问题:是否有命令/方法可以确保在 CentOS 7 系统上升级后不会重新创建存储库。

阿尔贝托·乔索莱

这些存储库是由某人创建的,操作系统不会重新创建它们。
它们要么通过 RPM 包的更新来恢复,要么通过centos-release您设置/运行的自动脚本(ansible?)来恢复

我不知道删除 repo 的自动方法;我看到了几个解决方案:

  1. centos-release通过添加
    exclude=centos-release
    /etc/yum.conf(空格分隔列表)从可升级包中排除,但这可能会破坏一些更新;

  2. 禁用它们:

    # yum-config-manager --disable base,updates,extras,centosplus,epel,whatever
    

    (这可以很容易地编写脚本并放入 cron 或您的 ansible playbook 中)

  3. 编写一个小脚本并将其放在 中/etc/cron.hourly/,例如/etc/cron.hourly/wipe_repos,包含:

    #!/usr/bin/env bash
    rm -f /etc/yum.repos.d/CentOS-Base.repo 
    

    或更好:

    #!/usr/bin/env bash
    yum-config-manager --disable base,updates,extras,centosplus,epel,whatever
    

我建议使用解决方案 2,因为 repo 文件不会被更新覆盖,但新版本会与旧的 in.rpmnew文件一起放置

这是由 的%config(noreplace)源 rpm 中的标志保证centos-release,应用于/etc/yum.repos.d/. 您可以通过下载 .src.rpm 并打开centos-release.spec文件来检查这一点

$ mkdir test && cd test
$ yumdownloader --source centos-release
$ rpm2cpio centos-release*.rpm | cpio -idmv
$ cat centos-release.spec

(或者网上搜索包下载src.rpm)

然后向下滚动到部分%files,您会注意到:

%config(noreplace) /etc/yum.repos.d/*

%config(noreplace)意味着所有这些文件都不会被更新中的新文件替换,但是来自新 rpm 的文件以扩展名保存.rpmnew,因此您将拥有:

$ ls /etc/yum.repos.d/
CentOS-Base.repo          <-- here you set them as disabled
CentOS-Base.repo.rpmnew   <-- this comes from the update, but yum will ignore it

如需参考,请参阅http://people.ds.cam.ac.uk/jw35/docs/rpm_config.htmlhttps://serverfault.com/a/48819/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无需备份即可重新创建 SVN 存储库

来自分类Dev

更新Postgres.app和重新创建数据库后,无法创建和更新记录

来自分类Dev

更新/重新创建JList

来自分类Dev

从服务器存储的.git目录重新创建git存储库

来自分类Dev

重新创建市集存储库,同时仅保留几个分支

来自分类Dev

从隐藏的.git文件夹重新创建git存储库

来自分类Dev

从多个文件安装存储库,并仅重新创建一次yum缓存

来自分类Dev

如何在Android应用程序更新上重新创建数据库?

来自分类Dev

在startActivityForResult返回后未重新创建Android parentActivity

来自分类Dev

导航回到抖动后重新创建流

来自分类Dev

片段重新创建后,ViewModel不会保留数据

来自分类Dev

更改nix-channel后重新创建链接

来自分类Dev

删除后重新创建内容提供者

来自分类Dev

重新创建活动后,片段重叠

来自分类Dev

重新创建片段后显示异步任务结果

来自分类Dev

重新创建活动后增加内存消耗

来自分类Dev

Kubernetes PV 在删除/重新创建后拒绝绑定

来自分类Dev

无法重新创建丢失的调试密钥库?

来自分类Dev

MSSQL重新创建数据库的LDF文件

来自分类Dev

始终重新创建数据库

来自分类Dev

从模式重新创建 mysql 数据库

来自分类Dev

仅重新创建数据库模式

来自分类Dev

Terraform-ELB尝试重新创建而不是更新

来自分类Dev

在更新dockerfile之后重新创建容器

来自分类Dev

重新创建序列

来自分类Dev

无法检出GIT存储库中新创建的分支

来自分类Dev

使用pipenv.lock文件克隆存储库并重新创建python虚拟环境的过程是什么?

来自分类Dev

Git更改项目名称,而无需在存储库中删除和重新创建项目

来自分类Dev

我从数据中删除innodb数据库后无法重新创建它,因为:“表已存在”

Related 相关文章

  1. 1

    无需备份即可重新创建 SVN 存储库

  2. 2

    更新Postgres.app和重新创建数据库后,无法创建和更新记录

  3. 3

    更新/重新创建JList

  4. 4

    从服务器存储的.git目录重新创建git存储库

  5. 5

    重新创建市集存储库,同时仅保留几个分支

  6. 6

    从隐藏的.git文件夹重新创建git存储库

  7. 7

    从多个文件安装存储库,并仅重新创建一次yum缓存

  8. 8

    如何在Android应用程序更新上重新创建数据库?

  9. 9

    在startActivityForResult返回后未重新创建Android parentActivity

  10. 10

    导航回到抖动后重新创建流

  11. 11

    片段重新创建后,ViewModel不会保留数据

  12. 12

    更改nix-channel后重新创建链接

  13. 13

    删除后重新创建内容提供者

  14. 14

    重新创建活动后,片段重叠

  15. 15

    重新创建片段后显示异步任务结果

  16. 16

    重新创建活动后增加内存消耗

  17. 17

    Kubernetes PV 在删除/重新创建后拒绝绑定

  18. 18

    无法重新创建丢失的调试密钥库?

  19. 19

    MSSQL重新创建数据库的LDF文件

  20. 20

    始终重新创建数据库

  21. 21

    从模式重新创建 mysql 数据库

  22. 22

    仅重新创建数据库模式

  23. 23

    Terraform-ELB尝试重新创建而不是更新

  24. 24

    在更新dockerfile之后重新创建容器

  25. 25

    重新创建序列

  26. 26

    无法检出GIT存储库中新创建的分支

  27. 27

    使用pipenv.lock文件克隆存储库并重新创建python虚拟环境的过程是什么?

  28. 28

    Git更改项目名称,而无需在存储库中删除和重新创建项目

  29. 29

    我从数据中删除innodb数据库后无法重新创建它,因为:“表已存在”

热门标签

归档