Berry Boessenkool <berryboessenk...@hotmail.com> writes: > Hi, > > is someone aware of a way to easily install a package hosted on github > without using devtools::install_github? > Does anyone else ever need to avoid devtools? Hi,
Check out drat [https://github.com/eddelbuettel/drat] and for a description check out [http://eddelbuettel.github.io/drat/DratForPackageAuthors.html]. Be aware that I have never used it - but I should... Cheers, Rainer > Would something doing that be worth a package on CRAN? > Optional if no,yes,yes: Is my basic idea below any good at all? > > Thanks ahead, > Berry, Potsdam, Germany > > Details: > > devtools has so many dependencies that it takes quite some time to install on > old computers or with slow internet. Not suitable for a quick demo in the R > course I'm teaching, which I found out the hard way (thinking R had hung up, > I terminated it, crashing Rstudio in the proces...). > Not finding anything and happy to postpone actual work, I wrote some (very!) > basic code. I doubt it works across platforms and situations. I guess I'm > doing useless stuff, but I had fun and learned a few new things... > > > instgithub <- function( > pk, # "user/package" > cleanup=TRUE, # remove downloaded zipfile and folder with source code > ...) # Further arguments passed to install.packages, untested so far > { > pkn <- strsplit(pk, "/")[[1]][2] # package name part > download.file(url=paste0("https://github.com/",pk,"/archive/master.zip"), > destfile=paste0(pkn,".zip")) > unzip(paste0(pkn,".zip")) > file.rename(paste0(pkn,"-master"), pkn) > # Dependencies - really not elegant at all! > deps <- read.dcf(paste0(pkn, "/DESCRIPTION"), fields="Imports") > deps <- strsplit(deps, ", ")[[1]] > deps <- sapply(strsplit(deps, " ", fixed=T), "[", 1) # remove version > restrictions > deps <- deps[!deps %in% rownames(installed.packages())] # install only new > packages > # install dependencies > dummy <- lapply(na.omit(deps), install.packages, ...) > # actually install the package itself: > install.packages(pkn, repos=NULL, type="source", ...) > # clean up: > if(cleanup) > { > unlink(pkn, recursive=TRUE) > unlink(paste0(pkn,".zip")) > } > } > > # example test cases, work fine on windows 7 with current R3.2.2 + write > permission at getwd: > if(FALSE){ > instgithub(pk="brry/extremeStat") > library(extremeStat) > instgithub("talgalili/installr") > instgithub("hadley/readxl") > } > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: rai...@krugs.de Skype: RMkrug PGP: 0x0F52F982
signature.asc
Description: PGP signature
______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel