[CentOS] What happened if install a el7 package on a el6 system

Tue May 7 14:36:13 UTC 2019
mark <m.roth at 5-cent.us>

Valeri Galtsev wrote:
> On 2019-05-07 04:50, Stephen John Smoogen wrote:
>> On Tue, 7 May 2019 at 04:06, wuzhouhui <wuzhouhui14 at mails.ucas.ac.cn>
>> wrote:
>>>
>>> Recently, I encountered a interesting phenomenon that CentOS 6.3
>>> running as normal even if I (my colleague, actually) installed a kernel
>>> that build for CentOS 7.x (e.g. kernel-3.10.0-327.el7.x86_64.rpm).
>>>
>>> I found kernel is mismatch accidentally when I using "uname -r" to
>>> check kernel version. So my question is what the harmness we will get
>>> if I install a el7 rpm into a el6 system?
>>>
>> Many CentOS-7 packages will not install because they will need
>> dependencies that the EL-6 does not have. The kernel is different
>> because it is mostly self-contained and meant to be parallel installed.
>> In most cases, it should result in an unbootable system because
>> the boot is going to be dracut+systemd bits and the EL-6 has none
>> of that.
>>
> +1
> One needs to rebuild (recompile) everything that was not built on
> "mismatched" version of the system. And this will constitute correct
> "installation using old UNIX way". Otherwise you quite likely will have
> problems (even if they are hidden, i.e. if it appears to you that "all
> works"). One of examples would be using some library that is of different
> version than your extra software was compiled against. The library might
> be found, and successfully loaded at an execution time, but it may have
> different subroutine entry names or some missing which may be discovered
> only under some circumstances. At a compilation time the headers will be
> what provides necessary information... Anyway, understanding this will
> tell you apart as a sysadmin from "non-sysadmin" person ;-)
>
Yup, Valeri's absolutely correct. I *have* rebuilt drivers (Rocket Raid,
for example, doesn't appear to maintain drivers for cards over about 4 yr
old). The biggest problem in mismatches is that someone's changed a
variable name, for whatever reason, and you get "unknown variable".

   mark