CentOS / RHEL 下锁定软件包在一个特定的版本
<p>有些时候,我们在对系统进行更新操作时,又不需要对某些软件包进行升级操作,要把该包锁定在某个特定版本下。比如mysql-server,为了避免更新遇到不可预知的错误,禁止对该包进行升级。</p><p>那么该如何锁定包在特定版本下呢?</p>
<p>在上一篇《CentOS / RHEL 防止Kernel升级》,该方法也可以实现。</p>
<p>下面我来介绍另一种方法。使用yum versionlock 命令来锁定版本。</p>
<p>1. 安装</p><pre class="brush:bash;toolbar:false"># yum install yum-plugin-versionlock.noarch</pre><p>2. 添加锁定包</p>
<p>将perl包锁定到当前版本</p><pre class="brush:bash;toolbar:false"># yum versionlock perl
Loaded plugins: fastestmirror, versionlock
Adding versionlock on: 4:perl-5.10.1-127.el6
versionlock added: 1</pre><p>3. 查看锁定列表</p><pre class="brush:bash;toolbar:false"># yum versionlock list
Loaded plugins: fastestmirror, versionlock
4:perl-5.10.1-127.el6.*
versionlock list done</pre><p>4. 清除单个包锁定</p><pre class="brush:bash;toolbar:false"># yum versionlock delete '4:perl-5.10.1-127.el6.*'
Loaded plugins: fastestmirror, versionlock
Deleting versionlock for: 4:perl-5.10.1-127.el6.*
versionlock deleted: 1</pre><p>5. 清除所有锁定</p><pre class="brush:bash;toolbar:false"># yum versionlock clear
Loaded plugins: fastestmirror, versionlock
versionlock cleared</pre><p>6. 实例</p><pre class="brush:bash;toolbar:false"># yum check-update perl
Loaded plugins: fastestmirror, versionlock
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirror01.idc.hinet.net
* extras: mirrors.163.com
* updates: mirrors.163.com
perl.x86_64 4:5.10.1-136.el6 base</pre><p>锁定perl当前版本</p><pre class="brush:bash;toolbar:false"># yum versionlock perl
Loaded plugins: fastestmirror, versionlock
Adding versionlock on: 4:perl-5.10.1-127.el6
versionlock added: 1</pre><p>更新perl版本</p><pre class="brush:bash;toolbar:false"># yum update perl
Loaded plugins: fastestmirror, versionlock
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirror01.idc.hinet.net
* extras: mirrors.163.com
* updates: mirrors.163.com
Setting up Update Process
No Packages marked for Update</pre><p>No Packages marked for Update可见锁定成功了。</p>
<p>为了更新取消perl锁定</p><pre class="brush:bash;toolbar:false"># yum versionlock delete '4:perl-5.10.1-127.el6.*'
Loaded plugins: fastestmirror, versionlock
Deleting versionlock for: 4:perl-5.10.1-127.el6.*
versionlock deleted: 1
# yum versionlock list
Loaded plugins: fastestmirror, versionlock
0:mysql-server-5.1.73-3.el6_5.*
0:mysql-5.1.73-3.el6_5.*
versionlock list done</pre><p>更新perl包</p><pre class="brush:bash;toolbar:false"># yum update -y perl
Updated:
perl.x86_64 4:5.10.1-136.el6
Complete!</pre><p>更新前后perl版本</p><pre class="brush:bash;toolbar:false"># rpm -qa | grep perl
perl-5.10.1-127.el6.x86_64
# rpm -qa | grep perl
perl-5.10.1-136.el6.x86_64</pre><p><img src="https://zhuji.jb51.net/uploads/img/20230517/bb621cf02b1270d62a8f86ddc1b26251.jpg" width="602" height="105"></p>
<p>使用该指令就可以避免误升级软件包到最新版本。特别是在生产环境下的软件包,版本的更新可以有些配置参数不兼容到服务停止,从而影响正常的访问。</p>
頁:
[1]