Linux化計画(15)–RのUpdate

Rのバージョンが古い(3.1.1)ので、Update(3.3.2)したくなりました。
例によって、何度もやっている

sudo apt-get install r-base

とやっても、「最新です」というメッセージが。

Windows版のほうがlinux版よりも新しいはずがないのでCRANをのぞいたら案の定でした。
多分、何か忘れていますね。
ここCRANのトップページにヒントがありました。

Supported branches
Debian jessie (stable)

For a backport of R 3.3.2 to jessie, simply add something like

deb /bin/linux/debian jessie-cran3/

to the file /etc/apt/sources.list on your computer. You need to substitute by one of the mirror URLs listed in the mirror list.

これによれば、アップデートサイトを登録しておかなければならないようです。CRANのミラーは統計数理研究所にあるので、さっそくnanoを使って、/etc/apt/sources.listに以下の一行を追加して、再度apt-get updateを実行。

deb http://cran.ism.ac.jp/bin/linux/debian jessie-cran3/

すると今度は次のようなエラーが・・・(´・ω・`) なにこれ?

W: GPG エラー: http://cran.ism.ac.jp jessie-cran3/ Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 06F90DE5381BA480

とりあえずもう一度、apt-get updateしたら、またもや同じメッセージが出たのですが、upgradeしてみると

警告: 以下のパッケージは認証されていません!
r-doc-html r-base-html
検証なしにこれらのパッケージをインストールしますか? [y/N]

と聞かれます。ここでYesを選択すればインストールはできるのでしょうけど、せっかくのセキュリティ対策を使わないのはばかげていますし、ここで勉強しなければ意味ありません。

CRANトップページに以下の解説が。

Secure apt

The Debian backports archives on CRAN are signed with the key of Johannes Ranke (CRAN Debian archive) with key fingerprint 6212 B7B7 931C 4BB1 6280 BA13 06F9 0DE5 381B A480. You can fetch and import this with

apt-key adv --keyserver keys.gnupg.net --recv-key 6212B7B7931C4BB16280BA1306F90DE5381BA480

初めて公開鍵認証というものを意識しました。
指示通りapt-keyを何度か試してもエラーばかり。う~ん、とうなること数回。あ、そうだ。sudoが抜けてます。

gpg: 鍵381BA480をhkpからサーバーkeys.gnupg.netに要求
gpg: 鍵381BA480: 公開鍵“Johannes Ranke (CRAN Debian archive) ”を読み込みました
gpg: 処理数の合計: 1
gpg: 読込み: 1

今度はうまくいきました。
この後、

sudo apt-get update
sudo apt-get upgrade

さらなるエラーが

インストールすることができないパッケージがありました。おそらく、あり得ない状況を要求したか、(不安定版ディストリビューションを使用しているのであれば) 必要なパッケージがまだ作成されていなかったり Incoming から移動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
r-base : 依存: r-base-core (>= 3.3.2-1~jessiecran.0) しかし、3.1.1-1 はインストールされようとしています
依存: r-recommended (= 3.3.2-1~jessiecran.0) しかし、3.1.1-1 はインス トールされようとしています
r-base-dev : 依存: r-base-core (>= 3.3.2-1~jessiecran.0) しかし、3.1.1-1 はインストールされようとしています
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

「満たせない依存関係」?どうやらバージョンの前後関係が合っていないと言っているようですが、よくわかりませんが、r-baseがr-base-coreの3.3.2-1に依存しているにもかかわらず、3.1.1-1をインストールしようとしているという意味でしょうか(日本語が少し変です)。

こちらのサイト「apt-getのはまりどころ」によるとどうやらはまりどころのようですね。結局、

sudo apt-get remove r-base-core r-recommended

してもう一度、updateからupgradeでやり直しです。しかしどうもうまくいきません。
このサイトを参考にして、aptitudeを試してみました。

UbuntuのOSバージョンアップなどでaptの依存関係がおかしくなったときはaptitudeが便利

sudo aptitude install r-base

すると、いろいろな提案をしてくれます。とりあえず全部Noを選んで、すべての提案を確認。そのうえで、3.3.2ではなく3.1の安定板を使うのがよさそうだったので、その提案でインストールをしなおし。

pi@raspberrypi:~ $ sudo aptitude install r-base
以下の新規パッケージがインストールされます:
autotools-dev{a} cdbs{a} icu-devtools{a} libblas-dev{a} libbz2-dev{a}
libicu-dev{a} liblapack-dev{a} liblzma-dev{a} libncurses5-dev{a}
libpcre3-dev{a} libpcrecpp0{a} libreadline-dev{a} libreadline6-dev{a}
libtinfo-dev{a} r-base{b} r-base-core{a} r-base-dev{ab} r-base-html{a}
r-cran-boot{ab} r-cran-class{a} r-cran-cluster{a} r-cran-codetools{ab}
r-cran-foreign{a} r-cran-kernsmooth{a} r-cran-lattice{a} r-cran-mass{a}
r-cran-matrix{a} r-cran-mgcv{a} r-cran-nlme{a} r-cran-nnet{a}
r-cran-rpart{a} r-cran-spatial{a} r-cran-survival{a} r-doc-html{a}
r-recommended{ab}
更新: 0 個、新規インストール: 35 個、削除: 0 個、保留: 3 個。
アーカイブ 45.8 M バイト中 8,280 k バイトを取得する必要があります。展開後に 101 M バイトのディスク領域が新たに消費されます。
以下のパッケージには満たされていない依存関係があります:
r-cran-codetools : 依存: r-base-core (>= 3.3.1-1~jessiecran.0) [3.1.1-1 がイン ストール予定となっています]
依存: r-api-3[仮想パッケージです]
r-recommended : 依存: r-base-core (>= 3.3.2-1~jessiecran.0) [3.1.1-1 がインストール予定となっています]
r-base : 依存: r-base-core (>= 3.3.2-1~jessiecran.0) [3.1.1-1 がインストール予 定となっています]
r-cran-boot : 依存: r-base-core (>= 3.3.1-1~jessiecran.0) [3.1.1-1 がインストール予定となっています]
依存: r-api-3[仮想パッケージです]
r-base-dev : 依存: r-base-core (>= 3.3.2-1~jessiecran.0) [3.1.1-1 がインストー ル予定となっています]
以下のアクションでこれらの依存関係の問題は解決されます:

以下のパッケージを現在のバージョンに一時固定する:
1) r-base [インストールされていません]
2) r-base-dev [インストールされていません]
3) r-cran-boot [インストールされていません]
4) r-cran-codetools [インストールされていません]
5) r-recommended [インストールされていません]

以下の依存関係を未解決のままにする:
6) r-base-core が r-recommended を推奨
7) r-base-core が r-base-dev を推奨

この解決方法を受け入れますか? [Y/n/q/?]n
以下のアクションでこれらの依存関係の問題は解決されます:

以下のパッケージをインストールする:
1) r-base-dev [3.1.1-1 (stable)]
2) r-cran-boot [1.3-13-1 (stable)]
3) r-cran-codetools [0.2-9-1 (stable)]
4) r-recommended [3.1.1-1 (stable)]

以下のパッケージを現在のバージョンに一時固定する:
5) r-base [インストールされていません]

この解決方法を受け入れますか? [Y/n/q/?]n
以下のアクションでこれらの依存関係の問題は解決されます:

以下のパッケージをインストールする:
1) r-base-dev [3.1.1-1 (stable)]

以下のパッケージを現在のバージョンに一時固定する:
2) r-base [インストールされていません]
3) r-cran-boot [インストールされていません]
4) r-cran-codetools [インストールされていません]
5) r-recommended [インストールされていません]

以下の依存関係を未解決のままにする:
6) r-base-core が r-recommended を推奨

この解決方法を受け入れますか? [Y/n/q/?]n
以下のアクションでこれらの依存関係の問題は解決されます:

以下のパッケージをインストールする:
1) r-base [3.1.1-1 (stable)]
2) r-base-dev [3.1.1-1 (stable)]
3) r-cran-boot [1.3-13-1 (stable)]
4) r-cran-codetools [0.2-9-1 (stable)]
5) r-recommended [3.1.1-1 (stable)]

この解決方法を受け入れますか? [Y/n/q/?]

結局、最後の方法を受け入れてインストールは終わり。つまりアップデートはできないまま前のバージョンに戻しました。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


計算式を埋めてください * Time limit is exhausted. Please reload CAPTCHA.