Skip to content

Commit

Permalink
Merge pull request #7 from mokztk/devel/4.1.0
Browse files Browse the repository at this point in the history
Devel/4.1.0
  • Loading branch information
mokztk committed Aug 29, 2021
2 parents 35105fd + 2bb09a1 commit 530e03a
Show file tree
Hide file tree
Showing 6 changed files with 109 additions and 25 deletions.
5 changes: 3 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# rocker/tidyverse に日本語設定と頻用パッケージ、および TinyTeX, Radian を追加
# CRAN snapshot: https://packagemanager.rstudio.com/cran/__linux__/focal/2021-02-17
# CRAN snapshot: https://packagemanager.rstudio.com/cran/__linux__/focal/2021-08-09

FROM rocker/tidyverse:4.0.3
FROM rocker/tidyverse:4.1.0

# Ubuntuミラーサイトの設定(自動選択)
RUN sed -i.bak -e 's%http://[^ ]\+%mirror://mirrors.ubuntu.com/mirrors.txt%g' /etc/apt/sources.list
Expand Down Expand Up @@ -29,6 +29,7 @@ RUN /my_scripts/install_pandas.sh
RUN /my_scripts/install_radian.sh
RUN /my_scripts/install_notocjk.sh
#RUN /my_scripts/install_notojp.sh
RUN /my_scripts/install_coding_fonts.sh

USER rstudio
RUN /my_scripts/install_tinytex.sh
Expand Down
26 changes: 15 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,26 @@
- 自動選択の `mirror://mirrors.ubuntu.com/mirrors.txt` に変更
- Ref: https://blog.amedama.jp/entry/2019/09/11/234050

### 日本語ロケール
### 日本語環境、フォント

- Ubuntu の `language-pack-ja`, `language-pack-ja-base`
- 環境変数で `ja_JP.UTF-8` ロケールとタイムゾーン `Asia/Tokyo` を指定
- フォントは下記のいずれか
- グラフ、PDF出力用フォントは下記のいずれか
- <s>IPAex明朝/ゴシック(Ubuntu の `fonts-ipaexfont` パッケージ)</s>
- Noto Sans/Serif JP([Google Fonts](https://fonts.google.com/) で配布されている日本語サブセット版)
- Noto Sans/Serif CJK JP
- Ubuntu の `fonts-noto-cjk` パッケージのみでは XeLaTeX + BXjscls で日本語PDFを作成するのに不足あり
- `fonts-noto-cjk-extra` は KR, SC, TC のフォントを含むので巨大
- 容量節約のため、[Google Noto Fonts](https://www.google.com/get/noto/) からOTF版をダウンロードして JP の必要なウェイトを手動でインストールする
- RStudioのエディタで使用するコーディング用フォントとして以下を追加
- [JetBrains Mono](https://www.jetbrains.com/ja-jp/lp/mono/) : リガチャで `->` や native pipe `|>` が特別な記号になる
- [PlemolJP](https://qiita.com/tawara_/items/0a7b8c50a48ea86b2d91) : IBM Plex Sans JP + IBM Plex Mono. 半角3:全角5のバージョンを採用

### radian: A 21 century R console

- https://github.com/randy3k/radian
- インストールには、Python 3用の pip が必要
- コード補完のためには `jedi` が必要だが、radian 0.51 時点では jedi 0.18 以降には対応していないので 0.17.2 を指定する
- コード補完のためには `jedi` が必要なのであわせてインストール(radian の新しい版では jedi のバージョン縛りはなくなったよう)

### Python

Expand All @@ -47,8 +50,8 @@

- いつものものに、Causal Inference Slack で勧められたものをいくつか追加
- https://docs.google.com/spreadsheets/d/175Q_lzNG7P6TT2k9rUzzweoaKdJS_OJZ3lWpUuTfcvc/edit#gid=0
- Bioconductor のパッケージも RSPM から入手できるようになった(2020-11-24リリースのRSPM v.1.2.0以降)
- 容量節約のため、インストール後にDLしたアーカイブは削除する(約300MB分)
- Bioconductor のパッケージも RSPM から入手できるようになったが、出自が分かりにくくなるので本家からインストール
- 容量節約のため、インストール後にDLしたアーカイブは削除する

### 環境変数 PASSWORD の仮設定

Expand All @@ -58,11 +61,12 @@
## History

- **2020-11-02** [Gist: mokztk/R4.0_2020Oct.Docerfile](https://gist.github.com/mokztk/be9e0d8982fd32987dbb5c9552a9d4a7) から改めてレポジトリとして編集を開始
- **2020-11-02** 🔖[4.0.2_2020Oct](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.2_2020Oct) : `rocker/tidyverse:4.0.2` 対応版
- **2021-01-14** 🔖[4.0.2_update2101](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.2_update2101) : 4.0.2_2020Oct の修正版
- **2021-03-06** 🔖[4.0.2_2021Jan](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.2_2021Jan) : `rocker/tidyverse:4.0.2` ベースのままパッケージを更新
- **2021-03-11** 🔖[4.0.3_2020Feb](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.3_2021Feb) : `rocker/tidyverse:4.0.3` にあわせて更新
- **2020-11-02** :bookmark:[4.0.2_2020Oct](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.2_2020Oct) : `rocker/tidyverse:4.0.2` 対応版
- **2021-01-14** :bookmark:[4.0.2_update2101](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.2_update2101) : 4.0.2_2020Oct の修正版
- **2021-03-06** :bookmark:[4.0.2_2021Jan](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.2_2021Jan) : `rocker/tidyverse:4.0.2` ベースのままパッケージを更新
- **2021-03-11** :bookmark:[4.0.3_2020Feb](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.3_2021Feb) : `rocker/tidyverse:4.0.3` にあわせて更新
- **2021-04-01** ブランチ構成を再編(GitHub flow モドキ)
- **2021-04-04** 🔖[4.0.3_TL2020](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.3_TL2020) : TeX を TeX Live 2020 (frozen) に固定
- **2021-04-13** 🔖[4.0.3_update2104](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.3_update2104) : 4.0.3_TL2020 の修正版
- **2021-04-04** :bookmark:[4.0.3_TL2020](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.3_TL2020) : TeX を TeX Live 2020 (frozen) に固定
- **2021-04-13** :bookmark:[4.0.3_update2104](https://github.com/mokztk/RStudio_docker/releases/tag/4.0.3_update2104) : 4.0.3_TL2020 の修正版
- **2021-08-30** :bookmark:[4.1.0_2021Aug](https://github.com/mokztk/RStudio_docker/releases/tag/4.1.0_2021Aug) : `rocker/tidyverse:4.1.0` にあわせて更新。coding font 追加

26 changes: 26 additions & 0 deletions my_scripts/install_coding_fonts.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Install coding fonts (for RStudio Server)

## JetBrains Mono
mkdir -p /home/rstudio/.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 /home/rstudio/.config/rstudio/fonts/JetBrainsMono/JetBrainsMono.ttf
cp JetBrainsMono/fonts/variable/JetBrainsMono-Italic[wght].ttf /home/rstudio/.config/rstudio/fonts/JetBrainsMono/italic/JetBrainsMono-Italic.ttf
mv /home/rstudio/.config/rstudio/fonts/JetBrainsMono/ /home/rstudio/.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 /home/rstudio/.config/rstudio/fonts/PlemolJP35/400/italic
mkdir -p /home/rstudio/.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 /home/rstudio/.config/rstudio/fonts/PlemolJP35/400
cp PlemolJP_v0.2.2/PlemolJP35/PlemolJP35-Italic.ttf /home/rstudio/.config/rstudio/fonts/PlemolJP35/400/italic
cp PlemolJP_v0.2.2/PlemolJP35/PlemolJP35-Bold.ttf /home/rstudio/.config/rstudio/fonts/PlemolJP35/700
cp PlemolJP_v0.2.2/PlemolJP35/PlemolJP35-BoldItalic.ttf /home/rstudio/.config/rstudio/fonts/PlemolJP35/700/italic
rm PlemolJP_v0.2.2.zip
rm -rf PlemolJP_v0.2.2

chown -R rstudio:rstudio /home/rstudio/.config/rstudio
49 changes: 38 additions & 11 deletions my_scripts/install_r_packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,43 @@ set -x
# 依存ライブラリの追加
apt-get update
apt-get install -y --no-install-recommends \
default-jdk \
default-libmysqlclient-dev \
gdal-bin \
gsfonts \
imagemagick \
imagemagick-6-common \
libarchive13 \
libcairo2 \
libcurl4 \
libfontconfig1 \
libfreetype6 \
libgdal26 \
libgeos-c1v5 \
libgit2-28 \
libgl1-mesa-dri \
libglpk40 \
libglu1-mesa \
libgmp3-dev \
libjpeg8 \
libmagick++-6.q16-8 \
libnode64 \
libpng16-16 \
libpq5 \
libproj15 \
librsvg2-2 \
libxft2 \
libv8-dev \
libsasl2-2 \
libsqlite3-0 \
libssh2-1 \
libtbb2 \
default-jre \
libudunits2-0 \
libtcl8.6 \
libtk8.6 \
libglpk40 \
libproj15 \
libgdal26
libudunits2-0 \
libxft2 \
libxml2 \
libxtst6 \
libxslt1.1\
unixodbc-dev

apt-get clean
rm -rf /var/lib/apt/lists/*
Expand All @@ -32,8 +54,7 @@ R CMD javareconf
# RSPMのcheckpointが変わった場合に対応するため、まずcheckpointの状態まで更新する
Rscript -e "update.packages(ask = FALSE)"

# Bioconductor もRSPMからインストールする
echo "options(BioC_mirror = 'https://packagemanager.rstudio.com/bioconductor')" >> /usr/local/lib/R/etc/Rprofile.site
# Bioconductor のパッケージ
Rscript -e "BiocManager::install(c('graph', 'Rgraphviz'))"

# CRANパッケージをRSPMからインストール
Expand All @@ -59,16 +80,22 @@ install2.r --error --deps TRUE --ncpus -1 --skipinstalled \
tableone \
gt \
gtsummary \
flextable \
formattable \
ftExtra \
minidown \
DiagrammeR \
palmerpenguins \
styler

installGithub.r rstudio/webshot2

# R.cache (imported by styler) で使用するキャッシュディレクトリを準備
mkdir -p /home/rstudio/.cache/R/R.cache
chown -R rstudio:rstudio /home/rstudio/.cache

# since package "export" was removed from CRAN on 2020-02-21,
# install dev version from GitHub repo (commit c63141e / 2020-09-09)
# install dev version from GitHub repo (commit 1afc8e2 / 2021-03-09)
install2.r --error --deps TRUE --ncpus -1 --skipinstalled \
officer \
rvg \
Expand All @@ -79,7 +106,7 @@ install2.r --error --deps TRUE --ncpus -1 --skipinstalled \
stargazer \
devEMF

installGithub.r tomwenseleers/export@c63141e
installGithub.r tomwenseleers/export@1afc8e2

# cleaning
rm /tmp/downloaded_packages/*
2 changes: 1 addition & 1 deletion my_scripts/install_radian.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ if [ ! -e "/usr/bin/pip3" ]; then
fi

# radianのインストール
pip install radian jedi==0.17.2
pip install radian jedi

# radianの設定
cat > /home/rstudio/.radian_profile << EOF
Expand Down
26 changes: 26 additions & 0 deletions utils/files.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# イメージ評価用のサンプルファイル集

## chk_package_load.R

- インストール済の全パッケージについて読み込みエラーがないか確認するスクリプト
- base R の機能で作成
- ~/library_test.csv としてテスト結果を出力する

## Image_test.Rmd

- 作成したイメージ検証用の RMarkdown document (html_document)
- rocker/tidyverse 内のパッケージを使用
- 内容:
- PDF保存を前提に、メモ用のテキストエリアを最初に設置
- セッション情報({sessioninfo} パッケージ)
- パッケージの読み込みテスト(chk_package_load.R と同様)
- Python/TeXのインストール状況

## tex_test.Rmd

- RMarkdown と XeLaTeX による日本語PDF作成のテスト
- 使用フォントは Noto Sans/Serif CJK JP
- 内容:
- 軸ラベルに日本語を使った base plot() の図
- 軸ラベルに日本語を使った {ggplot2} の図
- 難しい漢字を含む文章の例として、「平家物語」の冒頭

0 comments on commit 530e03a

Please sign in to comment.