1

I am using Ubuntu and the singularity command to build the "r-text" environment. But the terminal returned an error message.

+ apt-get install -y --no-install-recommends r-base=4.1.3* r-base-core=4.1.3* r-base-dev=4.1.3* r-recommended=4.1.3* r-base-html=4.1.3* r-doc-html=4.1.3* libcurl4-openssl-dev libssl-dev libxml2-dev libcairo2-dev libxt-dev libopenblas-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '4.1.3-1.2004.0' (CRAN:20.04/focal-cran40 [all]) for 'r-base'
Selected version '4.1.3-1.2004.0' (CRAN:20.04/focal-cran40 [amd64]) for 'r-base-core'
Selected version '4.1.3-1.2004.0' (CRAN:20.04/focal-cran40 [all]) for 'r-base-dev'
Selected version '4.1.3-1.2004.0' (CRAN:20.04/focal-cran40 [all]) for 'r-recommended'
Selected version '4.1.3-1.2004.0' (CRAN:20.04/focal-cran40 [all]) for 'r-base-html'
Selected version '4.1.3-1.2004.0' (CRAN:20.04/focal-cran40 [all]) for 'r-doc-html'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 r-recommended : Depends: r-cran-cluster (>= 1.9.6-2) but it is not going to be installed
                 Depends: r-cran-lattice (>= 0.10.11) but it is not going to be installed
                 Depends: r-cran-mgcv (>= 1.1.5) but it is not going to be installed
                 Depends: r-cran-nlme (>= 3.1.52) but it is not going to be installed
                 Depends: r-cran-rpart (>= 3.1.20) but it is not going to be installed
                 Depends: r-cran-survival (>= 2.13.2-1) but it is not going to be installed
                 Depends: r-cran-mass but it is not going to be installed
                 Depends: r-cran-class but it is not going to be installed
                 Depends: r-cran-nnet but it is not going to be installed
                 Depends: r-cran-matrix but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
FATAL:   While performing build: while running engine: exit status 100

The singularity def file I am using is the following. It is the same as in the link. The only difference is I am trying to install "dplyr".

Bootstrap: docker
From: ubuntu:20.04

%environment
export LANG=C.UTF-8 LC_ALL=C.UTF-8
export XDG_RUNTIME_DIR=/tmp/.run_$(uuidgen)

%post
# Install
apt-get -y update

export R_VERSION=4.1.3
echo "export R_VERSION=${R_VERSION}" >> $SINGULARITY_ENVIRONMENT

# Install R
apt-get update
apt-get install -y --no-install-recommends software-properties-common dirmngr  wget uuid-runtime
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | \
tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
add-apt-repository \
"deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
apt-get install -y --no-install-recommends \
r-base=${R_VERSION}* \
r-base-core=${R_VERSION}* \
r-base-dev=${R_VERSION}* \
r-recommended=${R_VERSION}* \
r-base-html=${R_VERSION}* \
r-doc-html=${R_VERSION}* \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
libcairo2-dev \
libxt-dev \
libopenblas-dev

# Add a default CRAN mirror
echo "options(repos = c(CRAN = 'https://cran.rstudio.com/'), download.file.method = 'libcurl')" >> /usr/lib/R/etc/Rprofile.site

# Fix R package libpaths (helps RStudio Server find the right directories)
mkdir -p /usr/lib64/R/etc
echo "R_LIBS_USER='/usr/lib64/R/library'" >> /usr/lib64/R/etc/Renviron
echo "R_LIBS_SITE='${R_PACKAGE_DIR}'" >> /usr/lib64/R/etc/Renviron
# Clean up
rm -rf /var/lib/apt/lists/*
  
  # Install python3
  apt-get -y install python3 wget
apt-get -y clean

# Install Miniconda
cd /
  wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p /miniconda

/bin/bash <<EOF
rm Miniconda3-latest-Linux-x86_64.sh
source /miniconda/etc/profile.d/conda.sh
conda update -y conda
# Install reticulate and text
Rscript -e 'install.packages("reticulate")'
Rscript -e 'install.packages("devtools")'
Rscript -e 'install.packages("dplyr")'
Rscript -e 'install.packages("glmnet")'
Rscript -e 'devtools::install_github("oscarkjell/text")'
# Create the Conda environment at a system folder
Rscript -e 'text::textrpp_install(prompt = FALSE)'
Rscript -e 'text::textrpp_initialize(save_profile = TRUE, prompt = FALSE, textEmbed_test = TRUE)'
EOF

I have tried. Just wait for possible solutions.

AlexGu
  • 41
  • 4

1 Answers1

1

I have used the following .def file to solve the issue.

Bootstrap: docker
From: ubuntu:20.04

%environment
  export LANG=C.UTF-8 LC_ALL=C.UTF-8
  export XDG_RUNTIME_DIR=/tmp/.run_$(uuidgen)

%post
    # Install
    apt-get -y update

    export R_VERSION=4.2.2
    echo "export R_VERSION=${R_VERSION}" >> $SINGULARITY_ENVIRONMENT

     # Install R
     apt-get update
     apt-get install -y --no-install-recommends software-properties-common dirmngr  wget uuid-runtime
     wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | \
       tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
     add-apt-repository \
       "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
     apt-get install -y --no-install-recommends \
     r-base=${R_VERSION}* \
     r-base-core=${R_VERSION}* \
     r-base-dev=${R_VERSION}* \
     r-recommended=${R_VERSION}* \
     r-base-html=${R_VERSION}* \
     r-doc-html=${R_VERSION}* \
     libcurl4-openssl-dev \
     libharfbuzz-dev \
     libfribidi-dev \
     libgit2-dev \
     libxml2-dev \
     libfontconfig1-dev \
     libssl-dev \
     libxml2-dev \
     libfreetype6-dev \
     libpng-dev \
     libtiff5-dev \
     libjpeg-dev
     
     # Add a default CRAN mirror
     echo "options(repos = c(CRAN = 'https://cran.rstudio.com/'), download.file.method = 'libcurl')" >> /usr/lib/R/etc/Rprofile.site

     # Fix R package libpaths (helps RStudio Server find the right directories)
     mkdir -p /usr/lib64/R/etc
     echo "R_LIBS_USER='/usr/lib64/R/library'" >> /usr/lib64/R/etc/Renviron
     echo "R_LIBS_SITE='${R_PACKAGE_DIR}'" >> /usr/lib64/R/etc/Renviron
     # Clean up
     rm -rf /var/lib/apt/lists/*

     # Install python3
     apt-get -y install python3 wget
     apt-get -y clean

     # Install Miniconda
     cd /
     wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
     bash Miniconda3-latest-Linux-x86_64.sh -b -p /miniconda

/bin/bash <<EOF
     rm Miniconda3-latest-Linux-x86_64.sh
     source /miniconda/etc/profile.d/conda.sh
     conda update -y conda
     # Install reticulate and text
         Rscript -e 'install.packages("pkgdown")'
     Rscript -e 'install.packages("ragg")'
     Rscript -e 'install.packages("textshaping")'
     Rscript -e 'install.packages("reticulate")'
     Rscript -e 'install.packages("devtools")'
     Rscript -e 'install.packages("glmnet")'
     Rscript -e 'install.packages("tidyverse")'
#     Rscript -e 'install.packages("text")'
     Rscript -e 'devtools::install_github("oscarkjell/text")'
     # Create the Conda environment at a system folder
     Rscript -e 'text::textrpp_install(prompt = FALSE, rpp_version = c("torch==1.11.0", "transformers==4.19.2", "numpy", "nltk"))'
     Rscript -e 'text::textrpp_initialize(save_profile = TRUE, prompt = FALSE, textEmbed_test = TRUE)'
     Rscript -e 'text::textEmbed("hello", model = "distilbert-base-uncased", layers = 5)'
     Rscript -e 'text::textEmbed("hello", model = "roberta-base", layers = 11)'
AlexGu
  • 41
  • 4