Dear Kenneth, Kenneth Hoste <[email protected]> writes:
> Dear Loris, > > On 17/01/2019 11:07, Loris Bennett wrote: >> Hi, >> >> I set up EasyBuild in my own home directory and managed to build a bunch >> of software. I then copied the whole EasyBuild tree to a different >> directory owned by a system user 'build >> >> Unfortunately the path to my home directory has been written to various >> scripts and, I presume, may have been compiled into some binaries. > > Indeed, moving stuff after installation is a bad idea in general, there's no > easy way of telling where the original installation path is embedded (scripts, > binaries, etc.), let alone 'patch' those hardcoded locations. > > >> Thus I just want to rebuild the software. >> >> However doing say >> >> eb GCCcore-7.3.0.eb --robot --rebuild >> >> fails with the following message to stdout: >> >> make: *** [all] Error 2 >> (at >> easybuild/software/EasyBuild/3.8.0/lib/python2.7/site-packages/easybuild_framework-3.8.0-py2.7.egg/easybuild/tools/run.py:501 >> in parse_cmd_output) >> == 2019-01-17 10:22:21,683 easyblock.py:2864 WARNING build failed (first >> 300 chars): cmd " make -j 40 " exited with exit code 2 and output: >> make[1]: Entering directory >> `/trinity/shared/easybuild/build/GCCcore/7.3.0/dummy-/gcc-7.3.0/stage1_obj' >> >> and the following in the log file: >> >> == 2019-01-17 10:22:21,683 easyblock.py:2864 WARNING build failed (first >> 300 chars): cmd " make -j 40 " exited with exit code 2 and output: >> make[1]: Entering directory >> `/trinity/shared/easybuild/build/GCCcore/7.3.0/dummy-/gcc-7.3.0/stage1_obj' >> mkdir -p -- ./fixincludes >> mkdir -p -- ./libiberty >> mkdir -p -- ./lto-plugin >> mkdir -p -- ./intl >> mkdir -p -- ./gmp >> mkdir -p -- ./libbacktrace >> Co >> == 2019-01-17 10:22:21,684 easyblock.py:286 INFO Closing log for >> application name GCCcore version 7.3.0 > > > I don't think this problem is related to a forced rebuild at all. > > You'll most likely run into the same issue when building GCCcore-7.3.0.eb > without having it already installed somewhere else. I think you are right about the problem not being related to the rebuild. However, shouldn't I just be able to build GCCcore-7.3.0.eb directly using my system GCC? Although I suppose that this kind of bootstrapping will fail if the system GCC is sufficiently old (on my CentOS 7.5 system I have GCC 4.8.5). > Note that with --rebuild, only the specified easyconfig files will actually > get > rebuilt, not its dependencies. > We could probably use a --rebuild-all or something, but I guess the use cases > for this are quite limited... Yes, it occurred to me that rebuild would not deal with the dependencies. I guess --rebuild-all would be useful, although I am hoping not to shoot myself in the foot in similar manner again too soon. >> As I am slightly pushed for time and probably have to recompile most >> stuff anyway, I was wondering what is the most pragmatic way to >> proceed. >> >> Of the directories >> >> apps/ >> build/ >> ebfiles_repo/ >> moduleData/ >> modules/ >> software/ >> sources/ >> >> could I just delete >> >> build/ >> modules/ >> software/ > > As long as those directories were created by EasyBuild, and nothing else is > parked in there, yes. > > In fact, only removing the 'modules' dir is sufficient. > > If no module is available yet, EasyBuild will assume that the software is not > installed yet, and if it happens to find an existing installation directory in > software/, it will remove that directory first. > > Of course, it doesn't hurt to also remove software/ entirely if you're sure > everything will need to be rebuilt anyway... I actually just decided to move the original EasyBuild directory somewhere else and start afresh (by which I shot myself in the foot again, as I had installed Lmod via EB and removed the original system version ...). Maybe the EB documentation could mention somewhere that moving the install directory at a later point is inadvisable. As you say, it is not an EB problem, but trying out EB in one's home directory doesn't appear to be such a good idea as it might seem, if one's ultimate goal is to provide software for multiple users, e.g. via an NFS share. Thanks for the help! Cheers, Loris -- Dr. Loris Bennett (Mr.) ZEDAT, Freie Universität Berlin Email [email protected]

