[R-sig-Debian] "Debain" way of installing packages
Gorjanc Gregor
Gregor.Gorjanc at bfro.uni-lj.si
Sun Apr 24 16:04:47 CEST 2005
Hello!
I use Debian GNU/Linux at work and I really like apt-get tool. As far as
I understand the whole picture, there are now some Debian packages of R
packages. Build of Debian packages is done automagically by Perl script.
By the way, what is the status of Debianizing R packages? Is it stopped,
just holded, ... I don't know so I am asking
There is also Bioconductor and I am aware that the list of packages is
growing quite fast and afterall I understand that there is probably to
few people to work on Debianization.
The main point of this mail is however installation. I usually first
try to use apt-get install and if there is no Debian package I use
R tools. However some packages that I have already installed with R tools
might eventually appear as Debian packages, ... or I might use
update.packages() for Debian packages. By the way is field
'Package-Manager: Debian' already implemented. I would check, but I
unfortunately don't have Debain at home.
I was thinking on some functions or eventually an R package r-debian,
which would ease this installation dilemma. Actually I wrote something
already in december but put it off. It is given bellow. It is probably
far from optimal but it was just a proof of concept. Many more functions
would be needed to fuzz everything up. Any comments?
debian.install.packages <- function(package, ...) {
# Description:
# Installs package on Debian GNU/Linux system. For given R package it
# tries to get Debian package and install/upgrade it with apt-get if it
# exists. Otherwise install.packages() is used.
# Gregor GORJANC 2004-12-30
# Arguments:
# package: R package name as character, only one
# ...: other parameters for install.packages() or update.packages()
# Examples:
# debian.install.packages("Design")
# Code:
# apt-get update i.e. refresh list of Debian packages
system(apt-get update)
# Transform R package name to Debian package name policy i.e change R
# package name to lowercase and test if this Debian package exists
# (test1). This could be done without grep, but then it is not possible
# to test on exit status, since apt-cache search always returns 0.
packagelow <- tolower(package)
tmp1 <- c("system(\"apt-cache search ^r- | grep")
tmp2 <- c("| awk '{print $1}'\", intern = TRUE\)")
tmp3 <- as.expression(paste(tmp1, packagelow, tmp2, "\n"))
deb <- eval(parse(file = "", text = tmp3))
cat("\nR package:", package, "\n")
cat("Corresponding Debian package name:", deb, "\n")
# Package install/update or upgrade in apt meaning
if (length(deb) != 0) { # Debian package does exist
cat("Debian package", deb, "exists: yes\n")
cat("Proceeding with apt-get.\n")
# apt-get install, which can also be used for package upgrade
tmp1 <- c("system(\"apt-get install")
tmp2 <- as.expression(paste(tmp1, deb, "\")", "\n"))
eval(parse(file = "", text = tmp2))
}
else { # Debian package doesn't exist or something went wrong in test1
cat("Debian package", deb, "exists: no\n")
# cat("Proceeding with install/update.packages().\n")
# install.update.packages(package, ...)
cat("Proceeding with install.packages().\n")
install.packages(package, ...)
}
}
One more thing. Why is r-noncran-lindsey and not r-other-lindsey?
--
Lep pozdrav / With regards,
Gregor Gorjanc
------------------------------------------------------------------------
University of Ljubljana
Biotechnical Faculty URI: http://www.bfro.uni-lj.si/MR/ggorjan
Zootechnical Department email: gregor.gorjanc <at> bfro.uni-lj.si
Groblje 3 tel: +386 (0)1 72 17 861
SI-1230 Domzale fax: +386 (0)1 72 17 888
Slovenia
More information about the R-SIG-Debian
mailing list