Last active
April 18, 2024 00:47
-
-
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 のバイナリパッケージを利用
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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