日々鍛錬

日本で一番?わかり易い??システムの落書き帳???を目指し????,日々鍛錬中な元SEさん主婦によるデベロッパとユーザと自分のための雑記帳

ubuntu 18.04 + R + Jupyter

きっかけ

  • WindowsでRをインストールした.だけど,Ubuntuでも使うから(Macもだけど)
  • コケた箇所
    • git のキーゲット
    • CRANの公式サイトで最後に方法があったこと・・(これは本当に悲しくなった・・

システムの構成

インストール手順(成功例と失敗例を一緒に)

書き方がめんどくさいので,Skipを考慮する

  1. ubuntu本体のアップデート 後にもするが,なんとなくやっぱりしておくと気持ちがいい
>  sudo apt update
>  sudo apt upgrade
  1. 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 -
  1. 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の最新版を入れるというそれぞれのおまじない

  1. 再度,Ubuntuをアップデートする
>  sudo apt update
>  sudo apt upgrade
  1. 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

こちらが参考になりました.

yngpt.hatenadiary.jp

再度,R terminalに入り,実行 そして,Permission deninedとかのエラー....

再度Rを管理者モードで入る

>sudo R -i

Rコマンドラインで6.のパッケージ更新 完了

  1.  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の設定を行う.

github.com

通常のTerminal上で以下をタイプ

Sys.getenv('PATH')

そうすると,Pathが通った情報がずらずら〜と出てくるので,その結果をコピーしておく

Rをsudo -i Rで起動し,以下をタイプ

> Sys.setenv(PATH='Sys.getenv('PATH')結果をここにコピペ')
> IRkernel::installspec(user=FALSE)

エラーがなければ,Jupyter を起動し,カーネルにRが入っていることを確認. これで終わり.... (Rはやっぱりあまり得意じゃない)