[Devel] Re: [Users] OpenVZ kernel RPM name

Kir Kolyshkin kir at openvz.org
Mon Nov 20 06:01:07 PST 2006



Dag Wieers wrote:
> On Wed, 8 Nov 2006, Kir Kolyshkin wrote:
>
>   
>> Dag Wieers wrote:
>>     
>>> On Tue, 17 Oct 2006, Kirill Kolyshkin wrote:
>>>       
>>>> On 10/16/06, Dag Wieers <dag at wieers.com> wrote:
>>>>     
>>>>         
>>>>> Yet another mail. The official openvz kernel RPMs are named in such a
>>>>> way
>>>>> that it causes problems. Tools like yum and apt make a special case
>>>>> about
>>>>> kernel RPM files because multiple of these can be installed next to each
>>>>> other.
>>>>>
>>>>> Because OpenVZ name their kernel ovzkernel, this is not possible. Can we
>>>>> change the name of the OpenVZ kernel package from:
>>>>>
>>>>>         ovzkernel-2.6.9-023stab030.1-smp
>>>>> to:
>>>>>         kernel-smp-2.6.9-42.0.3.ovz.1
>>>>>
>>>>> This would make it more clear to people what it is based on and would
>>>>> make
>>>>> apt and yum work with those kernels by default.
>>>>>       
>>>>>           
>>>> I though that (at least) yum detects "install-only" packages by their
>>>> 'provides', not by name. I might be wrong with that though...here's a
>>>> relevant section of /usr/lib/yum-plugins/installonlyn.py (yum-2.6.1):
>>>>
>>>>    for instpkg in conf.installonlypkgs:
>>>>        for m in mems:
>>>>            if (m.name == instpkg or instpkg in m.po.getProvidesNames()) \
>>>>                   and m.ts_state in ('i', 'u'):
>>>>
>>>> I'm not yum expert but it seems that 'instpkg in m.po.getProvidesNames()'
>>>> is
>>>> the piece of code which helps in this scenario.
>>>>     
>>>>         
>>> It's possible, still I don't see why you would deviate from the standard
>>> name. The functionality is most likely introduced to consider kernel-smp and
>>> kernel-bigmem as an alternative to kernel.
>>>
>>> Nevertheless, this doesn't work for apt. kernel-ovz might work, but the
>>> proper way to tag a package is in the version or release tags. Not the
>>> package-name.
>>>
>>>   
>>>       
>>>> We name our kernel packages as 'ovzkernel...' just because we don't want
>>>> to
>>>> mess with usual non-openvz kernels. OpenVZ and non-OpenVZ kernel should
>>>> not
>>>> be treated uniformly, otherwise yum will "upgrade" OpenVZ
>>>> 2.6.16-basedkernel with stock
>>>> 2.6.18 -- which is a wrong thing to do. Well, the fact that vzctl depends
>>>> on
>>>> something that ovzkernel provides might help, but I'm not sure.
>>>>     
>>>>         
>>> People should restrict what packages they use from what repsitory they have
>>> enabled and/or exceptions. Having ovzkernel will not prevent additional
>>> kernel packages to be updated and potentially replacing the ovz kernel in
>>> grub. Especially when like in our case, we like to have the stock kernel
>>> available for disaster recovery, troubleshooting or vendor-support.
>>>
>>> So I don't see the purpose of renaming the ovz kernel package to ovzkernel.
>>> Users still need to check what kernel is in place and verify before
>>> rebooting. If anything, it gives a false sense of security or causes more
>>> confusing.
>>>
>>> Especially when documentation and forums refer to the following command to
>>> list the available kernels:
>>>
>>> 	rpm -q kernel
>>> or	rpm -qa 'kernel-*'
>>>
>>> Proper standards should try to reduce the amount of 'expert' information.
>>> Needing to know that the openvz kernel is called ovzkernel is useless
>>> information by any means.
>>>       
>> Dag, all,
>>
>> As you might be aware we have switched to name our kernel rpm just 'kernel' in
>> the latest devel release.
>>
>> Apparently, it broke the yum update procedure. New kernel is not recognized by
>> yum, even if it provides vzkernel. I have tried with a kernel package which
>> also 'Provides: ovzkernel = 2.6.18-ovz028test002' but that doesn't change the
>> situation. I will now try with 'Obsoletes: ovzkernel' but this solution is
>> rough since it will probably uninstall the previous kernel (depends on yum
>> version perhaps).
>>
>> I have also try "new install" scenario on my FC5 system, it works but with a
>> bad side effect:
>>
>> Dependencies Resolved
>>
>> =============================================================================
>> Package                 Arch       Version          Repository        Size
>> =============================================================================
>> Installing:
>> vzctl                   i386       3.0.12-1         openvz            114 k
>> vzquota                 i386       3.0.9-1          openvz             47 k
>> Removing:
>> kernel                  i686       2.6.18-1.2200.fc5  installed          39 M
>> Installing for dependencies:
>> kernel                  i686       2.6.18-ovz028test002.1  openvz-kernel-devel
>> 11 M
>>
>> I.e. it tries to remove the latest FC5 kernel :-\ Too bad, I don't want
>> that...
>>
>> Perhaps somebody has a way to fix that?
>>     
>
> Might this be because your system is configured to hold not more than X 
> number of kernels ? I see no reason why a new kernel would cause an old 
> kernel to be removed if there's no obsolete statement, except if there's a 
> LIFO mechanism to push old kernels out.
>
> I'm interested to see the SPEC file and debug the problem.
The major problem here comes from the fact that OpenVZ kernels are older 
than the distro ones.

Problem 1: clean install of kernel from rpm using yum:

[kir at kir kernel]$ sudo rpm -ihv kernel-2.6.18-ovz028test003.1.i686.rpm
Preparing...                ########################################### 
[100%]
        package kernel-2.6.18-1.2200.fc5 (which is newer than 
kernel-2.6.18-ovz028test003.1) is already installed

Possible fixes: remove all distro kernels (including the one you are 
running on), or use --oldpackage option to rpm.

Still it will not solve the next problem.

Problem 2: yum update:

$ sudo yum update
...
=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 kernel                  i686       2.6.18-1.2239.fc5  
updates            15 M
Removing:
 kernel                  i686       2.6.18-ovz028test003.1  
installed          28 M
 kernel                  i686       2.6.18-1.2200.fc5  
installed          39 M
Removing for dependencies:
 vzctl                   i386       3.0.12-1         installed         321 k
 vzpkg                   noarch     2.7.0-18         installed          78 k
 vzquota                 i386       3.0.9-1          installed         140 k
 vztmpl-fedora-core-5    i386       2.0-2            installed         199 k
 vztmpl-mandriva-2006    i386       1.0-1            installed         200 k

Possible fix: disable kernel packages from all the repos but OpenVZ one. 
Hard to do since you can not do it in your own .repo file.

To tell the truth, I'm a bit lost at this point. Can anybody suggest 
anything?




More information about the Devel mailing list