-
Notifications
You must be signed in to change notification settings - Fork 2
/
Singularity.def
109 lines (82 loc) · 3.7 KB
/
Singularity.def
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Bootstrap: docker
From: debian:bookworm
%runscript
exec launch_rserver "${@}"
%apprun R
exec R "${@}"
%apprun Rscript
exec Rscript "${@}"
%apprun default
exec "${@}"
%environment
export PATH=/usr/lib/rstudio-server/bin:${PATH}
%setup
install -Dv \
rstudio_auth.sh \
${SINGULARITY_ROOTFS}/usr/lib/rstudio-server/bin/rstudio_auth
install -Dv \
launch_rserver.sh \
${SINGULARITY_ROOTFS}/usr/lib/rstudio-server/bin/launch_rserver
%post
# Update the image
apt update
apt upgrade -y
# Add a package needed to suppress some debconf error messages
apt install -y whiptail
# Install all locales
apt install -y locales-all
# Install the latest R
apt install -y r-base
# Install development packages
apt install -y r-base-dev git libssl-dev libclang-dev libxml2-dev \
libcurl4-openssl-dev libssl-dev libfftw3-dev libtiff-dev libgsl-dev\
libfontconfig1-dev libharfbuzz-dev libfribidi-dev
apt install -y libproj-dev # For proj4, for ggmsa
apt install -y libglpk-dev # For igraph and others
apt install -y libboost-all-dev # For GenomicBreaks and other packages
apt install -y libmagick++-dev # For cropping images in vignette built following BiocStyle
apt install -y cmake
apt install -y libv8-dev libudunits2-dev libgdal-dev # in case one wants to install concaveman for ggforce
# Install software needed for vignette building and package checks
apt install -y pandoc qpdf texlive
# Small utilities usefult for command line and troubleshooting
apt install -y bash-completion file sudo wget htop strace
# Needed for the ss command to find which port to open
apt install -y iproute2
# For troubleshooting by running xeyes
apt install -y x11-apps
# Install scikit-learn, needed by the Bioconductor package seqArchR
apt install -y python3-sklearn python3-sklearn-lib python-sklearn-doc
# Packages wanted by RStudio
apt install -y psmisc procps systemctl sudo lsb-release libgl1 libnss3 libasound2 libxdamage1
# Packages wanted by RStudio Desktop
apt install -y libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0
# Install vim and other things needed for a good experience in the terminal
apt install -y vim
# A cool ligature font
apt install -y fonts-firacode
mkdir -p /etc/rstudio/fonts/firacode
cp -a /usr/share/fonts-firacode/woff2/FiraCode-Regular.woff2 /etc/rstudio/fonts/firacode
# Install RStudio desktop
wget https://download1.rstudio.org/electron/jammy/amd64/rstudio-2024.04.1-748-amd64.deb
apt --fix-broken -y install ./rstudio-*-amd64.deb
rm rstudio-*-amd64.deb
# Install RStudio server
wget https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2024.04.1-748-amd64.deb
apt --fix-broken -y install ./rstudio-*-amd64.deb
rm rstudio-*-amd64.deb
# Upgrade R to version 4.4
printf 'deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20240426T205747Z/ sid main\n' >> /etc/apt/sources.list
apt update
apt install -y r-base
# Install R packages of general intetest
R -e 'install.packages("BiocManager")'
R -e 'install.packages("tidyverse")'
R -e 'install.packages("devtools")'
R -e 'install.packages("remotes")'
R -e 'install.packages("rmarkdown")'
# Use home directory outside image to install more packages
printf 'R_LIBS_SITE="/usr/local/lib/R/site-library:/usr/lib/R/library"\n' | tee -a /etc/R/Renviron.site >/dev/null
printf 'R_LIBS_USER="~/R/library/R_4.4_for_RStudio_Singularity"\n' | tee -a /etc/R/Renviron.site >/dev/null
# Clean downoladed package cache. Yes I know about /var/libs.
apt clean