Raspberry Piの標準的なOSであるRaspbian Jessie with PIXELには,R3.1.1がインストールされていますが、統合開発環境のRStudioはインストールされていません。また、APT (Advanced Packaging Tool)でも提供されていないので,簡単にapt-getでインストールというわけにはいきません。RStudioのソースコードからビルドする必要があります。
ここでは,RStudioのソースコードからRStudioのデスクトップ版とRStudio Serverをビルドしてインストール方法について説明します。
ビルドには多めのスワップ領域が必要でソースコードやパッケージを多数インストールするため,Raspbianを入れているmicroSDカードには十分な空き容量が必要です。16GBでも空き容量があれば問題ありませんが,足りない場合は32GBのmicroSDカードを用意するか,USBフラッシュメモリやUSBハードディスクなどに頼る必要があります。ここではそのままRaspbian上での作業を記載しますが,外部領域の利用については参考文献[1]を参考にしてください。RStudioインストール後は,マイクロSDカードの寿命を考えるとスワップ領域は元の値に戻しておく方が良いかもしれません。
pi@raspberrypi:~ $ swapon -s Filename Type Size Used Priority /var/swap file 102396 0 -1となっていました。これを変更します。以下,root権限で実します。
sudo su service dphys-swapfile stopでサービスを止めた後で,dphys-swapfileを変更します。(エディターをお好きなものを)
nano /etc/dphys-swapfile以下の行を見つけ
CONF_SWAPSIZE=100値の100を1024にするか空(empty)にします。空にすると適当に計算してくれるようです。ここでは空にしてみます。修正を保存した後で,サービスを開始します。
service dphys-swapfile start結果このようになりました。
swapon -s Filename Type Size Used Priority /var/swap file 1914876 0 -1また,shはdashを使うようになっていますが,これをbashに変更するため次を実行します。(出てきたウインドウで「いいえ」を選択します。)
dpkg-reconfigure dash
apt-get update apt-get upgrade -y apt-get install -y git r-recommended python-dev cd /home/pi/Downloads/ git clone https://github.com/rstudio/rstudio.git cd /home/pi/Downloads/rstudio/dependencies/common/ ./install-common cd /home/pi/Downloads/rstudio/dependencies/linux/ ./install-dependencies-debian #saw java 6 was not installed. installed v7 apt-get install -y openjdk-7-jdk #tried to make install, got an error about dictionaries not installed and rerun install-dependencies cd /home/pi/Downloads/rstudio/dependencies/common/ ./install-common #tried to make install, hangs at "ext:" so I tried manually installing pandoc, which should have been installed earlier, but apparently was not apt-get install -y pandoc #tried to make install, hangs at "ext:" so I tried installing the latest GWT compiler cd /home/pi/Downloads wget http://dl.google.com/closure-compiler/compiler-latest.zip unzip compiler-latest.zip rm COPYING README.md compiler-latest.zip mv closure-compiler-v20170218.jar /home/pi/Downloads/rstudio/src/gwt/tools/compiler/compiler.jar #build and install works! cd /home/pi/Downloads/rstudio/ #remove build if exists rm -r ./build mkdir build
cd build cmake .. -DRSTUDIO_TARGET=Server -DCMAKE_BUILD_TYPE=Release make install # Additional install steps useradd -r rstudio-server cp /usr/local/lib/rstudio-server/extras/init.d/debian/rstudio-server /etc/init.d/rstudio-server chmod +x /etc/init.d/rstudio-server ln -f -s /usr/local/lib/rstudio-server/bin/rstudio-server /usr/sbin/rstudio-server chmod 777 -R /usr/local/lib/R/site-library/
# Setup locale apt-get install -y locales DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales exit pi@raspberrypi:~ $ echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc pi@raspberrypi:~ $ echo 'export LANGUAGE=ja_JP.UTF-8' >> ~/.bashrc[5]に,/usr/local/lib/rstudio-server/bin/pandoc にインストールされるpandocとpandoc-citeprocについて,x86用なので削除するか名前を変更せよ(変更後はRaspbianのRepositoryからインストールしたものが使用される)とあるので,以下を行います。
sudo apt-get install pandoc-citeproc sudo rm /usr/local/lib/rstudio-server/bin/pandoc sudo rm /usr/bin/pandoc-cite-proc /usr/local/lib/rstudio-server/bin/pandoc-citeprocdaemonをreloadした後で,RStudio Serverを起動させます。
sudo systemctl daemon-reload # Start the server sudo rstudio-server start # Go to localhost:8787
Desktop版のビルドは,Server版に比べ準備がいろいろあります。まず最初にビルドに必要なQTの環境を揃えます。./install-dependencies-debianの実行時の最後にQT環境がダウンロードされますが,これはandroidとx86用でRaspberry Piでは実行できません。RStudioのソース内のcmake用のファイルはダウンロードされたファイルの構造を使って書かれているので,そこにRasbiann用のファイルを(シンボリックリンクで)配置します。
apt-get install -y qt5-default libqt5svg5-dev libqt5sensors5-dev libqt5webkit5-dev libqt5xmlpatterns5-dev qtpositioning5-dev mv /root/Qt5.4.0/5.4/gcc/bin /root/Qt5.4.0/5.4/gcc/bin_orig mv /root/Qt5.4.0/5.4/gcc/lib /root/Qt5.4.0/5.4/gcc/lib_orig ln -sf /usr/lib/arm-linux-gnueabihf/qt5/bin/ /root/Qt5.4.0/5.4/gcc/bin ln -sf /usr/lib/arm-linux-gnueabihf /root/Qt5.4.0/5.4/gcc/libもともとのbinやlibフォルダは実際は使えないものなので削除してもいいのですが,念のため移動しておきます。
nano /root/Qt5.4.0/5.4/gcc/lib/cmake/Qt5Core/Qt5CoreMacros.cmakeCOPY_ONLYとある部分(一箇所)を,アンダースコアを削除して COPYONLYにします。あるいはsedを用いて
sed -i -e s/COPY_ONLY/COPYONLY/g /root/Qt5.4.0/5.4/gcc/lib/cmake/Qt5Core/Qt5CoreMacros.cmakeとします。
nano /home/pi/Downloads/rstudio/src/cpp/desktop/CMakeLists.txt先頭にあるcmake_policy(SET CMP0020 OLD)を cmake_policy(SET CMP0043 OLD)に変更します。あるいはsedを用いて
sed -i -e s/CMP0020/CMP0043/g /home/pi/Downloads/rstudio/src/cpp/desktop/CMakeLists.txtとします。
ビルドします。-DRSTUDIO_TARGETの値がRStudio Serverとは異なることに注意します。
cd /home/pi/Downloads/rstudio/build cmake .. -DRSTUDIO_TARGET=Desktop -DCMAKE_BUILD_TYPE=Release make -j3 install &> install_outputmakeに相当の時間がかかります。Raspberry PI 3, Transcend Premium 300x 32GBのmicroSDカード使用で16時間以上かかりました。 最後にServer版と同様に以下を行います。
sudo apt-get install pandoc-citeproc sudo rm /usr/local/lib/rstudio/bin/pandoc sudo rm /usr/local/lib/rstudio/bin/pandoc-citeprocRStudioの起動は
/usr/local/lib/rstudio/bin/rstudioを実行しますが,このまま実行すると"libEGL warning: DRI2: failed to authenticate"の警告が出ます。[6]などによると,/usr/lib/arm-linux-gnueabihf/ 内のlibEGL.soやlibGLESv2.soなどを変更する必要があるようです。/opt/vc/lib 内の該当ファイルからのシンボリックリンクをする記事が多いのですが,それをすると別のエラーが出ます。[6]には単にRaspbian 内で見つかるライブラリのシンボリックリンクを作るように書かれているので,/usr/lib/chromium-browser/にあるもののシンボリックリンクを試したところ警告が出なくなりました。これで正しい対処かどうかわかりませんが,一応対処法として記載します。(補足を見てください。)
sudo apt-get install chromium-browser LIBEGL=`sudo find /usr/lib/chromium-browser -name libEGL.so` LIBGLES=`sudo find /usr/lib/chromium-browser -name libGLESv2.so` sudo ln -sf $LIBEGL /usr/lib/arm-linux-gnueabihf/libEGL.so sudo ln -sf $LIBEGL /usr/lib/arm-linux-gnueabihf/libEGL.so.1 sudo ln -sf $LIBGLES /usr/lib/arm-linux-gnueabihf/libGLESv2.so sudo ln -sf $LIBGLES /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2RStudioの実行は,Raspberry PiのメニューにRStudioが追加されているのでそれを利用してもできます。