Hello,
when trying to write an R-file, which automatically installs and updates a
given list of packages, I had two problems with install.packages()
1) install.packages("<package>") will install <package>, no matter if
<package> has already been installed.
2) the readline() at the end of install.packages, which asks the user, if
the downloaded files should be deleted, makes it difficult to
delete packages automatically after installation (I must admit, I'm not
quite familiar with R CMD BATCH)
Question/Request:
Is the behaviour in 1) intended?
2) I'd like to have another bool argument, which determines, if the
downloaded files should be deleted.
Suggestion:
To change 1) I've made a small change to
R-2.0.0/src/library/utils/unix/install.packages.R
adding one line and moving another one. Here's the diff output
--- install.packages.R 2004-10-02 19:07:34.000000000 +0200
+++ install.packages.modified.R 2004-10-22 18:22:01.275986160 +0200
@@ -25,9 +25,9 @@
}
if(is.null(available))
available <- CRAN.packages(contriburl = contriburl, method =
method)
+ have <- .packages(all.available = TRUE)
if(dependencies) { # check for dependencies, recursively
p0 <- p1 <- unique(pkgs) # this is ok, as 1 lib only
- have <- .packages(all.available = TRUE)
repeat {
if(any(miss <- ! p1 %in% row.names(available))) {
cat("dependencies ", paste(sQuote(p1[miss]), sep=", "),
@@ -54,6 +54,8 @@
}
}
+ pkgs <- pkgs[ ! pkgs %in% have ]
+
foundpkgs <- download.packages(pkgs, destdir = tmpd, available = available,
contriburl = contriburl, method = method)
Best Regards,
Thomas Stabla
--- install.packages.R 2004-10-02 19:07:34.000000000 +0200
+++ install.packages.modified.R 2004-10-22 18:22:01.275986160 +0200
@@ -25,9 +25,9 @@
}
if(is.null(available))
available <- CRAN.packages(contriburl = contriburl, method = method)
+ have <- .packages(all.available = TRUE)
if(dependencies) { # check for dependencies, recursively
p0 <- p1 <- unique(pkgs) # this is ok, as 1 lib only
- have <- .packages(all.available = TRUE)
repeat {
if(any(miss <- ! p1 %in% row.names(available))) {
cat("dependencies ", paste(sQuote(p1[miss]), sep=", "),
@@ -54,6 +54,8 @@
}
}
+ pkgs <- pkgs[ ! pkgs %in% have ]
+
foundpkgs <- download.packages(pkgs, destdir = tmpd, available = available,
contriburl = contriburl, method = method)
______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel