easybuilders / easybuild

EasyBuild - building software with ease
http://easybuild.io
GNU General Public License v2.0
470 stars 144 forks source link

libtinfo.so': No such file or d Building R #702

Open marekbeckmann opened 3 years ago

marekbeckmann commented 3 years ago

Hello,

I am trying to build R with Easy Build, but it ends with the following error:

== FAILED: Installation ended unsuccessfully (build directory: /home/user/.local/easybuild/build/ncurses/6.0/system-system): build failed (first 300 chars): cmd "ln -s /home/user/.local/easybuild/software/ncurses/6.0/lib/libncurses.so /home/user/.local/easybuild/software/ncurses/6.0/lib/libtinfo.so" exited with exit code 1 and output:
ln: failed to create symbolic link '/home/user/.local/easybuild/software/ncurses/6.0/lib/libtinfo.so': No such file or d (took 1 min 5 sec)
== Results of the build can be found in the log file(s) /tmp/eb-9_2wuptg/easybuild-ncurses-6.0-20210531.121840.bngRO.log
ERROR: Build of /home/user/.local/easybuild/software/EasyBuild/4.3.4/easybuild/easyconfigs/n/ncurses/ncurses-6.0.eb failed (err: 'build failed (first 300 chars): cmd "ln -s /home/user/.local/easybuild/software/ncurses/6.0/lib/libncurses.so /home/user/.local/easybuild/software/ncurses/6.0/lib/libtinfo.so" exited with exit code 1 and output:\nln: failed to create symbolic link \'/home/user/.local/easybuild/software/ncurses/6.0/lib/libtinfo.so\': No such file or d')

How can I fix this error? I installed EB following the easy setup instructions on the docs page.

The eb Im trying to install is: eb V8-2.3-foss-2019a-R-3.6.0.eb --robot

module list: Currently Loaded Modules: 1) EasyBuild/4.3.4

My Environment:

If you need further information, please let me know.

boegel commented 3 years ago

@marekbeckmann OpenSUSE is fairly uncommon in the EasyBuild community, which is probably why we haven't noticed this issue yet...

Can you share the contents of the ncurses install directory? I.e. the output of "ls -l /home/user/.local/easybuild/software/ncurses/6.0", and also "ls -l /home/user/.local/easybuild/software/ncurses/6.0/lib*"?

marekbeckmann commented 3 years ago

Thanks for the quick reply @boegel, I attached the Output of the ls commands, as well as tree (for better overview). Im fairly new to EasyBuild, so out of interest, what would be the "go-to" distribution to use?

ncurses_6_0.txt ncurses_6_0_lib.txt ncurses_6_0_tree.txt

boegel commented 3 years ago

@marekbeckmann The problem you're running into is that the library files like libncurses.so are being installed in a lib64 subdirectory, while we assume in the ncurses-6.0.eb easyconfig file that they're located in a lib subdirectory...

That's a quirk on OpenSUSE we've seen before, and which we're currently not taking into account consistently. We did make changes related to this recently (see https://github.com/easybuilders/easybuild-framework/pull/3580), but they don't help in this particular case (because that symlinking we do there is done after running the commands specified in postinstallcmds, which is where the problem pops up for you.

To fix this, please try the following:

Do let us know if this helps. To properly fix the problem you're seeing, we should probably create the lib -> lib64 symlink (again, see https://github.com/easybuilders/easybuild-framework/pull/3580) earlier on...

The most comment distribution in the EasyBuild community is by far CentOS (or anything Red Hat based), see the results of our most recent user survey (slide 17 in https://easybuild.io/eum21/003_eum21_easybuild_state_of_the_union.pdf).

marekbeckmann commented 3 years ago

Thanks for your help, I got rid of the error that way (although the next one occurred right after). A colleague also just told me, that under Open-Suse, the package "site-config", which is preinstalled, has to be uninstalled, to resolve the lib issue. I tried it out and it worked for me, so this might be a better fix. However it didn't work with my existing EB environment. I'll probably look in to Ubuntu/Debian for EB in the future, since Centos is being discontinued.

boegel commented 3 years ago

@marekbeckmann Another option would be Rocky Linux, it looks like that'll become the successor of CentOS community-wise... See https://rockylinux.org/