zoukankan      html  css  js  c++  java
  • 4种使用Yum命令禁用/锁定某些软件包更新的方法

    每一个Linux发行版附带了其上述功能默认包管理器,但所有这些发现,大部分的人是: YumRHELFedora系统(它当前正在与DNFFedora 22+起代替)从Debian 贴切 。 如果您正在寻找APT工具来阻止或禁用某些特定软件包的更新,那么你应该阅读这篇文章。

    DNFDanifiedYum在Fedora系统,这是另一位在我们的名单更换Yum 。如果适当地探索,这些包管理器可以用于以下功能:

    1. 从存储库安装新软件。
    2. 在安装软件之前安装这些依赖关系,以解决软件的依赖关系。
    3. 维护每个软件的依赖性的数据库。
    4. 降级任何现有软件的版本。
    5. 升级内核版本。
    6. 列出可用于安装的软件包。

    我们已经通过实际示例单独介绍了每个单独的包管理器的详细文章,您应该阅读它们以控制和管理各自的Linux发行版中的包管理。 阅读:

    1. 掌握Yum命令与这20个实例
    2. 27个DNF命令来管理Fedora 22+版本中的软件包
    3. 学习25个APT命令来管理Ubuntu软件包

    在文章中,我们将看到如何使用RHEL / CentOS的和Fedora系统Yum软件包管理器锁定/禁用某些软件包更新 (适用到Fedora的21,后来新的Fedora版本附带DNF默认包管理器)。

    使用Yum禁用/锁定软件包更新

    黄狗更新,修改 (YUM)是基于RedHat的发行版本,比如CentOS的和Fedora包管理工具。下面讨论用于使用Yum锁定/禁用程序包更新的各种策略:

    1.永久禁用安装或更新程序包

    1.打开并编辑yum.conf文件,该文件位于/etc/yum.conf中/etc/yum/yum.conf。 它看起来像下面:

    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=0
    debuglevel=2
    logfile=/var/log/yum.log
    exactarch=1
    obsoletes=1
    gpgcheck=1
    plugins=1
    installonly_limit=5
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release
    ...

    在这里,要排除某些包从安装或向上渐变,你只需要添加排除变量以及你想要排除的包名。例如,如果我要排除所有的python-3从正在更新软件包,那么我只会追加以下行yum.conf :

    exclude=python-3*

    对于多个包排除只是按空格分隔其名称。

    exclude=httpd php 
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=0
    debuglevel=2
    logfile=/var/log/yum.log
    exactarch=1
    obsoletes=1
    gpgcheck=1
    plugins=1
    installonly_limit=5
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release
    exclude=python-3*        [Exclude Single Package]
    exclude=httpd php        [Exclude Multiple Packages]
    ...

    注意 :要包括这些包,忽视了项目yum.conf ,用“-disableexcludes”并将其设置为全部|主| repoid,其中“主要”是指那些进入的yum.conf“repoid”是指那些排斥指定在repos.d目录,解释以后。 现在让我们尝试安装或更新指定的包,并看到yum命令将禁用它们安装或更新。

    # yum install httpd php
    Loaded plugins: fastestmirror, langpacks, versionlock
    Loading mirror speeds from cached hostfile
    * base: mirror.nbrc.ac.in
    * epel: mirror.wanxp.id
    * extras: mirror.nbrc.ac.in
    * updates: mirror.nbrc.ac.in
    Nothing to do
    
    # yum update httpd php
    Loaded plugins: fastestmirror, langpacks, versionlock
    Loading mirror speeds from cached hostfile
    * base: mirror.nbrc.ac.in
    * epel: mirror.wanxp.id
    * extras: mirror.nbrc.ac.in
    * updates: mirror.nbrc.ac.in
    No packages marked for update
    

    2.临时禁用安装或更新程序包

    2.以上是一个永久性的解决方案,以排除包中,除非文件被编辑,这包将不会更新。 这里也是一个临时的解决方案。 就在当你去任何更新,使用时间-x开关Yum命令排除那些你不想更新,像包:

    # yum -x python-3 update

    上面的命令将更新所有的更新可用的软件包,但不包括python-3您的系统。 在这里,不包括多个包,使用-x多次,或者与独立的包名','在一个单一的开关。

    # yum -x httpd -x php update
    OR
    # yum -x httpd,php update

    3.使用--exclude交换机的工作原理一样-x,只需要-exclude和传球来代替-x ','包名到它的分隔列表。

    # yum --exclude httpd,php

    3.使用存储库禁用包更新

    4.通过添加存储库从任何外部源安装的包,还有另一种方式来阻止其向上渐变的未来。 这可以通过编辑来完成.repo这是在/etc/yum/repos.d//etc/yum.repos.d目录下创建文件。 添加排除在回购包名选项。 像:排除任何包说从EPEL回购  ,添加以下行epel.repo文件:

    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch
    #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
    mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    exclude=wine
    

    现在尝试更新包的葡萄酒 ,你会得到错误如下图所示:

    # yum update wine
    Loaded plugins: fastestmirror, langpacks, versionlock
    epel/x86_64/metalink                                    | 5.6 kB     00:00     
    Loading mirror speeds from cached hostfile
    * base: mirror.nbrc.ac.in
    * epel: mirror.wanxp.id
    * extras: mirror.nbrc.ac.in
    * updates: mirror.nbrc.ac.in
    No Match for argument: wine
    No package wine available.
    No packages marked for update
    

    4.使用versionlock选项禁用包更新

    5.Yum另一种方式来掩盖任何软件包的版本从而使其不能用于向上层次,是用versionlockYum的选项,但要做到这一点,就必须Yum插件-versionlock系统上安装的软件包。

    # yum -y install yum-versionlock

    例如,要锁定包的版本说的httpd 2.4.6只,只写下面的命令为root用户。

    # yum versionlock add httpd
    示例输出
    Loaded plugins: fastestmirror, langpacks, versionlock
    Adding versionlock on: 0:httpd-2.4.6-40.el7.centos
    versionlock added: 1

    要查看锁定的包,使用以下命令将列出已被版本锁定的包。

    # yum versionlock list httpd
    示例输出
    Loaded plugins: fastestmirror, langpacks, versionlock
    0:httpd-2.4.6-40.el7.centos.*
    versionlock list done

    结论

    这些是一些提示,将帮助您禁用/锁定包更新使用yum包管理器。如果你有任何其他的技巧做同样的事情,你可以评论他们与我们。

  • 相关阅读:
    Django项目的docker镜像制作
    可爱猫+python——定制化微信机器人
    django环境搭建遇到的问题
    python学习日记——利用python进行数据分析
    python学习日记——django基础
    bug字典整理
    Mysql字典收集
    MySQL开放第三方主机访问权限
    python学习日记——httprunner
    vux swiper 自定义高度
  • 原文地址:https://www.cnblogs.com/dream397/p/13086679.html
Copyright © 2011-2022 走看看