新しいOS、新しい環境でスタート!まっさらな状態で気持ちいい。
で、Rの環境を作らなくっちゃということで、コピペして作る用のメモです。
まずは最新版のR
まずは最新版のRのインストールです。リポジトリ追加してインストールっていう感じです。r-base
インストールする際に--no-install-recommends
オプション付けるといいよっていう話あるんですが、それだとコンパイラとかインストールされなかったりするので、そのオプションはつけてないです。そのあたりは好き好きってことで。
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
sudo add-apt-repository -y "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt -y install r-base
パッケージのインストール
絶対に使うであろう、またはたぶん使うであろう、またはきっと使うであろうパッケージの一覧は作っておくとなんとなく便利なので作っておきます。このあたりは本当に自分好みかなと思います。
INSTALL_PACKGES=$(cat <<EOF
dplyr
tidyr
stringr
data.table
lubridate
purrr
openxlsx
ggplot2
ggrepel
viridis
glue
scales
fst
cowplot
pdftools
rmarkdown
kableExtra
rvest
httr
EOF
)
Rをインストールしたてほやほや状態だとパッケージインストール先ディレクトリがない状態なので、最初に強制的に作成しちゃっています。あと、エラーが出たときにあとで分かるようにinstall_packages.log
にメッセージを書き出すようにしています。
cat <<EOF | R --no-save
dir.create(Sys.getenv("R_LIBS_USER"), recursive = TRUE)
EOF
cat <<EOF | R --no-save 2>&1 | tee install_packages.log
install.packages(c("$(echo $INSTALL_PACKGES | sed -r 's/ /","/g')"))
EOF
エラーを確認してみるとOS側でのライブラリが足りないエラーが出ていますので、足りないものをインストールします。
cat install_packages.log |grep ERROR
さっき出力したinstall_packages.log
から必要だよって求められている行を抽出して、その結果をapt install
に渡してインストールしちゃいます。
cat install_packages.log |egrep 'deb:.*Ubuntu' | sed -r 's/^.+: ([^ ]+) .+/\1/' | tr '\n' ' ' | xargs sudo apt install -y
エラーがでなくなるまで「パッケージのインストール」「エラーの確認」「ライブラリーのインストール」を繰り返します。
エラーがでなくなったら、念のためテストします。これでエラーがでなければOKです。
cat <<EOF | R --no-save
$(echo $INSTALL_PACKGES | tr ' ' '\n' | sed -r 's/^(.+)$/library("\1")/')
EOF
パッケージのインストール部分が何か面倒なので一気にできるようにしてみた。
パッケージインストールして、エラーの確認して、ライブラリーのインストールして、って繰り返すのって、さくっとコピペという感じがしないので、まとめてみました。コピペして放置しておけば完成している予定です。たぶん。(追伸)ダメでした。途中でsudo apt install
を実行しているんですが、そのたびにパスワード聞かれちゃうようです。残念。
cat <<EOF | R --no-save
dir.create(Sys.getenv("R_LIBS_USER"), recursive = TRUE)
EOF
while true
do
cat <<EOF | R --no-save 2>&1 | tee install_packages.log
install.packages(c("$(echo $INSTALL_PACKGES | sed -r 's/ /\",\"/g')"))
EOF
cat install_packages.log | egrep 'deb:.*Ubuntu' | sed -r 's/^.+: ([^ ]+) .+/\1/' | tr '\n' ' ' | xargs sudo apt install -y
[ -z "$(cat install_packages.log |grep ERROR)" ] && break;
done
cat <<EOF | R --no-save
$(echo $INSTALL_PACKGES | tr ' ' '\n' | sed -r 's/^(.+)$/library("\1")/')
EOF
RStudio
個人的にはあんまり RStudio は使わないんですがインストールしておきます。ダウンロードサイトから、.deb
ファイルをリンクを抽出して、最新であろう最後の行だけに絞って、それをダウンロードしてインストールするという流れになっています。
#Rstudio
cd /tmp
echo "https://posit.co/download/rstudio-desktop/" | wget -i - -O - |egrep 'https://[^"]+rstudio.*\.deb' | tail -1 | sed -r 's/^.*href="([^"]+)".*$/\1/' | wget -i - -O rstudio.deb
sudo apt install -y ./rstudio.deb
VS Code
テキストエディターは開発するしないに関係なく、なくてはならない必須アイテムなのでインストールします。Previous release versionsのページにURLが公開されているので適当なバージョンをダウンロードして最新にアップグレードしています。
cd /tmp
wget https://update.code.visualstudio.com/1.95.1/linux-deb-x64/stable -O code.deb
sudo apt install -y ./code.deb
sudo apt update
sudo apt install --only-upgrade code
はい、終わりです。
はい、終わりです。思ったよりも簡単に構築できました。
めでたしめでたしです。