2017-11-17 8 views
0

Windowsマシン上でRのI install.package()を実行すると、パッケージはCRANからダウンロードされ、インストールされます。私がLinuxの箱で同じことをするとき、パッケージは通常コンパイルしなければなりません(少なくとも、スクロールしている行はどれもg++です)。さまざまなオペレーティングシステムでCRANのパッケージを異なる方法でインストールするのはなぜですか?

Windowsでパッケージのインストール方法が異なるのはなぜですか?

その他questionstheir answers特に、Linuxではさまざまな方法とリポジトリを使用すると、より多くの/異なるパッケージ(特にcran2debリポジトリを使用)を取得できることがわかります。私の質問は本質的に理論的です。なぜなら、Windowsのデフォルトの選択はプリコンパイルされた(バイナリの)パッケージをダウンロードするのに対し、Linuxのデフォルトはソースからパッケージをコンパイルするようです。

別の言い方をすると(上記の2番目のリンクでDirkの主張に基づいて)、CRANはUnixタイプのオペレーティングシステム用のバイナリパッケージを提供しないのはなぜですか?

答えて

1

一般に、WindowsバイナリはすべてのバージョンのWindowsで動作します。

MacOSのキー/現行バージョン用の同名:提供されたバイナリが動作します。

Linuxは、悲しいことに、異なるディストリビューションが異なる仕方でレイアウトするため、より複雑です。私がUbuntuやDebian(あるいはもっと具体的にはそのリリース版)で構築したものは、同じディストリビューションの他のリリースでは動作しないかもしれません。場合によっては、バイナリを入手することもできます。ある時点で、私はCRANのすべてのビルドサービスを所有していましたが、死んだ/壊れました。すべての努力をすることができますが、いくつかの努力。

ソースからです。とにかく "UNIX"はSunOS/Solaris、AIX、* BSD、SGIなどを網羅したキャッチオールのフレーズでした。多くの場合、異なるプロセッサでさえも。だからソース。

「ユニバーサルバイナリ」を提供する試みがありました。フラットパックとスナップは、最近の2つの例です。もちろん、Dockerもあります。

関連する問題