# easybuild EasyBuild is a software build and installation framework that allows you to manage software in an efficient way: (http://easybuild.readthedocs.io/en/latest/Introduction.html). This repo provides additional easyconfigs for ELIC ecosystem ## Install Go to `/opt/easybuild` and: ```bash rmdir easyconfigs; git clone ssh://egit/pbarriat/easyconfigs.git ``` ## Requirements * openSUSE : `gcc-c++ patch libopenssl-devel gperf` * CentOS : `openssl-devel libibverbs-devel autoconf automake binutils bison flex gcc gcc-c++ gettext libtool make patch pkgconfig bzip2 unzip jq-devel v8-devel postgresql-devel tcsh unixODBC*` * ubuntu : ```bash sudo apt install gcc-4.8 g++-4.8 gfortran-4.8 libibverbs-dev sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 20 sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-4.8 10 sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-7 20 sudo update-alternatives --set cc /usr/bin/gcc sudo update-alternatives --set c++ /usr/bin/g++ sudo update-alternatives --set f77 /usr/bin/gfortran sudo update-alternatives --config gcc sudo update-alternatives --config g++ sudo update-alternatives --config gfortran ``` ## Getting started Check if you have the lastest easybuild version: ```bash sudo pip install easybuild --upgrade cd /opt/easybuild/easyconfigs/foss-2017b ``` Then call `screen` and : * `eb --tmpdir=/tmp --parallel=12 ./OpenMPI-2.1.1-GCC-6.4.0-2.28.eb -r` * `eb --tmpdir=/tmp --parallel=12 ./R-3.4.3-foss-2017b-X11-20171023.eb` * `eb --tmpdir=/tmp --parallel=12 netCDF-Fortran-4.4.4-foss-2017b.eb -r` * `eb --tmpdir=/tmp --parallel=12 ./netCDF-4.4.1.1-foss-2017b-HDF5-1.8.19.eb -r` * `eb --tmpdir=/tmp --parallel=12 ./CDO-1.9.2-foss-2017b.eb -r` * `eb --tmpdir=/tmp --parallel=12 ./NCO-4.7.1-foss-2017b.eb -r` * `eb --tmpdir=/tmp --parallel=12 GEOS-3.6.2-foss-2017b-Python-3.6.3.eb -r` * `eb --tmpdir=/tmp --parallel=12 Tkinter-2.7.14-foss-2017b-Python-2.7.14.eb` * `eb --tmpdir=/tmp --parallel=12 MATLAB-UCL-2017a.eb` * `eb --tmpdir=/tmp --parallel=12 ./protobuf-3.4.0-foss-2017b.eb` * `eb --tmpdir=/tmp --parallel=12 GDAL-2.2.3-foss-2017b-Python-3.6.3.eb` * `eb --tmpdir=/tmp --parallel=12 Qt-4.8.7-foss-2017b.eb` * `eb --tmpdir=/tmp --parallel=12 Qt5-5.9.3-foss-2017b.eb` > eb --tmpdir=/tmp --parallel=12 ./NCL-6.4.0-foss-2017b.eb -r ```bash cd /opt/easybuild/easyconfigs/intel-2016.02 ``` * `eb --tmpdir=/tmp --parallel=12 iccifort-2016.2.181-GCC-4.9.3-2.25.eb -r` * `eb --tmpdir=/tmp --parallel=12 ./icc-2016.2.181-GCC-4.9.3-2.25.eb` * `eb --tmpdir=/tmp --parallel=12 ./ifort-2016.2.181-GCC-4.9.3-2.25.eb` * `eb --tmpdir=/tmp --parallel=12 iccifort-2016.2.181-GCC-4.9.3-2.25.eb` * `eb --tmpdir=/tmp --parallel=12 ./netCDF-Fortran-4.4.4-intel-2016.02-GCC-4.9.eb` Finally, run ```bash cd /opt/easybuild/easyconfigs/utils ./install_modulerc_new.sh ``` ## Python2 packages Fix `/opt/modules/all/GEOS/3.6.2-foss-2017b-Python-2.7.14.lua` by adding `setenv("GEOS_DIR", root)` ```bash module load GDAL/2.2.3-foss-2017b-Python-2.7.14 pip install --upgrade pip pip install vsc-base vsc-install pip install cffi geos netcdf4 cdo geoval cartopy iris matplotlib ipython pyproj scikit-image pillow pandas xarray joblib six gdal shapely rasterio geopandas pytest boto3 salem motionless progressbar2 fiona geopandas configobj https://github.com/matplotlib/basemap/archive/v1.1.0.tar.gz pip install spyder python_qt_binding python-qt Qt.py ecmwf-api-client pybufr-ecmwf PySide module purge ``` Fix `/opt/modules/all/Python/2.7.14-foss-2017b.lua` by adding: >if not isloaded("GDAL/2.2.3-foss-2017b-Python-2.7.14") then > > load("GDAL/2.2.3-foss-2017b-Python-2.7.14") > >end >if not isloaded("Tkinter/2.7.14-foss-2017b-Python-2.7.14") then > > load("Tkinter/2.7.14-foss-2017b-Python-2.7.14") > >end ## Python3 issue Check if you have an issue with Python3: ```bash module load Python/3.6.3-foss-2017b pip ``` If yes: ```bash pip install -Iv pysha3==0.3 pip vimdiff /opt/software/Python/3.6.3-foss-2017b/lib/python3.6/hashlib.py utils/hashlib.py ``` ## Python3 packages Fix `/opt/modules/all/GEOS/3.6.2-foss-2017b-Python-3.6.3.lua` by adding `setenv("GEOS_DIR", root)` ```bash module load GDAL/2.2.3-foss-2017b-Python-3.6.3 PROJ pip install --upgrade pip pip install cffi geos netcdf4 cdo geoval cartopy matplotlib ipython pyproj scikit-image pillow pandas xarray joblib six gdal shapely rasterio geopandas pytest boto3 salem motionless progressbar2 fiona geopandas configobj https://github.com/matplotlib/basemap/archive/v1.1.0.tar.gz pip install spyder python_qt_binding python-qt Qt.py ecmwf-api-client pybufr-ecmwf module purge ``` Fix `/opt/modules/all/Python/3.6.3-foss-2017b.lua` by adding: >if not isloaded("GDAL/2.2.3-foss-2017b-Python-2.7.14") then > > load("GDAL/2.2.3-foss-2017b-Python-2.7.14") > >end >if not isloaded("Tkinter/3.6.3-foss-2017b-Python-3.6.3") then > > load("Tkinter/3.6.3-foss-2017b-Python-3.6.3") > >end ## R packages Fix `/opt/modules/all/R/3.4.3-foss-2017b-X11-20171023.lua` by adding: > if not isloaded("UDUNITS/2.2.26-foss-2017b") then > > load("UDUNITS/2.2.26-foss-2017b") > >end > if not isloaded("protobuf/3.4.0-foss-2017b") then > > load("protobuf/3.4.0-foss-2017b") > >end ```bash module purge module load R cd /opt/easybuild/easyconfigs/utils Rscript ipak.R ``` ## Matlab 2013a ```bash rsync -av 10.90.90.50:/opt/software/MATLAB/2013a /opt/software/MATLAB scp 10.90.90.50:/opt/modules/all/MATLAB/2013a.lua /opt/modules/all/MATLAB ```