I am using apptainer to build a r-text package container in Ubuntu on a server. Anyone could help? My hardware is Mac pro M1 with MacOS 13.4 (22F66).
My build.def file is as follows. The container is based the docker Ubuntu image. And I am trying to install the r first, then to install necessary packages. And then I need the text package and conda to be installed.
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-cased", layers = 5)'
Rscript -e 'text::textEmbed("hello", model = "bert-base-cased", layers = 11)'
Rscript -e 'text::textEmbed("hello", model = "bert-large-cased", layers = 23)'
Rscript -e 'text::textEmbed("hello", model = "roberta-base", layers = 11)'
Rscript -e 'text::textEmbed("hello", model = "roberta-large", layers = 23)'
Rscript -e 'text::textEmbed("hello", model = "google/flan-t5-base", layers = -2)'
Rscript -e 'text::textEmbed("hello", model = "google/flan-t5-large", layers = -2)'
Rscript -e 'text::textEmbed("hello", model = "bigscience/T0pp", layers = -2)'
Rscript -e 'text::textEmbed("hello", mdoel = "xlm-roberta-base", layers=-2)'
Rscript -e 'text::textEmbed("hello", mdoel = "xlm-roberta-large", layers=-2)'
Rscript -e 'text::textEmbed("hej", mdoel = "KB/bert-base-swedish-cased", layers=-2)'
Rscript -e 'text::textEmbed("hello", mdoel = "nghuyong/ernie-2.0-base-en", layers=-2)'
With this file, I then ran the Linux command to build the container: apptainer container.sif build.def. And the server returned the following error messages.
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-mgcv (>= 1.1.5) 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-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