M1 MacにDockerでUbuntu 20.04を構築し、Rをインストールする

検証目的としてUbuntuとRが必要だったので、M1 Mac上に環境構築してみました。

普通にRを使うのであれば、RStudio Serverの使えるコンテナを引っ張ってくるのが一番です。今回はUbuntu on WSLに近い環境において、Rのインストールを検証したかったので、わざわざ周りくどいことをしています。

M1 Mac上にamd64のUbuntuを構築

#イメージを引っ張ってくる(M1 Macの場合、明示的にamd64と指定しましょう)
docker image pull amd64/ubuntu:focal 

#コンテナを起動(--name コンテナ名 イメージ名)
docker run -it -d --name ubuntu amd64/ubuntu:focal

#Ubuntu上のターミナルに入る
docker exec -it ubuntu /bin/bash

M1 MacにDocker Previewをインストールしている場合、3つのコマンドで実行することができます。

注意点としては、イメージを引っ張る際に、明示的に”amd64″と指定しないと、デフォルトで”aarch64″のイメージを引っ張ってきます。これはM1 MacがARMベースであるためで、IntelやAMDのCPUと同じものを使用したい場合、”amd64″にする必要があります。

Ubuntu上にRのインストール

# 必要なものをインストール
apt install -y gdebi-core wget
apt install gpg-agent pinentry-curses

# 下の"add-apt-repository"でエラーが出る場合はこれを実行。
apt-get install software-properties-common

# アップデート(ここから下は公式サイトの通り)
apt update -qq

#ヘルパーパッケージをインストール(エリアやタイムゾーンを聞かれることも)
apt install --no-install-recommends software-properties-common dirmngr

# GPGキーを追加
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

# レポジトリを追加 (focalは適宜自分のUbuntuバージョンに合わせてください。20.04はfocalです。)
add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'

# Rをインストール
apt install --no-install-recommends r-base

基本的には、Rの公式サイトの通りにするのですが、Ubuntu上には何も入っていないので、インストールするのに必要なパッケージをインストールする必要があります。それが上の2行。

基本的にroot環境で作業しているので、sudoはつけていません。これで、基本的に最新版のRがインストール可能。