#2270 PR closed: Fix for CentOS 7.7 and 8.0 where certain programs (e.g. dhclient) require additional libraries

Labels: enhancement, bug, documentation, won't fix / can't fix / obsolete

DamaniN opened issue at 2019-10-30 04:30:

Pull Request Details:
  • Type: Enhancement

  • Impact: Normal

  • Reference to related issue (URL):

#2266

  • How was this pull request tested?

Used rear mkrescue to successfully create an ISO both from the command line and via CDM's fileset pre-scripts on CentOS 7.7 and 8.0. Successfully booted the CentOS 7.7 ISO.

  • Brief description of the changes in this pull request:

Added LD_LIBRARY_PATH information to the CDM documentation.

jsmeix commented at 2019-11-04 12:43:

@rear/contributors
I would like to have a review by another ReaR maintainer
in particular the export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:..." part.

I think this is not yet the right solution but only a workaround for now
because I guess in CentOS 7.7 and 8.0 this is done differently
so a review from a CentOS 7.7 and 8.0 user would be much appreciated.

Basically in the ReaR recovery system things should be done same
as on the original CentOS 7.7 and 8.0 systems.

So if on the original CentOS 7.7 and 8.0 systems things are done via

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:...

the same should be automatically done in the ReaR recovery system
and when on the original CentOS 7.7 and 8.0 systems things are done
differently things should be done same in the ReaR recovery system.

jsmeix commented at 2019-11-08 13:55:

In general regarding a global export LD_LIBRARY_PATH="...":

Setting a global LD_LIBRARY_PATH leads to unexpected side effects
because libraries via LD_LIBRARY_PATH have precedence
over the normal/default system libraries so that
after export LD_LIBRARY_PATH="..." all programs
are run with the special libraries in LD_LIBRARY_PATH
and not with the normal/default system libraries.

In particular export LD_LIBRARY_PATH="..." in etc/rear/local.conf
let all programs in all ReaR scripts run with the special libraries
in LD_LIBRARY_PATH and not with the normal system libraries
so that the programs could behave different when run "in ReaR"
compared to when run directly on the system.

Cf.
https://github.com/rear/rear/issues/1533#issuecomment-336622504

https://github.com/rear/rear/pull/1562#issuecomment-342111737

https://github.com/rear/rear/issues/1927#issuecomment-434224424

https://github.com/rear/rear/issues/1907#issuecomment-434215448

https://www.hpc.dtu.dk/?page_id=1180

where the latter reads in particular (excerpts):

LD_LIBRARY_PATH – or: How to get yourself into trouble!
...
LD_LIBRARY_PATH tells the dynamic link loader ...
where to search for the dynamic shared libraries
an application was linked against ...
and this list is then searched
before the compiled-in search path(s),
and the standard locations (typically /lib, /usr/lib, ...)
...
It is even getting worse, if this crutch is applied
globally into an user’s (or the system’s!) environment
...
Inconsistency:
This is the most common problem.
LD_LIBRARY_PATH forces an application
to load a shared library it wasn’t linked against,
and that is quite likely not compatible with
the original version.
This can either be very obvious,
i.e. the application crashes,
or it can lead to wrong results, if the
picked up library not quite does what the
original version would have done.
Especially the latter is sometimes hard to debug.

DamaniN commented at 2019-11-15 20:51:

@jsmeix, so what is a more appropriate way to resolve this issue? I don't have much experience in how to tell ReaR where to look for libraries if it cannot find them in the default paths.

jsmeix commented at 2019-11-18 11:21:

@DamaniN
see https://github.com/rear/rear/issues/2266#issuecomment-554971616

The real fix should be to properly
replicate in the ReaR recovery system
the config of the run-time linker (for /sbin/dhclient)
from the config on the original CentOS system

jsmeix commented at 2019-11-21 09:30:

@DamaniN
I guess you closed this pull request because
you are now trying to get this issue solved in a different way?

DamaniN commented at 2019-11-22 02:50:

That pull request had an extra commit from #2267 in it. I removed the commit for this issue to allow it to close and merge. I haven't found a better fix for this yet and will repost the original shortly.


[Export of Github issue for rear/rear.]