easybuilders / easybuild-framework

EasyBuild is a software installation framework in Python that allows you to install software in a structured and robust way.
https://easybuild.io
GNU General Public License v2.0
152 stars 204 forks source link

EasyBuild fails at stage 2 #2372

Open kiwijo2000 opened 6 years ago

kiwijo2000 commented 6 years ago

Hi There I'm having some issues getting EasyBuild installed, which is probably because I'm not very confident using Unix and don't really understand what's going on with the error message. I've tried following some of the previous posts on how to fix install issues, but I couldn't see how to resolve my problem. I have installed Lua and Lmod, and I think that I've set up the paths to these correctly. Below is the error I am getting:

$ export EASYBUILD_MODULE_SYNTAX=Lua
$ python bootstrap_eb.py $EASYBUILD_PREFIX
[[INFO]] EasyBuild bootstrap script (version 20170808.01, MD5: fd6853497d44ae84afd26ada0c6ff147)
[[INFO]] Found Python 2.7.5 (default, Aug  2 2016, 04:20:16) ; [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]

[[INFO]] Installation prefix /home/runcklesslab/software/Easybuild/$/home/runcklesslab/software/Easybuild
[[INFO]] Found module command 'lmod' (Lmod), so using it.
[[INFO]] Suitable setuptools installation already found, skipping stage 0...

[[INFO]] +++ STAGE 1: installing EasyBuild in temporary dir with easy_install...

[[INFO]] installing EasyBuild with 'easy_install --quiet --upgrade --prefix=/tmp/tmpdkqh2k/eb_stage1 easybuild'
[[INFO]] running post install command 'easy_install --upgrade --prefix=/tmp/tmpdkqh2k/eb_stage1 vsc-base'

[[INFO]] +++ STAGE 2: installing EasyBuild in /home/runcklesslab/software/Easybuild/$/home/runcklesslab/software/Easybuild with EasyBuild from stage 1...

== temporary log file in case of crash /tmp/eb-HSs_Ew/easybuild-ZbHxUy.log
== processing EasyBuild easyconfig /tmp/tmpdkqh2k/EasyBuild-3.5.0.eb
== building and installing EasyBuild/3.5.0...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== postprocessing...
== sanity checking...
== FAILED: Installation ended unsuccessfully (build directory: /tmp/tmpdkqh2k/EasyBuild/3.5.0/dummy-dummy): build failed (first 300 chars): Sanity check failed: EasyBuild failed to install, cmd '/usr/bin/python -c "import easybuild"' (stdin: None) output: Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named easybuild
, sanity check command eb --version exited with code 1 (output: /usr/bi
== Results of the build can be found in the log file(s) /tmp/eb-HSs_Ew/easybuild-EasyBuild-3.5.0-20180108.145144.TZYNU.log
Traceback (most recent call last):
  File "bootstrap_eb.py", line 1024, in <module>
    main()
  File "bootstrap_eb.py", line 827, in main
    stage2(tmpdir, templates, install_path, distribute_egg_dir, sourcepath)
  File "bootstrap_eb.py", line 697, in stage2
    easybuild_main()
  File "/tmp/tmpdkqh2k/eb_stage1/lib/python2.7/site-packages/easybuild_framework-3.5.0-py2.7.egg/easybuild/main.py", line 473, in main
    exit_on_failure=exit_on_failure, hooks=hooks)
  File "/tmp/tmpdkqh2k/eb_stage1/lib/python2.7/site-packages/easybuild_framework-3.5.0-py2.7.egg/easybuild/main.py", line 163, in build_and_install_software
    raise EasyBuildError(test_msg)
easybuild.tools.build_log.EasyBuildError: 'Build of /tmp/tmpdkqh2k/EasyBuild-3.5.0.eb failed (err: \'build failed (first 300 chars): Sanity check failed: EasyBuild failed to install, cmd \\\'/usr/bin/python -c "import easybuild"\\\' (stdin: None) output: Traceback (most recent call last):\\n  File "<string>", line 1, in <module>\\nImportError: No module named easybuild\\n, sanity check command eb --version exited with code 1 (output: /usr/bi\')'

Would you be able to provide some easy to follow instructions on what I can do to try and fix this issue? Many thanks!

kiwijo2000 commented 6 years ago

Sorry, ignore this. I realised I should have run it as

python bootstrap_eb.py EASYBUILD_PREFIX

not

python bootstrap_eb.py $EASYBUILD_PREFIX
boegel commented 6 years ago

@kiwijo2000 I consider this a bug, so thanks for reporting this.

Apparently the bootstrap script doesn't deal well with being passed a relative path (which is basically what you're doing when passing EASYBUILD_PREFIX rather than $EASYBUILD_PREFIX).