[BioC] Offline Installation of Packages and Dependencies

Nathan Bihlmeyer nbihlme1 at jhmi.edu
Mon Dec 3 20:10:28 CET 2012


Hello all,

I am currently working on a HPC cluster that for security reasons does
not have access to the internet on the compute nodes. Therefore, I
wish to quickly download package source archives using the head node,
then compile them on a compute node.

Other details: The head node does not have same shared libraries as
the compute nodes, so I couldn't compile on that node even if I wanted
to. All the nodes use the same network-based file system for most
files (/home etc...). I am using my own compiled version of R 2.15.2.

For non-Bioconductor packages, I have been using the following scripts:

### On the head node
#!/usr/bin/env Rscript
args = commandArgs(T)
rh = R.home()
tmp = paste(rh,"/tmp",sep="")
if(!file.exists(tmp)) {
  dir.create(tmp)
}
pkg = utils:::getDependencies(args,,available.packages())
download.packages(pkg, tmp)

### On the compute node
#!/usr/bin/env Rscript
rh = R.home()
tmp = paste(rh,"/tmp",sep="")
if(!file.exists(tmp)) {
  quit()
}
pkg = list.files(tmp,full.names=T)
install.packages(pkg,repo=NULL)
file.remove(pkg)

They work well. What I need now is a way to do the same thing with
Bioconductor packages. I have looked into pkgDepTools; however, the
package requires a complete dependency graph to be built every time
the script is run. This takes too long and uses too many resources and
therefore is not an option on the head node. Also, I can not find a
way to produce download urls using that package.

Thanks for your help,
Nathan Bihlmeyer
Human Genetics
School of Medicine
Johns Hopkins University



More information about the Bioconductor mailing list