Hi Ken et al, please, while you are at it, could you check that whatever the outcome it can really run stand-alone in off-line mode, without asking online for “distribute*"? (or, make that a tuneable)
>1yr ago, while I experimented on delivering EB in a module-less and offline >environment [1], I remember I had to spin-up a local web-server to feed distribute_setup.py or such. If I recall right, the first stage would not need it but the next stage then required it (!), so some extra hackery was required to overcome the dependency. I had to find out first-hand because I was at the bottom of the pit, right here [2]. The good news are that, yes, it worked! I’d agree this would be a fine subject for a hackathon.... t.b.c. F. [1] https://github.com/fgeorgatos/easybuild.experimental/tree/master/users/fgeorgatos/eb_boot [2] http://www.tunneltalk.com/images/Channel-Tunnel/Geological-section-of-the-53km-long-Channel.jpg On Jun 13, 2016, at 1:12 PM, Kenneth Hoste <[email protected]> wrote: > Hi Stuart, > > I patched the EasyBuildMeta easyblock so that the vsc-install source tarball > is also picked up, which should result into supporting offline installation > of EasyBuild-with-EasyBuild (note: the bootstrap script currently still > requires to be online). > > Can you give this a try? > > You can download the updated easyblock from [1] (see [2] for raw link), and > use the updated easyconfig from [3] (see [4] for raw link), > and then run this on an offline system: > > eb EasyBuild-2.8.1.eb --include-easyblocks $PWD/easybuildmeta.py > > Please let me know how that turns out. > > regards, > > Kenneth > > [1] https://github.com/hpcugent/easybuild-easyblocks/pull/957 > [2] > https://raw.githubusercontent.com/boegel/easybuild-easyblocks/vsc_install_easybuildmeta/easybuild/easyblocks/e/easybuildmeta.py > [3] https://github.com/hpcugent/easybuild-easyconfigs/pull/3203 > [4] > https://raw.githubusercontent.com/boegel/easybuild-easyconfigs/eb281_vsc_install/easybuild/easyconfigs/e/EasyBuild/EasyBuild-2.8.1.eb > > > On 11/06/16 22:44, Kenneth Hoste wrote: >> Hi Stuart, >> >> Again, thanks for the feedback! >> >> On 11/06/16 20:22, Stuart Barkley wrote: >>> I'm having another issue freshening up my easybuild environment. >>> >>> My cluster is not directly Internet connected and compute nodes do not >>> have any Internet access at all. In the past I've been able to build >>> easybuild based programs once I've externally fetched the sources and >>> placed them in a source tree. >>> >>> With 2.8.1 (and I think starting with 2.7.0) I'm now unable to rebuild >>> easybuild itself into its final place. There seems to be at least one >>> failing connection attempt in the easybuild build process itself. >>> >>> Hand transcribed output from the error log: >>> >>> == testing... >>> == installimg... >>> == FAILED: Installation ended unsuccessfully...300 chars: cmd " >>> /usr/bin/python setup.py install --prefix.... >>> >>> Hand transcribed portion of the --keep-log log file: >>> >>> ERROR cmd " /usr/bin/python setup.py install --prefix.... >>> This is based on vsc.install.shared_setup 0.10.6 >>> ... >>> Searching for vsc-install>=0.10.1 >>> Reading http://pypi.python.org/simple/vsc-install/ >>> WARN: Download error: [errno -2] name or service not found..... >>> >>> On my external VM I see the following file/directory being fetched: >>> >>> GET "http://pypi.python.org/simple/vsc-install/" "Python-urllib/2.6 >>> distribute/0.6.10" >>> >>> It only seems to read the directory and not download any actual files. >>> On the non-Internet connected system this seems to be the cause of the >>> installation abort. >>> >>> Is vsc-install required? It doesn't actually seem to download it. I >>> thought it was actually packaged in easybuild itself. I think there >>> have been issues in the past with vsc-base requirements. I don't see >>> a CentOS RPM that provides this functionality (but may have missed >>> it). >> >> vsc-install is currently a runtime requirement for vsc-base, although only >> for 'obscure' reasons. >> >> It is a dependency for EasyBuild itself as well, but only to run the unit >> tests that are included in the EasyBuild installation (cfr. >> http://easybuild.readthedocs.io/en/latest/Unit-tests.html). >> >> So yes, vsc-install is required, and the installation process will download >> it (albeit indirectly via setuptools, which will try and pull it from PyPI). >> >> >>> I have tried placing the current vsc-install source tarball in my >>> sources directory at various places that seem likely but haven't found >>> a path which works (v/, v/vsc-install/, in a python modules >>> directory). Is there somewhere I can drop the source file to work >>> around this problem? >> >> Currently, that won't work, because vsc-install isn't listed as a direct >> dependency of EasyBuild; it's pulled in indirectly as a dependency of >> vsc-base by whichever Python install tool that is used (e.g. setuptools when >> installing EB with EB). >> >> Of course, we should fix this. >> >> I've opened https://github.com/hpcugent/easybuild-framework/issues/1803 to >> track this. >> >> BTW: source tarballs should go into the sourcepath for the 'parent' project; >> so in this case, you should place the source tarballs for vsc-base (and soon >> vsc-install) into <sourcepath>/e/EasyBuild/. >> >>> Please excuse the vagueness of this report. Getting machine readable >>> data out from my build system is very awkward at the present time. >>> >>> ======== >>> >>> For reference (in the past) I have had reasonable success with build >>> on a non-Internet connected system with the following process (again >>> waving hands a little bit since I'm not on my actual build system at >>> the moment): >>> >>> I build a scratch KVM Based virtual machine with Internet access. I >>> can then download and execute the easybuild bootstrap script. >>> Alternatively, I can copy over an already installed easybuild >>> installation and use it. >>> >>> I can then use the --stop=fetch (along with the occasional --robot and >>> --force options) to get easybuild to download most source distribution >>> files. >>> >>> I always use a constant --sourcepath option so I accumulate a cache of >>> downloaded sources which I can transfer to the build system. >>> >>> This works for most of the sources, however there are a couple of >>> exceptions where this doesn't work (I think these actually apply even >>> if you are Internet connected): >>> >>> - Certain files require a manual download, possibly accepting a >>> license agreement through a web interface. In some cases finding the >>> download link is difficult and easybuild could help by giving an >>> accurate starting link (some do, some are missing or wrong). >> >> We usually try to provide information on where to fetch sources from in the >> easyconfig file itself, above the 'sources' line. >> >>> - Occasionally a file distribution location has changed and the .eb >>> files needs to be updated (or the source file manually downloaded). >> >> Please report issues like these via >> https://github.com/hpcugent/easybuild-easyconfigs/issues . >> >>> - Source distribution files "disappear". I keep a long term cache of >>> all source distribution files I've previously downloaded. >> There have been discussions on a central 'archive' set up by the EasyBuild >> community for things software that does this, but it hasn't materialized >> yet. Redistributing sources and the possible legal aspects involved with >> that certainly haven't helped... >> >> We do try an reach out to upstream to remedy this though. Sometimes we fail >> (*cough* Bioconductor *cough*), but sometimes it works out (e.g. MVAPICH2, >> cfr. https://github.com/hpcugent/easybuild-easyconfigs/issues/973). >> >>> - Other than the above, I don't think I've run into anything which >>> actually requires Internet access at build time if you have all the >>> source tarballs. Anything needing Internet access at build/install >>> time is not supplying complete sources and I consider broken. >> >> I agree, and I don't like it either that EasyBuild itself currently falls >> into this category. >> >> There are examples I can come up with though that require online access >> because they download stuff at build time (ParaView, Amber, ...). >> >> >>> Even with having source tarballs, you may not have the actual sources. >>> A disturbing number of distribution tarballs are now coming with >>> precompiled binaries and not true sources. >> >> Any examples of that? >> >> >> regards, >> >> Kenneth > cheers, Fotis -- echo "sysadmin know better bash than english" | sed s/min/mins/ \ | sed 's/better bash/bash better/' # signal detected in a CERN forum

