RStudioのコンパイル中にエラーが発生しました


8

Raspberry Pi 2モデルBでRaspbianを使用しています

RStudioのWebページとこのトピックhttps://www.raspberrypi.org/forums/viewtopic.php?f=34&t=55828のガイドラインに従いました

sudo su
apt-get install git r-recommended
git clone https://github.com/rstudio/rstudio.git
cd rstudio
./dependencies/linux/install-dependencies-debian
mkdir build
cd build
cmake .. -DRSTUDIO_TARGET=Server -DCMAKE_BUILD_TYPE=Release
make install

しかし、cmake .. -DRSTUDIO_TARGET=Server -DCMAKE_BUILD_TYPE=Releaseそれを行うと、このエラーがスローされます:

CMake Error at src/cpp/session/CMakeLists.txt:23 (message):
  Dictionaries not found (re-run install-dependencies script to install)


-- Configuring incomplete, errors occurred!
See also "/home/pi/rstudio/build/CMakeFiles/CMakeOutput.log".
See also "/home/pi/rstudio/build/CMakeFiles/CMakeError.log".

依存関係を再インストールしようとしましたが、それは役に立ちませんでした

これはエラーログです。

Determining if the function getpeereid exists failed with the following output:
Change Dir: /home/pi/rstudio/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTryCompileExec3944045131/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3944045131.dir/build.make CMakeFiles/cmTryCompileExec3944045131.dir/build
make[1]: Entering directory '/home/pi/rstudio/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/pi/rstudio/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec3944045131.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=getpeereid   -o CMakeFiles/cmTryCompileExec3944045131.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.0/Modules/CheckFunction$
Linking C executable cmTryCompileExec3944045131
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3944045131.dir/link.txt --verbose=1
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=getpeereid    CMakeFiles/cmTryCompileExec3944045131.dir/CheckFunctionExists.c.o  -o cmTryCompileExec3944045131 -rdynamic
CMakeFiles/cmTryCompileExec3944045131.dir/CheckFunctionExists.c.o: In function `main':
CheckFunctionExists.c:(.text+0x14): undefined reference to `getpeereid'
collect2: error: ld returned 1 exit status
CMakeFiles/cmTryCompileExec3944045131.dir/build.make:88: recipe for target 'cmTryCompileExec3944045131' failed
make[1]: *** [cmTryCompileExec3944045131] Error 1
make[1]: Leaving directory '/home/pi/rstudio/build/CMakeFiles/CMakeTmp'
Makefile:118: recipe for target 'cmTryCompileExec3944045131/fast' failed
make: *** [cmTryCompileExec3944045131/fast] Error 2

何が起こっているのか知っていますか?

編集1:

これは、runningの出力です./dependencies/linux/install-dependencies-debian

root@raspberrypi:/home/pi/rstudio# ./dependencies/linux/install-dependencies-debian
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
pkg-config is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
fakeroot is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
cmake is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
uuid-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
libssl-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
libbz2-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libpam0g-dev' instead of 'libpam-dev'
libpam0g-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
libxslt1-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
libapparmor1 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
apparmor-utils is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
libboost-all-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
libpango1.0-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package openjdk-6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  apt

E: Package 'openjdk-6-jdk' has no installation candidate

openjdk-6-jdkが必要であることがわかりますが、リポジトリにはありません。openjdk-7-jdkを手動でインストールしましたが、インストールできませんでした。

その後、openjdk-6-jdkをインストールしようとする行にコメント(#)を付けました。これでパッケージのインストールに続き、これらは出力の(最後の行)です。

Reading package lists... Done
Building dependency tree
Reading state information... Done
ant is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
unzip is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
./dependencies/linux/install-dependencies-debian: line 58: cd: ../common: No such file or directory

ファイルにもう一度入力しましたinstall-dependencies-linuxが、失敗した行は次のとおりです。

cd ../common
./install-common
cd ../linux

しかし、何をインストールしようとしているのかわかりません。これらの行の後に、Qtのインストールの行を開始しますが、それはRStudio Desktopバージョン用であり、サーバーバージョンではありません。

編集2:

コマンドfind / -name install-commonを使用して、依存関係ディレクトリの下に共通ディレクトリがあることがわかりました。Iそうcdに」edが/dependencies/common/行われ、手動で./install-common

root@raspberrypi:/home/pi/rstudio/dependencies/common# ./install-common
--2015-11-21 19:26:41--  https://s3.amazonaws.com/rstudio-buildtools/gin-1.5.zip
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.98.155
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.98.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1055663 (1.0M) [application/zip]
Saving to: ‘gin-1.5.zip’

gin-1.5.zip         100%[=====================>]   1.01M   951KB/s   in 1.1s

2015-11-21 19:26:43 (951 KB/s) - ‘gin-1.5.zip’ saved [1055663/1055663]

--2015-11-21 19:26:44--  https://s3.amazonaws.com/rstudio-buildtools/gwt-2.7.0.zip
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.9.24
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.9.24|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 108818328 (104M) [application/zip]
Saving to: ‘gwt-2.7.0.zip’

gwt-2.7.0.zip       100%[=====================>] 103.78M  7.80MB/s   in 20s

2015-11-21 19:27:04 (5.27 MB/s) - ‘gwt-2.7.0.zip’ saved [108818328/108818328]

--2015-11-21 19:27:36--  https://s3.amazonaws.com/rstudio-buildtools/junit-4.9b3.jar
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.49.132
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.49.132|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 247280 (241K) [application/java-archive]
Saving to: ‘junit-4.9b3.jar’

junit-4.9b3.jar     100%[=====================>] 241.48K   246KB/s   in 1.0s

2015-11-21 19:27:38 (246 KB/s) - ‘junit-4.9b3.jar’ saved [247280/247280]

--2015-11-21 19:27:38--  https://s3.amazonaws.com/rstudio-buildtools/selenium-java-2.37.0.zip
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.112.67
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.112.67|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 24625928 (23M) [application/zip]
Saving to: ‘selenium-java-2.37.0.zip’

selenium-java-2.37. 100%[=====================>]  23.48M  2.28MB/s   in 16s

2015-11-21 19:27:55 (1.45 MB/s) - ‘selenium-java-2.37.0.zip’ saved [24625928/24625928]

--2015-11-21 19:28:00--  https://s3.amazonaws.com/rstudio-buildtools/selenium-server-standalone-2.37.0.jar
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.114.92
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.114.92|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 34730734 (33M) [application/x-java-archive]
Saving to: ‘selenium-server-standalone-2.37.0.jar’

selenium-server-sta 100%[=====================>]  33.12M  4.39MB/s   in 8.6s

2015-11-21 19:28:10 (3.84 MB/s) - ‘selenium-server-standalone-2.37.0.jar’ saved [34730734/34730734]

--2015-11-21 19:28:10--  https://s3.amazonaws.com/rstudio-buildtools/chromedriver-mac
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.96.144
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.96.144|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22034760 (21M) [application/octet-stream]
Saving to: ‘chromedriver-mac’

chromedriver-mac    100%[=====================>]  21.01M  5.39MB/s   in 4.8s

2015-11-21 19:28:15 (4.34 MB/s) - ‘chromedriver-mac’ saved [22034760/22034760]

--2015-11-21 19:28:15--  https://s3.amazonaws.com/rstudio-buildtools/chromedriver-linux
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.97.227
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.97.227|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19303552 (18M) [application/octet-stream]
Saving to: ‘chromedriver-linux’

chromedriver-linux  100%[=====================>]  18.41M  2.53MB/s   in 9.4s

2015-11-21 19:28:25 (1.95 MB/s) - ‘chromedriver-linux’ saved [19303552/19303552]

--2015-11-21 19:28:25--  https://s3.amazonaws.com/rstudio-buildtools/chromedriver-win.exe
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.13.152
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.13.152|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6731776 (6.4M) [application/octet-stream]
Saving to: ‘chromedriver-win.exe’

chromedriver-win.ex 100%[=====================>]   6.42M  2.52MB/s   in 2.6s

2015-11-21 19:28:29 (2.52 MB/s) - ‘chromedriver-win.exe’ saved [6731776/6731776]

--2015-11-21 19:28:29--  https://s3.amazonaws.com/rstudio-dictionaries/core-dictionaries.zip
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.10.192
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.10.192|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 876339 (856K) [application/zip]
Saving to: ‘core-dictionaries.zip’

core-dictionaries.z 100%[=====================>] 855.80K  1.00MB/s   in 0.8s

2015-11-21 19:28:31 (1.00 MB/s) - ‘core-dictionaries.zip’ saved [876339/876339]

--2015-11-21 19:28:31--  https://s3.amazonaws.com/rstudio-buildtools/mathjax-23.zip
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.1.152
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.1.152|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1674748 (1.6M) [application/zip]
Saving to: ‘mathjax-23.zip’

mathjax-23.zip      100%[=====================>]   1.60M   578KB/s   in 2.8s

2015-11-21 19:28:35 (578 KB/s) - ‘mathjax-23.zip’ saved [1674748/1674748]

1.50.0 already installed in /opt/rstudio-tools/boost/boost_1_50_0
--2015-11-21 19:28:35--  https://s3.amazonaws.com/rstudio-buildtools/pandoc-1.13.1.zip
Resolving s3.amazonaws.com (s3.amazonaws.com)... 54.231.64.184
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.64.184|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 115697042 (110M) [application/zip]
Saving to: ‘pandoc-1.13.1.zip’

pandoc-1.13.1.zip   100%[=====================>] 110.34M  1.99MB/s   in 44s

2015-11-21 19:29:20 (2.52 MB/s) - ‘pandoc-1.13.1.zip’ saved [115697042/115697042]

cp: cannot stat ‘pandoc-1.13.1/linux/debian/armv7l/pandoc*’: No such file or directory

そして今私がもう一度cmakeを実行すると、これは出力です:

root@raspberrypi:/home/pi/rstudio/build# cmake .. -DRSTUDIO_TARGET=Server -DCMAKE_BUILD_TYPE=Release
-- Boost version: 1.50.0
-- Found R: /usr/lib/R
CMake Error at src/cpp/session/CMakeLists.txt:32 (message):
  rsconnect package not found (re-run install-dependencies script to install)


-- Configuring incomplete, errors occurred!
See also "/home/pi/rstudio/build/CMakeFiles/CMakeOutput.log".
See also "/home/pi/rstudio/build/CMakeFiles/CMakeError.log".

少なくとも今は別の行でエラーをスローします!

編集3:

内部に依存関係を手動でインストールしinstall-common、cmakeコマンドが機能するようになりました!わーい!

今私はaを実行しましたmake installが、ここで行き詰まります:

Buildfile: /home/pi/rstudio/src/gwt/build.xml

ext:

1
その上に古い(死んで)質問ここでは ...何を出力します(その依存関係のインストールから取得したのapt-get ..../dependencies/linux/install-dependencies-debian)?
Wilf、2015年

@Wilfコメントありがとうございます。私は質問を編集しました
セルジオフェルナンデス

@Wilf申し訳ありませんが、からの出力apt-get ...はすべて正常に行われました。git is already the newest version. r-recommended is already the newest version.
セルジオフェルナンデス

1
ちょうど分類上のポイント-記録としては、Raspberry PiモデルB +またはRaspberry Pi 2モデルBのいずれかを使用します。2番目には3つのプロセッサーコア(および2倍のメモリIIRC)があります...
SlySven

申し訳ありませんが、この投稿の冒頭でRaspberry Pi 2 Model B +を作成しました。Raspberry Pi 2モデルBを意味します。これで問題ありません。ありがとうございます。
セルジオフェルナンデス2015

回答:


6

このスレッドからのヒント(ありがとう!)、別のStack Overflowスレッド、別のARMインストール(Chromebook)、および多くの試行錯誤を使用して、RStudio Server v0.99.491を起動して実行することができましたパイ2。

セルジオ、あなたが見逃していると思うのは:

  1. 手動でpandocをインストールします。

    sudo apt-get install -y pandoc
    
  2. 新しいGWTコンパイラー。以下のプロセスは、ディレクトリの設定方法によって異なります。基本的に、最新のコンパイラをダウンロードして解凍し、「compiler」フォルダに移動します。

    cd ~/downloads
    wget http://dl.google.com/closure-compiler/compiler-latest.zip
    unzip compiler-latest.zip
    rm COPYING README.md compiler-latest.zip
    sudo mv compiler.jar /home/pi/downloads/rstudio/src/gwt/tools/compiler/compiler.jar
    
  3. 潜在的に、SWAPスペース。SWAPを使用した場合と使用しない場合の両方でコンパイルするための結果はさまざまです。私が知っていることは、私がSWAPを使用して、現在インストールされている作業インストールを取得することです。

上記のプロセスに苦労した可能性のある他の人のために、私はそれをコンパイルするために最善を尽くしました。注:それは時間かかります./install-commonmake install。ビルドには4.5時間近くかかったと思いますmake install

sudo su
apt-get update
apt-get upgrade -y
apt-get install -y git r-recommended
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 ~/downloads
wget http://dl.google.com/closure-compiler/compiler-latest.zip
unzip compiler-latest.zip
rm COPYING README.md compiler-latest.zip
mv compiler.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
cmake -DRSTUDIO_TARGET=Server -DCMAKE_BUILD_TYPE=Release
make install

さらに、サーバーを起動して実行するための手順がいくつかありますが、ほとんどの人が困っていると思います。ChromebookでのjrowenのARMビルドから取った次のステップは次のとおりです。

# Additional install steps
sudo useradd -r rstudio-server
sudo cp /usr/local/lib/rstudio-server/extras/init.d/debian/rstudio-server /etc/init.d/rstudio-server
sudo chmod +x /etc/init.d/rstudio-server 
sudo ln -f -s /usr/local/lib/rstudio-server/bin/rstudio-server /usr/sbin/rstudio-server
sudo chmod 777 -R /usr/local/lib/R/site-library/

# Setup locale
sudo apt-get install -y locales
sudo DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
#echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
#echo 'export LANGUAGE=en_US.UTF-8' >> ~/.bashrc

# Clean the system of packages used for building
sudo apt-get autoremove -y cabal-install ghc openjdk-7-jdk pandoc libboost-all-dev
sudo rm -r -f ~/rstudio-$VERS
sudo apt-get autoremove -y

# Start the server
sudo rstudio-server start

# Go to localhost:8787

Stack ExchangeコミュニティのRaspberry Pi風味のコーナーへようこそ。これは私にきちんと書かれた答えのようです!
SlySven、2016

1

3年後、dhewlettの回答に基づいて、Raspbian StretchでRStudio 1.1.463を構築することができました。再現性を高めるために、すべてをDockerビルドに入れました。それはいくつかの部分で来ます。

まず、RStudioのビルド環境を作成します。Dockerfile.build_envは次のようになります。

FROM balenalib/raspberrypi3-debian:stretch-build as build_env

ARG VERSION_MAJOR=1
ARG VERSION_MINOR=1
ARG VERSION_PATCH=463
ARG PACKAGE_RELEASE=1
ARG VERSION_TAG=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}

RUN apt-get update && apt-get upgrade -y && apt-get install -y \
      galternatives \
      git \
      openjdk-8-jdk \
      pandoc \
      pandoc-citeproc \
      python-dev \
      r-recommended

RUN mkdir -p /home/pi/Downloads
WORKDIR /home/pi/Downloads

# Get the RStudio sources. We only download the version of the code we need,
# instead of HEAD. HEAD has dependencies that RaspberryPi3 Debian (v9 Stretch)
# currently doesn't satisfy, e.g. QT >= 5.10.
RUN set -x \
    && wget https://github.com/rstudio/rstudio/archive/v${VERSION_TAG}.tar.gz -O rstudio.tgz \
    && tar xzf rstudio.tgz \
    && rm rstudio.tgz \
    && ln -s rstudio-${VERSION_TAG} rstudio

WORKDIR /home/pi/Downloads/rstudio/dependencies/linux
# We're going to use the system version of the boost library (version
# 1.62.0) instead of installing and building the RStudio version of boost
# (version 1.63.0) which takes several hours of build time.
RUN perl -i -pe 's/(^.*install-boost$)/# \1/s' ../common/install-common
RUN apt-get install libboost-all-dev
# Script installs qt-sdk only for x86 but we need armhf, so skip qt install.
RUN ./install-dependencies-debian --exclude-qt-sdk
# Extra dependencies to build rstudio-desktop: use the system QT libraries instead.
RUN apt-get install -y \
      libqt5opengl5-dev \
      libqt5sensors5-dev \
      libqt5svg5-dev \
      libqt5webkit5-dev \
      libqt5xmlpatterns5-dev \
      qt5-default \
      qt5-style-plugins \
      qtpositioning5-dev \
      qtwebengine5-dev

WORKDIR /home/pi/Downloads/rstudio
# Package building wants to grab QT library files to bundle them with the
# RStudio desktop .deb package. But bundling of system QT doesn't work due
# to path differences and is unnecessary anyway.
RUN sed -i -e 's#\(set(RSTUDIO_BUNDLE_QT\) TRUE#\1 FALSE#' src/cpp/desktop/CMakeLists.txt
# Add the package dependencies to system QT libraries.
RUN sed -i -e 's#\(^.*set(RSTUDIO_DEBIAN_DEPENDS "${RSTUDIO_DEBIAN_DEPENDS}libgstreamer0.10.*$\)#\1\nset(RSTUDIO_DEBIAN_DEPENDS "${RSTUDIO_DEBIAN_DEPENDS}libqt5webchannel5, libqt5webkit5, libqt5positioning5, libqt5sensors5, libqt5svg5, libqt5xml5, libqt5xmlpatterns5, ")#' package/linux/CMakeLists.txt
# Add our own package release (aka. Debian revision number) to the .deb file.
RUN sed -i -e 's#\(^.*\)-\(${PACKAGE_ARCHITECTURE}\)#set(CPACK_DEBIAN_PACKAGE_RELEASE "'${PACKAGE_RELEASE}'")\n\1-${CPACK_DEBIAN_PACKAGE_RELEASE}_\2#' package/linux/CMakeLists.txt

# Constrain gwtc compiler to use a single worker - gwtc is a memory hog and
# running multiple workers is getting too tight with 1 GB RAM + 1 GB swap.
RUN perl -0777 -i -pe 's#(<arg value="-localWorkers"/>\s+<arg value=)"\d+"(/>)#\1"1"\2#s' src/gwt/build.xml

# Change "cmake_policy(SET CMP0020 OLD)" to "cmake_policy(SET CMP0043 OLD)"
# to avoid a build time complaint.
RUN sed -i -e s/CMP0020/CMP0043/g src/cpp/desktop/CMakeLists.txt

# We build in a separate directory.
RUN mkdir build

そして、そのイメージをビルドします:

docker build -t raspberrypi-rstudio-build-env -f Dockerfile.build_env .

次に、Dockerfile.server_debを使用してRStudio Server Debianパッケージをビルドします。

# The compilation, especially gwtc (java), needs a lot of memory so you need
# to add more swap on your RP3 in order for the compile to succeed:
#   * In /etc/dphys-swapfile set CONF_SWAPSIZE=1024 (default is 100)
#   * Then run sudo service dphys-swapfile restart
#   * Once the build is done and you're happy with the result you can set
#     the swap space back to the default 100 MB with:
#     * In /etc/dphys-swapfile set CONF_SWAPSIZE=100
#     * sudo service dphys-swapfile restart

FROM raspberrypi-rstudio-build-env as build_env

ARG VERSION_MAJOR=1
ARG VERSION_MINOR=1
ARG VERSION_PATCH=463
ARG PACKAGE_RELEASE=1
ARG VERSION_TAG=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
ARG BUILD_TAG=${VERSION_TAG}-${PACKAGE_RELEASE}

# Build only with parallelism 2 - gwtc is a memory hog. If you still run out
# of memory override this to 1.
ARG BUILD_PARALLELISM=2

WORKDIR /home/pi/Downloads/rstudio/build

RUN set -x \
    && cmake .. \
      -DRSTUDIO_TARGET=Server \
      -DCMAKE_BUILD_TYPE=Release \
      -DRSTUDIO_PACKAGE_BUILD=1 \
      -DRSTUDIO_BOOST_VERSION=1.62.0 \
      -DRSTUDIO_USE_SYSTEM_BOOST=1 \
    && make preinstall -j${BUILD_PARALLELISM}
# Create the deb package. Unfortunately cpack wants to rerun the whole build,
# so we'll work around that by giving it an empty build rule.
# (There really should be a better way to avoid the rebuild.)
RUN set -x \
    && mv Makefile Makefile.orig \
    && echo 'preinstall:' > Makefile \
    && cpack -G DEB \
    && mv Makefile.orig Makefile
# The product of this build is: rstudio-server-${BUILD_TAG}_armhf.deb

# Extract only the finished Debian package and leave it in an empty docker
# image to reduce image size. If you want to capture the package in its
# build environment, build it only to stage --target=build_env
FROM scratch as package

# ARGs need to be redefined in every build stage to be accessible.
ARG VERSION_MAJOR=1
ARG VERSION_MINOR=1
ARG VERSION_PATCH=463
ARG PACKAGE_RELEASE=1
ARG VERSION_TAG=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
ARG BUILD_TAG=${VERSION_TAG}-${PACKAGE_RELEASE}

COPY --from=build_env /home/pi/Downloads/rstudio/build/rstudio-server-${BUILD_TAG}_armhf.deb /

そのイメージをビルドし、RStudio Server Debianパッケージを抽出します。

docker build -t raspberrypi-rstudio-server-deb -f Dockerfile.server_deb .
docker image save raspberrypi-rstudio-server-deb | tar xO --wildcards '*/layer.tar' | tar x

同様に、RStudioデスクトップDebianパッケージの場合は、Dockerfile.desktop_debを使用します。

FROM raspberrypi-rstudio-build-env as build_env

ARG VERSION_MAJOR=1
ARG VERSION_MINOR=1
ARG VERSION_PATCH=463
ARG PACKAGE_RELEASE=1
ARG VERSION_TAG=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
ARG BUILD_TAG=${VERSION_TAG}-${PACKAGE_RELEASE}

# Build only with parallelism 2 - gwtc is a memory hog. If you still run out
# of memory override this to 1.
ARG BUILD_PARALLELISM=2

WORKDIR /home/pi/Downloads/rstudio/build

RUN set -x \
    && cmake .. \
      -DRSTUDIO_TARGET=Desktop \
      -DCMAKE_BUILD_TYPE=Release \
      -DRSTUDIO_PACKAGE_BUILD=1 \
      -DRSTUDIO_BOOST_VERSION=1.62.0 \
      -DRSTUDIO_USE_SYSTEM_BOOST=1 \
      -DQT_QMAKE_EXECUTABLE=/usr/lib/arm-linux-gnueabihf/qt5/bin/qmake \
    && make preinstall -j${BUILD_PARALLELISM}
# Create the deb package. Unfortunately cpack wants to rerun the whole build,
# so we'll work around that by giving it an empty build rule.
# (There really should be a better way to avoid the rebuild.)
RUN set -x \
    && mv Makefile Makefile.orig \
    && echo 'preinstall:' > Makefile \
    && cpack -G DEB \
    && mv Makefile.orig Makefile
# The product of this build is: rstudio--${BUILD_TAG}_armhf.deb

# Comment out next line for native build.
RUN [ "cross-build-end" ]

# Extract only the finished Debian package and leave it in an empty docker
# image to reduce image size. If you want to capture the package in its
# build environment, build it only to stage --target=build_env
FROM scratch as package

# ARGs need to be redefined in every build stage to be accessible.
ARG VERSION_MAJOR=1
ARG VERSION_MINOR=1
ARG VERSION_PATCH=463
ARG PACKAGE_RELEASE=1
ARG VERSION_TAG=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
ARG BUILD_TAG=${VERSION_TAG}-${PACKAGE_RELEASE}

COPY --from=build_env /home/pi/Downloads/rstudio/build/rstudio--${BUILD_TAG}_armhf.deb /

そのイメージをビルドし、RStudioデスクトップDebianパッケージを抽出します。

docker build -t raspberrypi-rstudio-desktop-deb -f Dockerfile.desktop_deb .
docker image save raspberrypi-rstudio-desktop-deb | tar xO --wildcards '*/layer.tar' | tar x

最後に、依存パッケージも取り込むaptを使用して.debパッケージをインストールします。ただし、最初にパッケージリストを必ず更新してください。

sudo apt-get update
sudo apt install ./rstudio-server-1.1.463-1_armhf.deb
sudo apt install ./rstudio--1.1.463-1_armhf.deb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.