Search code examples
linuxcentossystemdautoconf

Error: configure: error: ln doesn't support --relative when building Systemd


While installing systemd version 221 on CentOS 6.9 using following steps:

# wget https://www.freedesktop.org/software/systemd/systemd-221.tar.xz
# tar -xJf systemd-221.tar.xz
# cd systemd-221
# ./configure

configure is failing with the following output:

checking for sulogin... /sbin/sulogin
checking for mount... /bin/mount
checking for umount... /bin/umount
configure: error: *** ln doesn't support --relative ***

Although I have installed all the required yum-devel as well.

# yum install gcc intltool gperf glib2-devel
# yum search xz-devel

What is the problem and how do I fix it?


Solution

  • checking for sulogin... /sbin/sulogin
    checking for mount... /bin/mount
    checking for umount... /bin/umount
    configure: error: ln doesn't support --relative
    

    CentOS 6 is too old. The version of Coreutils it supplies is too old.

    It looks like Coreutils has a fix for ln --relative dated 2014-03-13 via commit e52293aa7fcf. Also see ln.c history:

    ln: --relative: fix updating of existing symlinks

    Don't dereference an existing symlink being replaced. I.E. generate the symlink relative to the symlink's containing dir, rather than to some arbitrary place it points to.

    • src/ln.c (convert_abs_rel): Don't consider the final component of the symlink name when canonicalizing, as we want to avoid dereferencing the final component.
    • tests/ln/relative.sh: Add a test case.

    Red Hat is infamous for supplying antique software. This is why you avoid Red Hat software if you can. Fedora is OK because it is always up to date. But Red Hat and CentOS are the pits...