[Rd] install.packages() fails with drat repository on networkdrive

Thierry Onkelinx thierry.onkelinx at inbo.be
Thu Mar 3 09:59:19 CET 2016


Hi Dirk,

I've (re-)added a binary package to our drat repository. The PACKAGES file
was created so the problem is solved. I assume that the PACKAGES got
removed by mistake.

The problem remains however in case when we have no connection to the
network share (e.g. when working outside the office without VPN connection).

updating available.packages() by replacing lines 48-49
in src/library/utils/R/packages.R

            res0 <- read.dcf(file = tmpf)
            if(length(res0)) rownames(res0) <- res0[, "Package"]

with

            res0 <- try(read.dcf(file = tmpf))
            if(length(res0) & !inherits(res0, "try-error")) rownames(res0)
<- res0[, "Package"]

works around this problem.

Best regards,

Thierry

ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and
Forest
team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
Kliniekstraat 25
1070 Anderlecht
Belgium

To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey

2016-03-02 12:18 GMT+01:00 Dirk Eddelbuettel <edd at debian.org>:

>
> Hi Thierry,
>
> On 2 March 2016 at 10:16, Thierry Onkelinx wrote:
> | Dear all,
> |
> | install.packages("lme4") fails with error
> | Error in read.dcf(file = tmpf) : cannot open the connection
> | In addition: Warning message:
> | In read.dcf(file = tmpf) :
> |   cannot open compressed file
> | '//servername/repository_path/bin/windows/contrib/3.2/PACKAGES',
> | probable reason 'No such file or directory'
> |
> | the repositories set in .Rprofile are
> | "http://lib.ugent.be/CRAN/" "file://servername/repository_path"
> |
> | There is a file PACKAGES.gz at
> | //servername/repository_path/bin/windows/contrib/3.2/ but no file
> | PACKAGES
> |
> | I'm not sure if this is
> | 1) a bug in the drat package: not creating PACKAGES
> | 2) a bug in read.dcf(): not looking if PACKAGES.gz is present
> | 3) a bug in available.packages(). Debugging install.packages()
> | indicates that the error occurs at the line below with type <-
> | "win.binary", repos <- getOption("repos") and missing(method) == TRUE
> |
> | av2 <- available.packages(contriburl = contrib.url(repos, type2),
> | method = method)
> |
> | It would be nice if available.packages() handled an error returned by
> | read.dcf() more gracefully. An error with one repository now
> | completely blocks install.packages()
>
> I also found the file semantics over the network drive to be tricky to get
> right.  In the drat documentation I refer to 'file://...' but I found
> accessing via http to be easier.
>
> But it still works.  Quick example from work with one local repo (which I
> just copied to /tmp here):
>
> R> AP <- available.packages()
> R> dim(AP)
> [1] 8048   17
> R> options("repos")
> $repos
>                       CRAN                      Local
> "https://cran.rstudio.com"             "file://tmp/R"
>
> R>
>
> As you can see this uses the file:// notation just fine.  We can also drill
> down:
>
>
> R> r <- c("CRAN"="https://cran.rstudio.com", "Local"="file://tmp/R")
> R> options("repos"=r[1])
> R> options("repos")
> $repos
>                       CRAN
> "https://cran.rstudio.com"
>
> R> dim(AP <- available.packages())
> [1] 8009   17
> R> options("repos"=r[2])
> R> dim(AP <- available.packages())
> [1] 46 17
> R>
>
> As I recall, there may have been extra complications on Windows with
> network
> drives.
>
> But if there is something (maybe documentation ?) that drat could/should do
> better please feel free to open an issue ticket.
>
> Hth,  Dirk
>
> |
> | sessionInfo("drat")
> | R version 3.2.3 (2015-12-10)
> | Platform: i386-w64-mingw32/i386 (32-bit)
> | Running under: Windows 7 x64 (build 7601) Service Pack 1
> |
> | locale:
> | [1] LC_COLLATE=Dutch_Belgium.1252  LC_CTYPE=Dutch_Belgium.1252
> | LC_MONETARY=Dutch_Belgium.1252 LC_NUMERIC=C
> | LC_TIME=Dutch_Belgium.1252
> |
> | attached base packages:
> | character(0)
> |
> | other attached packages:
> | [1] drat_0.1.0.1
> |
> | loaded via a namespace (and not attached):
> | [1] graphics_3.2.3  tools_3.2.3     utils_3.2.3     grDevices_3.2.3
> | stats_3.2.3     datasets_3.2.3  methods_3.2.3   base_3.2.3
> | fortunes_1.5-3
> |
> |
> | Best regards,
> |
> |
> | ir. Thierry Onkelinx
> | Instituut voor natuur- en bosonderzoek / Research Institute for Nature
> | and Forest
> | team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
> | Kliniekstraat 25
> | 1070 Anderlecht
> | Belgium
> |
> | To call in the statistician after the experiment is done may be no
> | more than asking him to perform a post-mortem examination: he may be
> | able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher
> | The plural of anecdote is not data. ~ Roger Brinner
> | The combination of some data and an aching desire for an answer does
> | not ensure that a reasonable answer can be extracted from a given body
> | of data. ~ John Tukey
> |
> | ______________________________________________
> | R-devel at r-project.org mailing list
> | https://stat.ethz.ch/mailman/listinfo/r-devel
>
> --
> http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list