Hmm...is this maybe a bug? Check out this section of install.packages():

localcran <- length(grep("^file:", contriburl)) > 0
if (!localcran) {
if (is.null(destdir)) {
tmpd <- tempfile("Rinstdir")
if (!dir.create(tmpd))
stop("Unable to create temp directory ", tmpd)
}
else tmpd <- destdir
}
foundpkgs <- download.packages(pkgs, destdir = tmpd, available = available,
contriburl = contriburl, method = method)


So if `localcran' is TRUE (which in this case, it is), then `tmpd' never gets defined but is passed to download.packages().

When I run a traceback() after getting the error from running install.packages(), it fails in download.packages() when trying to create the download directory.

For example, try defining `tmpd' in your workspace and the run install.packages. This works for me:

tmpd <- "~/tmp"
install.packages("bzTools", contriburl = "file:c:/Rlibs/build")

Of course, you still need the PACKAGES file in the contriburl directory.

-roger

John Fox wrote:
Dear Duncan,


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Duncan Murdoch
Sent: Thursday, July 15, 2004 9:56 AM
To: John Fox
Cc: [EMAIL PROTECTED]
Subject: Re: [R] contriburl argument to install.packages


On Thu, 15 Jul 2004 10:09:46 -0400, "John Fox" <[EMAIL PROTECTED]> wrote :


Dear list members,

I can't figure out how to specify the contriburl argument to
install.packages() properly when the packages to be

installed are in a


directory on my local machine. I have in mind a command

something like

        install.packages(missing.packages, contriburl=directory,
lib=.libPaths()[1])

Where missing.packages is a character vector of package

names (without

versions) and directory is the location where they reside (less PACKAGES, I guess). I'm using R version 1.9.1 on a Windows

XP machine.


Several variations on directory <- "file:c:/temp" don't seem to work.

Any help would be appreciated.

You need a file called PACKAGES in the same directory as the packages, which contains the package information; for example


http://www.cran.mirrors.pair.com/bin/windows/contrib/1.9/PACKAGES

I imagine the CRAN maintainers have scripts to produce this from the package files, but I'm not sure where they are.

To refer to a local version of this file, use the syntax you had, e.g.

CRAN.packages(contriburl="file:c:/temp")

will look for c:/temp/PACKAGES and display the information in it.



I had already tried this, and it doesn't appear to work for me. For example,

> CRAN.packages(contriburl="file:c:/temp")
Error in file(file, "r") : unable to open connection
In addition: Warning message: cannot open file `c:/temp/PACKAGES'


I *do* have a directory c:\temp\PACKAGES

Regards,
 John




If you don't want to maintain this file, then you can construct the information in it using the "available=" argument to the package functions.

Duncan


______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to