From 8bfa10a5bf30611f1dae1d3eca9ed45248871788 Mon Sep 17 00:00:00 2001 From: Marty Kandes <mkandes@sdsc.edu> Date: Wed, 27 Mar 2019 16:44:54 -0700 Subject: [PATCH] naked-singularity-v0.6.4 :: added new R.def file for Comet; includes MySQL client libraries to support RMySQL package --- README | 4 +- definition-files/comet/R/R.def | 202 +++++++++++++++++++++++++++++++++ 2 files changed, 204 insertions(+), 2 deletions(-) create mode 100644 definition-files/comet/R/R.def diff --git a/README b/README index d53fb0f..2f308c3 100644 --- a/README +++ b/README @@ -46,8 +46,8 @@ AUTHOR VERSION - 0.6.3 + 0.6.4 LAST UPDATED - Friday, January 18th, 2019 + Wednesday, March 27th, 2019 diff --git a/definition-files/comet/R/R.def b/definition-files/comet/R/R.def new file mode 100644 index 0000000..a53d60c --- /dev/null +++ b/definition-files/comet/R/R.def @@ -0,0 +1,202 @@ +Bootstrap: debootstrap +MirrorURL: http://us.archive.ubuntu.com/ubuntu +OSVersion: xenial + +%labels + + APPLICATION_NAME R + APPLICATION_VERSION 3.4.2 + APPLICATION_URL https://www.r-project.org/ + + SYSTEM_NAME comet + SYSTEM_SINGULARITY_VERSION 2.6.2 + SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html + + SINGULARITY_IMAGE_SIZE 4096 + + AUTHOR_NAME Marty Kandes + AUTHOR_EMAIL mkandes@sdsc.edu + + LAST_UPDATED 20190327 + +%setup + +%environment + + # Set system locale + export LC_ALL=C + + # Set PATH and LD_LIBRARY_PATH variables + export LD_LIBRARY_PATH="/opt/openblas-0.2.20/lib:${LD_LIBRARY_PATH}" + export PATH="/opt/R-3.4.2/bin:${PATH}" + export LD_LIBRARY_PATH="/opt/R-3.4.2/lib:${LD_LIBRARY_PATH}" + export PATH="/opt/openmpi-1.8.4/bin:${PATH}" + export LD_LIBRARY_PATH="/opt/openmpi-1.8.4/lib:${LD_LIBRARY_PATH}" + +%post -c /bin/bash + + # Set system locale + export LC_ALL=C + + # Install system metapackages + apt-get -y install ubuntu-standard + apt-get -y install ubuntu-server + + # Add repositories + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted" + + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted" + + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted" + + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse" + add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted" + + # Upgrade all packages to their latest versions + apt-get -y update && apt-get -y upgrade + + # Install common packages and libraries from 'main' + apt-get -y install autoconf + apt-get -y install automake + apt-get -y install build-essential + apt-get -y install cmake + apt-get -y install libtool + apt-get -y install pkg-config + apt-get -y install gfortran + apt-get -y install zip + + apt-get -y install libgmp-dev + apt-get -y install libmpfr-dev + apt-get -y install libmpc-dev + apt-get -y install libisl-dev + + # Install expect to automate responses for interactive build questions + apt-get -y install expect + + # Make filesystem mount points + mkdir /cvmfs /oasis /projects /scratch + + # Use /tmp to store temporary files within the container during the + # bootstraping process + cd /tmp + + # Install miniconda2 + wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh + chmod +x Miniconda2-latest-Linux-x86_64.sh + ./Miniconda2-latest-Linux-x86_64.sh -b -p /opt/miniconda2 + + # Install miniconda3 + wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh + chmod +x Miniconda3-latest-Linux-x86_64.sh + ./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3 + + # Install basic drivers for user space access to Ethernet, RDMA, + # and Infiniband. See https://community.mellanox.com/docs/DOC-2431 + apt-get -y install dkms + apt-get -y install infiniband-diags + apt-get -y install libibverbs-dev + apt-get -y install ibacm + apt-get -y install librdmacm-dev + apt-get -y install libmlx4-dev + apt-get -y install libmlx5-dev + apt-get -y install mstflint + apt-get -y install libibcm-dev + apt-get -y install libibmad-dev + apt-get -y install libibumad-dev + apt-get -y install opensm + apt-get -y install srptools + + # Install additional tools + apt-get -y install ibutils + apt-get -y install ibverbs-utils + apt-get -y install rdmacm-utils + apt-get -y install perftest + apt-get -y install numactl + apt-get -y install libnuma-dev + + # Install libnl + apt-get -y install libnl-3-200 + apt-get -y install libnl-route-3-200 + apt-get -y install libnl-route-3-dev + apt-get -y install libnl-utils + + # Install R dependencies + apt-get -y install libreadline-dev + apt-get -y install zlib1g-dev + apt-get -y install bzip2 + apt-get -y install libbz2-dev + apt-get -y install xz-utils + apt-get -y install liblzma-dev + apt-get -y install libpcre3 + apt-get -y install libpcre3-dev + apt-get -y install curl + apt-get -y install libcurl4-gnutls-dev + + #cd /tmp + + # Download, build, and install OpenBLAS for R + wget http://github.com/xianyi/OpenBLAS/archive/v0.2.20.tar.gz + tar -xzvf v0.2.20.tar.gz + cd OpenBLAS-0.2.20 + make NUM_THREADS=24 + make install PREFIX='/opt/openblas-0.2.20' + + export CPPFLAGS="-I/opt/openblas-0.2.20/include ${CPPFLAGS}" + export LDFLAGS="-L/opt/openblas-0.2.20/lib ${LDFLAGS}" + export LD_LIBRARY_PATH="/opt/openblas-0.2.20/lib:${LD_LIBRARY_PATH}" + + cd /tmp + + # Download, build, and install R + wget https://cran.cnr.berkeley.edu/src/base/R-3/R-3.4.2.tar.gz + tar -xzvf R-3.4.2.tar.gz + cd R-3.4.2 + ./configure --prefix="/opt/R-3.4.2" --enable-R-shlib --with-blas --with-lapack --with-x + make + make install + + export PATH="/opt/R-3.4.2/bin:${PATH}" + export LD_LIBRARY_PATH="/opt/R-3.4.2/lib:${LD_LIBRARY_PATH}" + + cd /tmp + + # Download, build, and install OpenMPI for Rmpi + wget https://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.4.tar.gz + tar -xzvf openmpi-1.8.4.tar.gz + cd openmpi-1.8.4 + ./configure --prefix='/opt/openmpi-1.8.4' + make all install + + export CPPFLAGS="-I/opt/openmpi-1.8.4/include ${CPPFLAGS}" + export LDFLAGS="-L/opt/openmpi-1.8.4/lib ${LDFLAGS}" + export PATH="/opt/openmpi-1.8.4/bin:${PATH}" + export LD_LIBRARY_PATH="/opt/openmpi-1.8.4/lib:${LD_LIBRARY_PATH}" + + cd /tmp + + # Download, build, and install Rmpi + wget https://cran.r-project.org/src/contrib/Rmpi_0.6-7.tar.gz + R CMD INSTALL Rmpi_0.6-7.tar.gz --configure-args='--with-Rmpi-type=OPENMPI --with-Rmpi-include=/opt/openmpi-1.8.4/include --with-Rmpi-libpath=/opt/openmpi-1.8.4/lib' + + # Install MySQL client / libraries to support RMySQL + apt-get -y install libmariadb-client-lgpl-dev + + # Update database for mlocate + updatedb + +%files + +%runscript + +%test -- GitLab