7

I'm a newbie to Linux and try to install the latest R version on my Raspberry. My Raspberry runs on Wheezy 7.8.

I followed instructions on CRAN, so I

  • added deb http://cran.rstudio.com/bin/linux/debian wheezy-cran3/ to /etc/apt/sources.list
  • ran apt-get update which was successful and gave me only a "signature error" for the public key as pointed out on the CRAN-site
  • ran apt-get install r-base

But the result of the last command is

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.  
The following information may help to resolve the situation:
The following packages have unmet dependencies:  
 r-base : Depends: r-base-core (>= 3.1.2-1~wheezycran3.0) but it is not going to be installed     
Depends: r-recommended (= 3.1.2-1~wheezycran3.0) but it is not going to be installed     
Recommends: r-base-html but it is not going to be installed     
Recommends: r-doc-html but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

I tried to install R-2.15 before and then run the above commands. R-2.15 could be installed successfuly, but I'd need R-3* really.

I did browse the web, but couldn't find any useful hints for my specific problem, so I appreciate any support you could give me.

Thanks!


If it is of any use: apt-cache policy r-base gives

r-base:
  Installed: (none)
  Candidate: 3.1.2-1~wheezycran3.0
  Version table:
     3.1.2-1~wheezycran3.0 0
        500 http://cran.rstudio.com/bin/linux/debian/ wheezy-cran3/ Packages
     3.1.0-1~wheezycran3.0 0
        500 http://cran.rstudio.com/bin/linux/debian/ wheezy-cran3/ Packages
     2.15.1-4 0
        500 http://mirrordirector.raspbian.org/raspbian/ wheezy/main armhf Packages

apt-cache policy r-base-core gives

r-base-core:
  Installed: (none)
  Candidate: 2.15.1-4
  Version table:
     2.15.1-4 0
        500 http://mirrordirector.raspbian.org/raspbian/ wheezy/main armhf Packages

uname -a gives

Linux raspberrypi 3.18.5+ #744 PREEMPT Fri Jan 30 18:19:07 GMT 2015 armv6l GNU/Linux
Stephan
  • 153
  • 1
  • 7
  • @Jealie The error message is now slightly different. It mentions R-2.15 and other unmet dependancies. The following packages have unmet dependencies: r-base : Depends: r-base-core (>= 3.1.2-1~wheezycran3.0) but 2.15.1-4 is to be installed r-recommended : Depends: r-base-core (>= 3.1.2-1~wheezycran3.0) but 2.15.1-4 is to be installed Depends: r-cran-boot (>= 1.2.19) but it is not going to be installed Depends: r-cran-codetools but it is not going to be installed E: Unable to correct problems, you have held broken packages. – Stephan Feb 03 '15 at 22:37
  • @Jealie: Thanks first of all. The `apt-key` command seems to run, but `apt-get update; apt-get install r-base r-base-core r-recommended r-base-html r-doc-html` still results in above error. The CRAN pages alos mentions a blocked port, so I'll try that... – Stephan Feb 03 '15 at 23:06
  • I also tried unblocking the port (as CRAN site suggests) as well as adding the key following [this blog](http://tata-box-blog.blogspot.de/2014/02/upgrade-and-update-r-215-to-r-30-in.html). Still not successfull... Do you have any other idea? – Stephan Feb 03 '15 at 23:13

5 Answers5

14

I had the same situation and decided to install that from the source code instead of install R from the repository(apt-get command).

Here is the command I run on my Raspberry Pi 2. I could install and run R(3.1.2) sucessfully. It might not be complete answer for you because I might already installed the library like gcc you did not have before. If you encounter the other issue, please let me know. I would like to solve it.

Just as a side note on this topic, because sudo make install process took a long time(maybe over a hour. I'm not sure because I feel asleep before I knew it...), I recommend you to do this when you have enough or before going to sleep like me.

wget http://cran.rstudio.com/src/base/R-3/R-3.1.2.tar.gz
mkdir R_HOME
mv R-3.1.2.tar.gz R_HOME/
cd R_HOME/
tar zxvf R-3.1.2.tar.gz
cd R-3.1.2/
sudo apt-get install gfortran libreadline6-dev libx11-dev libxt-dev
./configure
make
sudo make install
R
teramonagi
  • 140
  • 9
  • I am now installing it based on your suggestion and it really takes a long time. I suggest using `screen` to be able to log out during installation. – Eekhoorn Aug 23 '15 at 18:15
  • Update: I was able to install R 3.2.2 on my Raspberry Pi 1 Model B with teramonagis suggestions. However, I'm failing to install any packages due to lack of memory. Any suggestions are welcome. – Eekhoorn Aug 24 '15 at 16:28
  • +1 Really helpful answer. A note: `./conifg` did not work right away for me. I had to `sudo apt-get install` some libraries such as `libcurl3` and `lblzma`. More information can be found here https://stackoverflow.com/questions/40639138/configure-error-installing-r-3-3-2-on-ubuntu-checking-whether-bzip2-support-suf – niko Mar 13 '19 at 13:55
3

The cause of your problem is likely that the cran repository provides armel versions of the packages, and not armhf (which is the expected architecture for your RPI). If this is right, then you have two solutions:

  1. The first work-around could be to download the armel version of the packages and then force their installation despite the architecture mismatch. It is supposed to work according to the Debian wiki, although you may experience performance issues:

The CPU in the Raspberry Pi implements the ARMv6 ISA (with VFP2) and is thus incompatible with the Debian armhf port baseline of ARMv7+VFP3 and ARM hardware-floating-point ports for other distributions, which all have the same baseline. It is compatible with Debian armel (armv4t, soft(emulated) FP), but floating-point tasks will be slow when running the Debian armel port.

To do that, you can try to reinstall the packages by specifying the armel architecture, for example:

apt-get install r-base:armel

If it doesn't work this way, you can otherwise download the packages from http://cran.r-project.org/bin/linux/debian/wheezy-cran3/ and install them manually using a commandline like:

dpkg --install --force-architecture xxxx_armel.deb  yyyy_armel.deb zzzz_armel.deb

  1. The other solution would be to compile R from its source.
Jealie
  • 6,157
  • 2
  • 33
  • 36
  • Excellent answer. I suspected an arm cpu mismatch, but missed the fact that _some_ arm architectures are in fact supported. – Dirk Eddelbuettel Feb 04 '15 at 00:02
  • Thanks @Jealie. Unfortunately I wasn't succesfull. `apt-get install r-base:armel` did not succeed - the error is `E: Unable to locate package r-base`. I also tried `dpkg --add-architecture armel` and editing the `sources.files`, but did not succeed - my knowledge is too limited. Some website suggest to change to Debian Jessie (see [here](https://sites.google.com/site/onmyraspberrypi/instal-r/r-base-core) or [here](http://93.93.128.176/forums/viewtopic.php?t=68872&p=502350)) but again, the **armel** packages do not seem to be found... I might have to go for manual installation. – Stephan Feb 04 '15 at 20:09
  • I couldn't get the manual way working neither: `sudo dpkg --install --force-architecture r-base-core_3.1.2-1~wheezycran3.0_armel.deb` gives the following errors: `dpkg: dependency problems prevent configuration of r-base-core: r-base-core depends on xdg-utils. r-base-core depends on libblas3 | libblas.so.3 | libatlas3-base.` ... There is a hgigh chance that my limited knowledge of Unix leads to the fact that I missed something, but I cannot figure it out. – Stephan Feb 04 '15 at 20:29
  • @Stephan: the manual install almost worked I think, but you need more packages (`xdg-utils`, `libblas3`, `libblas.so.3` and `libatlas3-base` at least). I believe these packages are part of the main debian repositories. If you do: 1) `sudo apt-get install xdg-utils libblas3 libblas.so.3 libatlas3-base`, and 2) try again the manual installation (`sudo dpkg --install [...]`), then you should be good. Tell me if it still doesn't work :) – Jealie Feb 05 '15 at 00:18
  • @jealie I tried following the suggestions, but ran inot this: Package libblas.so.3 is a virtual package provided by: libblas3 1.2.20110419-5 libatlas3-base 3.8.4-9+deb7u1+rpi1 You should explicitly select one to install. – yokota Feb 15 '15 at 22:28
1

I solved my initial question by upgrading Wheezy to Jessie. I am not an expert, but Jessie seems to be the current testing version of Debian, while Wheezy is the stable release - see here.
For upgrading, I followed the instructions here, or here, or here. Note: Upgrading takes quite a while and during the process you're required to answer some questions.

A word of caution though: Jessie is still testing and some people recommend not to use it yet, for a discussion see e.g. here.
I did set it up completely from a new completely new image, and it works well.

After having upgraded to Jessie I installed R-3.1.1. using

sudo apt-get install r-base

And I'd like to thank all those who have answered my question and given alternative ways of solving the problem above.

Community
  • 1
  • 1
Stephan
  • 153
  • 1
  • 7
1

I'm able to install R-3.1.2 into raspbian using answer from teramonagi. I confirm it can install successfully on Raspberry Pi model B/B+.

However, before you can actually use R (install packages and run some R scripts), you have to increase the swap file size for Raspberry Pi due to lack of RAM (This service works very similar to page file in window, it kicks in when RAM usage is high). You can configure it by edit one of the config file by enter command below in LX terminal.

sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=100 #(change 100 to 512 or 1024, up to you, save the file)
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start #(restart swap file service with new swap file size)

Take note though, some users argued that increase swap file size can actually ruin your SD card. So apply this change at your own risk. I've been running my Pi with this configuration for my R automation for 1 month now. No issue so far.

Hope this helps.

Edit: If you are using model B/B+, i recommend to configure swap file size first then compile R.

0

That's what I've done to update my r-base on wheezy:

HOW TO UPDATE r-base 2.15 to 3.x ON DEBIAN WHEEZY

  1. add these lines at the end of "/etc/apt/sources.list"

    deb http://cran.revolutionanalytics.com/bin/linux/debian wheezy-cran3/
    deb-src http://cran.revolutionanalytics.com/bin/linux/debian wheezy-cran3/ 
    
  2. add the missing publich key of cran

    gpg --keyserver pgpkeys.mit.edu --recv-key 06F90DE5381BA480
    gpg -a --export 06F90DE5381BA480 | sudo apt-key add -
    
  3. update and upgrade

    apt-get update
    aptitude -t wheezy-cran3 install r-base r-base-dev
    
KiriSakow
  • 957
  • 1
  • 12
  • 22
user1612798
  • 702
  • 1
  • 5
  • 8