[R] issue with available.packages() and download.file()
Duncan Murdoch
murdoch.duncan at gmail.com
Sun Aug 28 01:35:32 CEST 2011
On 11-08-25 9:52 PM, Seth Schommer wrote:
> Dear R-Users,
>
> I think I have encountered a potential bug (or at least unwanted behavior),
> but I'm not sure so I wanted to post here first. Lately I've been
I'd say it's a bug with your network setup: when a URL is not found, an
error should be generated. "Helpful" servers that give you ads or a
search page instead are not following the rules.
Unfortunately, this is a pretty common misconfiguration, so perhaps R
should try to work around it. If you want to put together a suggested
patch, I'll take a look. The source is in
https://svn.r-project.org/R/trunk/src/library/utils/R/packages.R.
Duncan Murdoch
> encountering an error when running a package I put together. I have my
> package set up to check for updates when it loads but this error occurs and
> stops the package from loading:
>
> Error : .onLoad failed in loadNamespace() for 'rNMR', details:
> call: read.dcf(file = tmpf)
> error: Line starting '<SCRIPT language=Jav ...' is malformed!
> Error: package/namespace load failed for 'rNMR'
>
>
> I tracked to the following line of code from my package:
>
> available.packages(contrib.url(repos = "http://rnmr.nmrfam.wisc.edu/R/",
> type = "win.binary"))
>
>
> I dug a little deeper and found the following line of code from
> available.packages() to be causing the problem:
>
> z<- tryCatch(download.file(url = paste(repos, "PACKAGES.gz", sep = "/"),
> destfile = tmpf, method = method, cacheOK = FALSE, quiet = TRUE, mode =
> "wb"), error = identity)
>
>
> The problem occurs because "PACKAGES.gz" does not exist in the repository,
> so my router redirects the invalid URL to a search page and some JavaScript
> is downloaded instead. The error is generated when R tries to read the
> downloaded file:
>
> res0<- read.dcf(file = tmpf)
> Error in read.dcf(file = tmpf) :
> Line starting '<SCRIPT language=Jav ...' is malformed!
>
>
> The repository does have a "PACKAGES" file, but it never gets read because
> download.file() does not generate an error. I've fixed the issue by
> uploading a "PACKAGES.gz" file to the repository, but I wanted to point out
> the issue in case anybody else has encountered this problem. This problem
> may be unique to my particular system configuration, in which case a fix may
> not be justified. Otherwise, it may be a good idea to check for
> a "PACKAGES" file in the repository if an error is encountered when trying
> to read the downloaded "PACKAGES.gz" file.
>
> Thanks,
> Seth
>
> R Version:
> platform = i386-pc-mingw32
> arch = i386
> os = mingw32
> system = i386, mingw32
> status = Patched
> major = 2
> minor = 13.1
> year = 2011
> month = 08
> day = 19
> svn rev = 56771
> language = R
> version.string = R version 2.13.1 Patched (2011-08-19 r56771)
>
> Windows 7 (build 7601) Service Pack 1
>
> Locale:
> LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
> States.1252;LC_MONETARY=English_United
> States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
>
> Search Path:
> .GlobalEnv, package:tcltk, package:stats, package:graphics,
> package:grDevices, package:utils,
> package:datasets, package:methods, Autoloads, package:base
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list