Skip to content

Instantly share code, notes, and snippets.

@mokztk
Last active April 18, 2024 00:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mokztk/cc4f033a7114cc01657643e192a6a2ba to your computer and use it in GitHub Desktop.
Save mokztk/cc4f033a7114cc01657643e192a6a2ba to your computer and use it in GitHub Desktop.
WSL2 の Ubuntu 20.04 LTS に R4.1.0+RStudio Server 1.4+radian をセットアップする script。CRANパッケージは RStudio Package Manager のバイナリパッケージを利用
#!/bin/bash -x
## provisioning script for RStudio Server on ubuntu / WSL
## MRAN and RSPM libraries are fixed at 2021-08-09 (the last day before 4.1.1)
sudo apt update
sudo apt upgrade -y
# Japanese language support
sudo apt install -y language-pack-ja-base language-pack-ja fonts-noto-cjk
# Change environment to Japanese (Character and DateTime)
# ref: https://ill-identified.hatenablog.com/entry/2021/06/11/140544
sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8
sudo chmod 666 /etc/timezone
sudo echo "Asia/Tokyo" > /etc/timezone
sudo chmod 644 /etc/timezone
sudo dpkg-reconfigure -f noninteractive tzdata
echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=ja_JP.UTF-8' >> ~/.bashrc
# Install latest version of R 4.1.0 (4.1.0-1.2004.0_all / 2021-05-18) from
# Microsoft R Application Network (MRAN) snapshot
## install Microsoft IT SSL SHA2 CA Certificate
curl --output "msitwww2(1).crt" "http://www.microsoft.com/pki/mscorp/msitwww2(1).crt"
openssl x509 -in "msitwww2(1).crt" -inform DER -out msitwww2.crt -outform PEM
sudo cp msitwww2.crt /usr/share/ca-certificates/
sudo chmod 666 /etc/ca-certificates.conf
sudo echo "msitwww2.crt" >> /etc/ca-certificates.conf
sudo update-ca-certificates
rm *.crt
## install R
export MRAN="https://cran.microsoft.com/snapshot/2021-08-09/"
sudo chmod 777 /etc/apt/sources.list.d
sudo apt install -y \
gdebi-core \
build-essential \
libcurl4-gnutls-dev \
libxml2-dev \
libssl-dev \
gfortran
sudo apt install --no-install-recommends \
software-properties-common \
dirmngr
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository "deb ${MRAN}/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt update
sudo apt install -y --no-install-recommends \
r-base \
littler
## install RStudio Server
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.4.1717-amd64.deb
sudo gdebi -n rstudio-server-1.4.1717-amd64.deb
rm *.deb
## Symlink pandoc & standard pandoc templates for use system-wide
## ref: https://github.com/rocker-org/rocker-versioned2/blob/master/scripts/install_pandoc.sh
sudo ln -fs /usr/lib/rstudio-server/bin/pandoc/pandoc /usr/local/bin
sudo ln -fs /usr/lib/rstudio-server/bin/pandoc/pandoc-citeproc /usr/local/bin
export PANDOC_TEMPLATES_VERSION=`pandoc -v | grep -oP "(?<=pandoc\s)[0-9\.]+$"`
wget https://github.com/jgm/pandoc-templates/archive/${PANDOC_TEMPLATES_VERSION}.tar.gz -O pandoc-templates.tar.gz
sudo rm -fr /opt/pandoc/templates
sudo mkdir -p /opt/pandoc/templates
sudo tar xvf pandoc-templates.tar.gz
sudo cp -r pandoc-templates*/* /opt/pandoc/templates
sudo rm -rf pandoc-templates*
sudo rm -fr /root/.pandoc
sudo mkdir /root/.pandoc
sudo ln -s /opt/pandoc/templates /root/.pandoc/templates
# Install additional packages from RSPM
## Preparation
## ref: https://packagemanager.rstudio.com/__docs__/admin/serving-binaries/#binaries-r-configuration-linux
export R_INSTALL_STAGED=false
export RSPM=https://packagemanager.rstudio.com/cran/__linux__/focal/2021-08-09
echo "options(repos = c(RSPM='${RSPM}'))" >> ~/.Rprofile
echo 'options(HTTPUserAgent = sprintf("R/%s R (%s)", getRversion(), paste(getRversion(), R.version$platform, R.version$arch, R.version$os)))' >> ~/.Rprofile
sudo ln -s ~/.Rprofile /root/.Rprofile
sudo Rscript -e "install.packages(c('docopt', 'BiocManager'))"
sudo ln -s /usr/lib/R/site-library/littler/examples/install2.r /usr/local/bin/install2.r
sudo ln -s /usr/lib/R/site-library/littler/examples/installGithub.r /usr/local/bin/installGithub.r
## Install System Prerequisites for the Repo’s Packages
sudo apt install -y --no-install-recommends \
default-jdk \
default-libmysqlclient-dev \
gdal-bin \
git \
gsfonts \
imagemagick \
libarchive-dev \
libcairo2-dev \
libcurl4-openssl-dev \
libfontconfig1-dev \
libfreetype6-dev \
libgdal-dev \
libgeos-dev \
libgit2-dev \
libgl1-mesa-dev \
libglpk-dev \
libglu1-mesa-dev \
libgmp3-dev \
libjpeg-dev \
libmagick++-dev \
libpng-dev \
libpq-dev \
libproj-dev \
librsvg2-dev \
libsasl2-dev \
libsqlite3-dev \
libssh2-1-dev \
libudunits2-dev \
libv8-dev \
libxft-dev \
libxml2-dev \
libxtst6 \
libxslt-dev \
unixodbc-dev
sudo R CMD javareconf
## Install R packages
sudo Rscript -e "update.packages(ask = FALSE)"
sudo Rscript -e "BiocManager::install(c('graph', 'Rgraphviz'))"
sudo install2.r --error --deps TRUE --ncpus -1 --skipinstalled \
tidyverse \
devtools \
rmarkdown \
vroom \
gert \
pacman \
tidylog \
furrr \
glmnetUtils \
pROC \
cmprsk \
psych \
clinfun \
car \
survminer \
prophet \
Deducer \
GGally \
ggfortify \
gghighlight \
ggsci \
ggrepel \
patchwork \
tableone \
gt \
gtsummary \
flextable \
formattable \
ftExtra \
minidown \
DiagrammeR \
palmerpenguins \
styler \
officer \
rvg \
openxlsx \
xtable \
rgl \
stargazer\
devEMF
sudo installGithub.r tomwenseleers/export@1afc8e2
sudo installGithub.r rstudio/webshot2
mkdir -p ~/.cache/R/R.cache
# Python setup
sudo apt install -y --no-install-recommends \
libpython3-dev \
python3-dev \
python3-pip \
python3-virtualenv \
python3-venv
sudo python3 -m pip install \
pandas \
seaborn \
sklearn
sudo install2.r --error --deps TRUE --ncpus -1 --skipinstalled \
reticulate
# Install radian: A 21 century R console
sudo python3 -m pip install -U radian jedi
cat << EOF > ~/.radian_profile
options(radian.color_scheme = "monokai")
options(radian.auto_match = TRUE)
options(radian.prompt = "\033[0;32mr$>\033[0m ")
EOF
# Install coding fonts (for RStudio Server)
## JetBrains Mono
mkdir -p ~/.config/rstudio/fonts/JetBrainsMono/italic
wget https://download.jetbrains.com/fonts/JetBrainsMono-2.242.zip
unzip JetBrainsMono-2.242.zip -d JetBrainsMono
cp JetBrainsMono/fonts/variable/JetBrainsMono[wght].ttf ~/.config/rstudio/fonts/JetBrainsMono/JetBrainsMono.ttf
cp JetBrainsMono/fonts/variable/JetBrainsMono-Italic[wght].ttf ~/.config/rstudio/fonts/JetBrainsMono/italic/JetBrainsMono-Italic.ttf
mv ~/.config/rstudio/fonts/JetBrainsMono/ ~/.config/rstudio/fonts/JetBrains\ Mono/
rm JetBrainsMono-2.242.zip
rm -rf JetBrainsMono
## PlemolJP (IBM Plex Sans JP + IBM Plex Mono)
## https://qiita.com/tawara_/items/0a7b8c50a48ea86b2d91
mkdir -p ~/.config/rstudio/fonts/PlemolJP35/400/italic
mkdir -p ~/.config/rstudio/fonts/PlemolJP35/700/italic
wget https://github.com/yuru7/PlemolJP/releases/download/v0.2.2/PlemolJP_v0.2.2.zip
unzip PlemolJP_v0.2.2.zip
cp PlemolJP_v0.2.2/PlemolJP35/PlemolJP35-Regular.ttf ~/.config/rstudio/fonts/PlemolJP35/400
cp PlemolJP_v0.2.2/PlemolJP35/PlemolJP35-Italic.ttf ~/.config/rstudio/fonts/PlemolJP35/400/italic
cp PlemolJP_v0.2.2/PlemolJP35/PlemolJP35-Bold.ttf ~/.config/rstudio/fonts/PlemolJP35/700
cp PlemolJP_v0.2.2/PlemolJP35/PlemolJP35-BoldItalic.ttf ~/.config/rstudio/fonts/PlemolJP35/700/italic
rm PlemolJP_v0.2.2.zip
rm -rf PlemolJP_v0.2.2
# cleaning
sudo apt autoremove -y
sudo apt clean -y
sudo chmod 644 /etc/ca-certificates.conf
sudo chmod 755 /etc/apt/sources.list.d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment