[R] Help Updating and Installing R Packages

Vincent Goulet vincent.goulet at act.ulaval.ca
Wed Jul 16 06:20:44 CEST 2008


Tariq,

See inline for my reply.

Le mar. 15 juil. à 21:48, Tariq Perwez a écrit :

> Hi Everyone,
>
> I have a few fairly basic questions about upgrading and installing R
> packages. First off, I am using Ubuntu Hardy Heron and have R 2.7.1
> installed and working perfectly. I usually access R via Emacs ESS  
> interface
> which I am still trying to get the hang of. My questions and issues  
> are as
> follows:
>
> Question 1:  I started R and wanted to upgrade the installed R  
> packages. So,
> I issue the command >upgrade.packages()
> and after selecting the CRAN mirror sites, I get the following  
> message:
>
> lattice :
> Version 0.17-8 installed in /usr/lib/R/library
> Version 0.17-10 available at http://www.ibiblio.org/pub/languages/R/CRAN
> Update (y/N/c)?
>
> (To this, I respond with  "y", but then I get the following:)
>
>
> Warning in install.packages(update[instlib == l, "Package"], l,  
> contriburl =
> contriburl,  :
>  'lib = "/usr/lib/R/library"' is not writable
>
>
> (Off course, it is NOT writable because it did not ask for the
> administrative password.
>
> Would you like to create a personal library
> '~/R/i486-pc-linux-gnu-library/2.7'
> to install packages into?  (y/n)
>
>
> I do not want to create new directories; I just want to upgrade  
> where the
> older version already exists. So I respond with "n" and get this:)
>
>
> Error in install.packages(update[instlib == l, "Package"], l,  
> contriburl =
> contriburl,  :
>  unable to install packages
>
>
> My question is how do I go about upgrading AND installing packages  
> from
> within R by using administrative account? I must say that at least  
> for now,
> I was able to get around this issue by staring R as:
>
> sudo R
>
> and then using upgrade.packages(). But I would like a better  
> solution when I
> am already in an R session.

I don't think there's a way. But here, on an Ubuntu/Debian derived  
system and for the base and recommended packages at least, I would  
really recommended you administer the R packages through the system  
packaging system. The aforementioned packages are kept up-to-date on  
CRAN, so a simple

	sudo apt-get update
	sudo apt-get dist-upgrade

will get you the latest version without a fuss. Please check the  
Ubuntu README on CRAN:

	http://cran.r-project.org/bin/linux/ubuntu/

> Question 2: When I started R via
>
> sudo R
>
> and issued >upgrade.packages()
>
> I had problem upgrading lattice package. I got the following error  
> message:
>
> * Installing *source* package 'lattice' ...
> ** libs
> gcc -std=gnu99 -I/usr/share/R/include      -fpic  -g -O2 -c init.c - 
> o init.o
> In file included from init.c:2:
> /usr/share/R/include/R.h:28:20: error: stdlib.h: No such file or  
> directory
> /usr/share/R/include/R.h:29:19: error: stdio.h: No such file or  
> directory
> In file included from
> /usr/lib/gcc/i486-linux-gnu/4.2.3/include/syslimits.h:7,
>                 from /usr/lib/gcc/i486-linux-gnu/4.2.3/include/ 
> limits.h:11,
>                 from /usr/share/R/include/R.h:30,
>                 from init.c:2:
> /usr/lib/gcc/i486-linux-gnu/4.2.3/include/limits.h:122:61: error:  
> limits.h:
> No such file or directory
> In file included from init.c:2:
> /usr/share/R/include/R.h:32:18: error: math.h: No such file or  
> directory
> /usr/share/R/include/R.h:33:19: error: errno.h: No such file or  
> directory
> In file included from /usr/share/R/include/R.h:50,
>                 from init.c:2:
> /usr/share/R/include/R_ext/RS.h:24:39: error: string.h: No such file  
> or
> directory
> In file included from init.c:3:
> /usr/share/R/include/Rinternals.h:770: error: expected declaration
> specifiers or '...' before 'FILE'
> /usr/share/R/include/Rinternals.h:773: error: expected declaration
> specifiers or '...' before 'FILE'
> make: *** [init.o] Error 1
> ERROR: compilation failed for package 'lattice'
> ** Removing '/usr/lib/R/library/lattice'
> ** Restoring previous '/usr/lib/R/library/lattice'
>
> The downloaded packages are in
>    /tmp/Rtmpj37zYN/downloaded_packages
> Updating HTML index of packages in '.Library'
> Warning message:
> In install.packages(update[instlib == l, "Package"], l, contriburl =
> contriburl,  :
>  installation of package 'lattice' had non-zero exit status
>
>
>
> Even >upgrade.packages(dependencies = TRUE) resulted in the same  
> error. Does
> anyone know if this is just a problem on my system or perhaps  
> someone else
> has run into the same issue. What does this all mean? What I do not
> understand is why are there .h missing files? How the heck did  
> lattice get
> installed in the first place if these header files were missing?

Install the r-base-dev package. Again, this is discussed in the README  
(and in this forum a couple of days ago):

	Users who need to compile packages should also install the r-base-dev  
package:
		sudo apt-get install r-base-dev

> Question 3: This is more of a general question that has been on my  
> mind for
> sometime. If I just want to install some packages/data base etc that  
> I would
> like to be "local", perhaps in my home directory, which library path  
> would
> be recommended? Sometimes I feel that I would like to download some  
> database
> or other packaged code that I want to play around with but would  
> later like
> to get rid of, a library in the home directory that is still in R's  
> path
> might be better. I would appreciate suggestions. What are others  
> doing in
> this situation? Currently I have the following outcome of .libPaths()
> command:
>
>> .libPaths()
> [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"
> [3] "/usr/lib/R/library"
>
> Which library path should I choose?

Whatever you wish (my personal pick below). This is also discussed in  
the README:

	Individual users can install R packages into their home directory.  
The simplest procedure is to create a file 	~/.Renviron containing,  
e.g.,
		R_LIBS="~/lib/R/library:${R_LIBS}"
	The install.packages() and update.packages() functions will then work  
in directory ~/lib/R/library.

HTH

---
   Vincent Goulet, Associate Professor
   École d'actuariat
   Université Laval, Québec
   Vincent.Goulet at act.ulaval.ca   http://vgoulet.act.ulaval.ca



More information about the R-help mailing list