ubuntu 18.04 + R + Jupyter
きっかけ
- WindowsでRをインストールした.だけど,Ubuntuでも使うから(Macもだけど)
- コケた箇所
- git のキーゲット
- CRANの公式サイトで最後に方法があったこと・・(これは本当に悲しくなった・・
システムの構成
- Ubuntu 18.04
- R 4.0.2
インストール手順(成功例と失敗例を一緒に)
書き方がめんどくさいので,Skipを考慮する
- ubuntu本体のアップデート 後にもするが,なんとなくやっぱりしておくと気持ちがいい
> sudo apt update > sudo apt upgrade
- CRAN のキーを取得 公式サイトに十分記載はあるけど,非常にめんどくさい こちらがだめなら,こちらを,状態になるけど,動くKeyを取得する.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
こちらがだめなら,以下をでキーを取得
gpg --keyserver keyserver.ubuntu.com --recv-key E298A3A825C0D65DFD57CBB651716619E084DAB9
追伸:私は3番目のここでようやくキーが取得...
gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -
- source.listを書き換える
/etc/apt/source.list
以下を最後に追加する.
# Rのアップデートサイト deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/
ちなみに,bionicは,Ubuntu18.04, binonic-cran40は, R.4.0xの最新版を入れるというそれぞれのおまじない
- 再度,Ubuntuをアップデートする
> sudo apt update > sudo apt upgrade
- R 本体のインストール
Keyが取得できると,以下がスムーズ
sudo apt-get install r-base-dev
6. install.packages()でシステムを更新 TerminalでRを起動し,以下のコマンド
install.packages()
7.の記述の依存関係が現れて,コケて大変だった.... どうも,curl周辺のopensslが入っていないことが問題だったようです.
パッケージ ‘r-base-dev’ のインストールは、ゼロでない終了値をもちました
「ゼロでない終了値をもちました」がよくわからないError Message だっただけに,ずっと大変... 依存のライブラリ関連が入っていないことなどが課題らしい..
6. パッケージ間の依存問題
r-base : 依存: r-base-core (>= 4.0.2-1.2004.0)が依存関係にあるとごねられる.... いろいろ調べ,以下を実行
>sudo apt-get install libcurl4-openssl-dev >sudo apt-get install libxml2-dev
こちらが参考になりました.
再度,R terminalに入り,実行 そして,Permission deninedとかのエラー....
再度Rを管理者モードで入る
>sudo R -i
Rコマンドラインで6.のパッケージ更新 完了
- Jupyter の環境にRのカーネルを設定 Windowsはすぐ以下のコマンドで十分対応ができた. なのに,Ubuntuはよくわからなかった.... またしても,「ゼロでない終了値をもちました」,,, もう知らんがな!
>install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest')) >devtools::install_github('IRkernel/IRkernel') >IRkernel::installspec(user=FALSE)
エラーメッセージは,以下がでた.
install.packages('devtools') ゼロでない終了値を持ちました install.packages('httpr') ゼロでない終了値を持ちました install.packages('digest') ゼロでない終了値を持ちました
再度,以下を通常のTerminalでタイプ
sudo apt-get install libssl-dev
これでなんとか,最初の関門(1行目, 2行目)が通る
8.最終問題(IRkernel::installspec(user=FALSE)のエラー) 最後に,R上で,Jupyter のカーネルにRを設定するのですが,以下のエラー
IRkernel::installspec() でエラー: jupyter-client has to be installed but “jupyter kernelspec --version” exited with code 127. 追加情報: 警告メッセージ: system2("jupyter", c("kernelspec", "--version"), FALSE, FALSE) で: 命令の実行中にエラーが起きました
・・・もう吐き気しかないよ....
つまり,Kernelを通すためのバージョンと,どこにRが通っている?という問題らしくて...
同じような悩みの方がいて,その方の議論からPathの設定を行う.
通常のTerminal上で以下をタイプ
Sys.getenv('PATH')
そうすると,Pathが通った情報がずらずら〜と出てくるので,その結果をコピーしておく
Rをsudo -i Rで起動し,以下をタイプ
> Sys.setenv(PATH='Sys.getenv('PATH')結果をここにコピペ') > IRkernel::installspec(user=FALSE)
エラーがなければ,Jupyter を起動し,カーネルにRが入っていることを確認. これで終わり.... (Rはやっぱりあまり得意じゃない)