Re: issue with update.packages(), library 'utils'
Karl Schilling <[email protected]> Tue, 9 Jun 2026 11:27:10 +0200
| Newsgroups | gmane.comp.lang.r.general |
|---|---|
| Message-ID | <[email protected]> |
Interestingly, this issue does not exist for BioConductor packages. KS On 09.06.2026 03:14, Jinsong Zhao wrote: > On 6/9/2026 12:16 AM, Duncan Murdoch wrote: >> There's one other possibility I can see: maybe >> >> .builtDate(repo["Built"]) > .builtDate(inst["Built"])) >> >> in the needs.install() function in old.packages(), even just after a >> reinstall. This could be due to time zone differences or some other >> bug. Someone who is experiencing this would have to debug something >> like that. >> > > Yes, the comparison between the build date of a repository and > installed packages makes sense. However, my concern is whether it is > necessary for CRAN to build packages so frequently. For example, > consider the boot package, which was shipped with R 4.6 and built on > April 21. I reinstalled R on June 4 and updated all packages > afterward. The updated boot package was built on June 2. Today, I > checked again, and the boot package in the CRAN repository was built > on June 6. This means that if I run update.packages(), it will > reinstall the boot package at the same version, 1.3-32. > > > a <- utils:::.available.both(repos) > Warning message: > In utils:::.available.both(repos) : > Some listed binary packages have no source > > b <- installed.packages() > > subset(as.data.frame(a), Package == "boot")[,c(2,18)] > Version Built > boot 1.3-32 R 4.6.0; ; 2026-06-06 01:01:20 UTC; windows > > subset(as.data.frame(b), Package == "boot")[,c(3,16)] > Version Built > boot 1.3-32 R 4.6.0; ; 2026-06-02 01:42:34 UTC; windows > boot.1 1.3-32 R 4.6.0; ; 2026-04-24 08:16:13 UTC; windows > > > Best, > Jinsong > > >> Duncan Murdoch >> >> On 2026-06-08 9:47 a.m., Jinsong Zhao wrote: >>> On 6/8/2026 9:09 PM, Duncan Murdoch wrote: >>>> On 2026-06-08 8:54 a.m., Karl Schilling wrote: >>>>> Dear Duncan Murdoch: >>>>> >>>>> I did just what you recommended. I have only one library. >>>>> > lp <- .libPaths() >>>>> > lp >>>>> [1] "C:/Program Files/R/R-4.6.0patched/library" >>>>> > length(lp) >>>>> [1] 1 >>>> >>>> That looks suspicious to me. I haven't used Windows in a long time, >>>> but when I did, that directory would have been write protected. When >>>> I would try to install a package there it would fail, and R would add >>>> a user library and install there instead. The .libPaths() vector would >>>> be changed for the rest of that session, but could revert to just one >>>> entry if I started a new session. >>>> >>>>> >>>>> But maybe the post by Jinsong ZZhao is relevent here: >>>> >>>> Yes, that could explain everything. If the date when a binary package >>>> is built changes, that could mean that different C libraries were >>>> linked into it, and you should use the newer one. Or it might just >>>> mean that CRAN rebuilt it unnecessarily, but there's no way for R to >>>> know that. >>>> >>> I think that CRAN rebuilt the package unnecessarily is the root of the >>> problem. As I know, for a major version, such as 4.6.x, the tool chains >>> will keep unchanging for a long time, so it is not necessary to rebuilt >>> the package with same version nearly every day. >>> >>> Best, >>> >>> Jinsong >>> >>>> Duncan Murdoch >>>> >>>> >>>> >>>>> >>>>>> The root of the problem is that old.packages have updated the >>>>>> internal >>>>>> function needs.install, which compares the built date of repo and >>>>>> the >>>>>> installed packages. And it seems that repo packages have newer built >>>>>> date, though I do not know why. >>>>>> >>>>>> So reinstallation R and all packages could not solve the problem. >>>>>> >>>>>> Best, >>>>>> Jinsong >>>>>> >>>>>> PS: the internal function need.install: >>>>>> >>>>>> .ts <- function(x) if (isTRUE(!is.na(x))) >>>>>> as.POSIXlt(x, optional = TRUE, tz = "UTC") >>>>>> else NA >>>>>> needs.install <- function(repo, inst) >>>>>> ((package_version(repo["Version"]) > >>>>>> package_version(inst["Version"])) || >>>>>> (package_version(repo["Version"]) == >>>>>> package_version(inst["Version"]) && >>>>>> (isTRUE(.builtDate(repo["Built"]) > >>>>>> .builtDate(inst["Built"])) || >>>>>> isTRUE(.ts(repo["Published"]) > >>>>>> .ts(inst["Published"]))))) >>>>> >>>>> >>>>> I reinstalled r 4.6patched and all packages on May 28. Later that >>>>> day, >>>>> then, "update.packages" did result in only three packages >>>>> highlighted >>>>> for updating. A couple of days later, ALL my packages were again >>>>> in the >>>>> list to be updated. And just as documented in the post by >>>>> [email protected], my installed packages had the same version >>>>> numbers as those in the repository. >>>>> Looking at the repository >>>>> https://cloud.r-project.org/bin/windows/contrib/4.6, I realized >>>>> that the >>>>> "Last modified" date was more recent (mostly June 7) - though the >>>>> version numbers of my installed packages were identical to those >>>>> in the >>>>> repository. >>>>> >>>>> So does "Last modified" reflect / affect the .builtDate in the above >>>>> function? And do different dates for "Last modified" imply changes >>>>> even >>>>> if the version numbers are unchanged? >>>>> >>>>> Thank you so much for your help, >>>>> >>>>> Karl Schilling >>>>> >>>>> >>>>> On 08.06.2026 14:01, Duncan Murdoch wrote: >>>>>> I think what needs to happen here is that someone who is >>>>>> experiencing >>>>>> this needs to debug it. It sounds as though old.packages() is >>>>>> identifying packages that you think don't need replacing. You >>>>>> need to >>>>>> figure out why this is happening. >>>>>> >>>>>> A guess: >>>>>> >>>>>> - Your .libPaths() vector (which is used as the default for >>>>>> lib.loc) >>>>>> contains two or more library paths. You have old packages in one of >>>>>> those paths, and when you install new ones, they go into the other >>>>>> path. >>>>>> >>>>>> You can diagnose this as follows: >>>>>> >>>>>> 1. Print .libPaths(). How many entries does it have? >>>>>> 2. If it has two (or more) entries, run the following: >>>>>> >>>>>> lp <- .libPaths() >>>>>> both <- intersect(list.files(lp[1]), list.files(lp[2])) >>>>>> print(both) >>>>>> >>>>>> (If you have more than two entries, do this for all pairs.) >>>>>> >>>>>> This will list all the packages that you have installed in >>>>>> both >>>>>> places. On my system, the first entry is my user library, the >>>>>> second >>>>>> is the system library. You generally need admin permissions to >>>>>> modify >>>>>> the system library, so if you sometimes run with admin >>>>>> permissions and >>>>>> sometimes don't, you can end up with different versions in those two >>>>>> places. >>>>>> >>>>>> 3. To find out if you have different versions, run >>>>>> packageVersion(pkgname, lp[1]) and compare to >>>>>> packageVersion(pkgname, >>>>>> lp[2]). For example, I see that I have "bslib" installed in both >>>>>> places, and I see >>>>>> >>>>>> > packageVersion("bslib", lp[1]) >>>>>> [1] ‘0.11.0’ >>>>>> > packageVersion("bslib", lp[2]) >>>>>> [1] ‘0.10.0’ >>>>>> >>>>>> So it looks as though my system library has an obsolete version >>>>>> installed. I should delete it. >>>>>> >>>>>> Duncan Murdoch >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On 2026-06-08 7:40 a.m., Paulo Barata wrote: >>>>>>> To the R-Help list, >>>>>>> >>>>>>> I have also the same problem here. Most often when I attempt to >>>>>>> update my packages, it seems that most of them, maybe all of them, >>>>>>> are flagged as needing update, even when they were updated just the >>>>>>> previous day. >>>>>>> >>>>>>> I do not use RStudio, I only use R directly. Currently, I am >>>>>>> using R >>>>>>> version 4.6.0 Patched (2026-05-29 r90087 ucrt), on Windows 10 >>>>>>> Professional. >>>>>>> >>>>>>> Paulo Barata >>>>>>> >>>>>>> Rio de Janeiro - Brazil >>>>>>> >>>>>>> ------------------------------------------------- >>>>>>> >>>>>>>> >>>>>>>> Message: 1 >>>>>>>> Date: Sun, 7 Jun 2026 16:30:34 +0200 >>>>>>>> From: Karl Schilling <[email protected]> >>>>>>>> To: [email protected] >>>>>>>> Subject: Re: [R] issue with update.packages(), library 'utils' >>>>>>>> Message-ID: <[email protected]> >>>>>>>> Content-Type: text/plain; charset="utf-8"; Format="flowed" >>>>>>>> >>>>>>>> I have exactly the same problem as reported by Guido Hooiveld. >>>>>>>> >>>>>>>> I had previously attributed my problem with an inappropriate >>>>>>>> way of >>>>>>>> updating my packages when I updated from R 4.5 to 4.6. I then >>>>>>>> completely >>>>>>>> reinstalled R4.6 and all packages, which "solved" the problem - at >>>>>>>> least >>>>>>>> when I run "update.packages2 the same day I reinstalled everything >>>>>>>> (see >>>>>>>> my postings and related answers from May27-29. >>>>>>>> Alas, the next day the problem was back again, and ALL my packages >>>>>>>> updated the day before were now identified as outdated. >>>>>>>> >>>>>>>> I have no idea about the background of this problem. But a cue >>>>>>>> may be >>>>>>>> possibly come from the observation that when I use RStudio to >>>>>>>> check for >>>>>>>> packages that need to be updated (RStudie >Tools > Check for >>>>>>>> Package >>>>>>>> Updates ...), this does not happen. >>>>>>>> >>>>>>>> Karl Schilling >>>>>>>> >>>>>>>> >>>>>>>> On 04.06.2026 13:49, Hooiveld, Guido via R-help wrote: >>>>>>>>> Hi, I got confused by the recent behavior of update.packages() >>>>>>>>> from >>>>>>>>> the library utils. Since a while it reports that updates of ALL >>>>>>>>> installed packages are available at the CRAN repository but turns >>>>>>>>> out >>>>>>>>> that this is not the case for MOST packages. In other words, >>>>>>>>> most of >>>>>>>>> the installed packages on my computer are of the same version >>>>>>>>> as on >>>>>>>>> the repository, yet it still is reported that an update for these >>>>>>>>> packages is available. Of course I can re-install these (current) >>>>>>>>> packages, but that is IMHO a waste of time/bandwidth. I had a >>>>>>>>> look at >>>>>>>>> it, and to me it seems this also somehow relates to the function >>>>>>>>> old.packages(). That is, old.packages() identifies also >>>>>>>>> packages as >>>>>>>>> outdated, whereas they are clearly not... ?? See code below. Any >>>>>>>>> suggestion on what may be causing this, and how to avoid it? >>>>>>>>> Thanks, >>>>>>>>> Guido >>>>>>>>>> ## update.packages() identifies that updates for e.g. ## >>>>>>>>>> 'ActivePathways' and 'alphavantager' are available for my >>>>>>>>>> installation. ## Yet, the installed version is the same as on >>>>>>>>>> the >>>>>>>>>> repository. ## (Note that after these 2 notifications I >>>>>>>>>> cancelled >>>>>>>>>> update.packages() >>>>>>>>>> update.packages(repos=https://cloud.r-project.org) >>>>>>>>> ActivePathways : Version 2.0.6 installed in C:/Program >>>>>>>>> Files/R/R-4.6.0/library Version 2.0.6 available at >>>>>>>>> https://cloud.r-project.org/bin/windows/contrib/4.6 >>>>>>>>> alphavantager : >>>>>>>>> Version 0.1.3 installed in C:/Program Files/R/R-4.6.0/library >>>>>>>>> Version >>>>>>>>> 0.1.3 available at >>>>>>>>> https://cloud.r-project.org/bin/windows/contrib/4.6 >>>>>>>>> cancelled by user Warning message: In .available.both(repos, >>>>>>>>> method, >>>>>>>>> ...) : Some listed binary packages have no source >>>>>>>>>> ## check and compare the output of old.packages() old.pkgs <- >>>>>>>>>> old.packages(repos=https://cloud.r-project.org) >>>>>>>>> Warning message: In .available.both(repos, method, ...) : Some >>>>>>>>> listed >>>>>>>>> binary packages have no source >>>>>>>>>> head(old.pkgs) >>>>>>>>> Package LibPath Installed ActivePathways "ActivePathways" >>>>>>>>> "C:/Program >>>>>>>>> Files/R/R-4.6.0/library" "2.0.6" alphavantager "alphavantager" >>>>>>>>> "C:/Program Files/R/R-4.6.0/library" "0.1.3" anytime "anytime" >>>>>>>>> "C:/Program Files/R/R-4.6.0/library" "0.3.13" aod "aod" >>>>>>>>> "C:/Program >>>>>>>>> Files/R/R-4.6.0/library" "1.3.3" ape "ape" "C:/Program >>>>>>>>> Files/R/R-4.6.0/library" "5.8-1" aplot "aplot" "C:/Program >>>>>>>>> Files/R/R-4.6.0/library" "0.2.9" Built ActivePathways "R 4.6.0; ; >>>>>>>>> 2026-05-30 02:41:50 UTC; windows" alphavantager "R 4.6.0; ; >>>>>>>>> 2026-05-30 >>>>>>>>> 03:56:11 UTC; windows" anytime "R 4.6.0; x86_64-w64-mingw32; >>>>>>>>> 2026-05-30 01:03:29 UTC; windows" aod "R 4.6.0; ; 2026-05-30 >>>>>>>>> 01:07:09 >>>>>>>>> UTC; windows" ape "R 4.6.0; x86_64-w64-mingw32; 2026-05-30 >>>>>>>>> 02:11:50 >>>>>>>>> UTC; windows" aplot "R 4.6.0; ; 2026-05-30 03:14:45 UTC; windows" >>>>>>>>> ReposVer Repository ActivePathways "2.0.6" >>>>>>>>> https://cloud.r-project.org/bin/windows/contrib/4.6 alphavantager >>>>>>>>> "0.1.3" https://cloud.r-project.org/bin/windows/contrib/4.6 >>>>>>>>> anytime >>>>>>>>> "0.3.13" https://cloud.r-project.org/bin/windows/contrib/4.6 aod >>>>>>>>> "1.3.3" https://cloud.r-project.org/bin/windows/contrib/4.6 ape >>>>>>>>> "5.8-1" https://cloud.r-project.org/bin/windows/contrib/4.6 aplot >>>>>>>>> "0.2.9" https://cloud.r-project.org/bin/windows/contrib/4.6 >>>>>>>>>> ## Of the 519 packages on my system, only 3 are really >>>>>>>>>> outdated. ## >>>>>>>>>> Note that these are NOT ActivePathways' and 'alphavantager' that >>>>>>>>>> were >>>>>>>>>> identified ## by update.packages() above. length( >>>>>>>>>> old.pkgs[,"Installed"] == old.pkgs[,"ReposVer"] ) >>>>>>>>> [1] 519 >>>>>>>>>> sum( old.pkgs[,"Installed"] == old.pkgs[,"ReposVer"] ) >>>>>>>>> [1] 516 >>>>>>>>>> sum( old.pkgs[,"Installed"] != old.pkgs[,"ReposVer"] ) >>>>>>>>> [1] 3 >>>>>>>>>> old.pkgs[ old.pkgs[,"Installed"] != old.pkgs[,"ReposVer"] ,] >>>>>>>>> Package LibPath Installed limSolve "limSolve" "C:/Program >>>>>>>>> Files/R/R-4.6.0/library" "2.0.1" RCurl "RCurl" "C:/Program >>>>>>>>> Files/R/R-4.6.0/library" "1.98-1.18" rjsoncons "rjsoncons" >>>>>>>>> "C:/Program >>>>>>>>> Files/R/R-4.6.0/library" "1.3.2" Built limSolve "R 4.6.0; >>>>>>>>> x86_64-w64-mingw32; 2026-05-30 01:01:26 UTC; windows" RCurl "R >>>>>>>>> 4.6.0; >>>>>>>>> x86_64-w64-mingw32; 2026-04-21 00:45:50 UTC; windows" >>>>>>>>> rjsoncons "R >>>>>>>>> 4.6.0; x86_64-w64-mingw32; 2026-05-30 03:10:49 UTC; windows" >>>>>>>>> ReposVer >>>>>>>>> Repository limSolve "2.0.2" >>>>>>>>> https://cloud.r-project.org/bin/windows/contrib/4.6 RCurl >>>>>>>>> "1.98-1.19" >>>>>>>>> https://cloud.r-project.org/bin/windows/contrib/4.6 rjsoncons >>>>>>>>> "1.3.3" >>>>>>>>> https://cloud.r-project.org/bin/windows/contrib/4.6 >>>>>>>>>> ## sessionInfo() sessionInfo() >>>>>>>>> R version 4.6.0 (2026-04-24 ucrt) Platform: >>>>>>>>> x86_64-w64-mingw32/x64 >>>>>>>>> Running under: Windows 11 x64 (build 22631) Matrix products: >>>>>>>>> default >>>>>>>>> LAPACK version 3.12.1 locale: [1] LC_COLLATE=English_United >>>>>>>>> States.utf8 [2] LC_CTYPE=English_United States.utf8 [3] >>>>>>>>> LC_MONETARY=English_United States.utf8 [4] LC_NUMERIC=C [5] >>>>>>>>> LC_TIME=English_United States.utf8 time zone: Europe/Amsterdam >>>>>>>>> tzcode >>>>>>>>> source: internal attached base packages: [1] stats graphics >>>>>>>>> grDevices >>>>>>>>> utils datasets methods base loaded via a namespace (and not >>>>>>>>> attached): >>>>>>>>> [1] compiler_4.6.0 tools_4.6.0 >>>>>>>>> --------------------------------------------------------- Guido >>>>>>>>> Hooiveld, PhD Nutrition, Metabolism & Genomics Group Division of >>>>>>>>> Human >>>>>>>>> Nutrition & Health Wageningen University the Netherlands Visiting >>>>>>>>> address: Mail address: HELIX (Building 124), room 2048 Stippeneng >>>>>>>>> 4 PO >>>>>>>>> Box 17 6708 WE Wageningen 6700 AA Wageningen the Netherlands the >>>>>>>>> Netherlands tel: (+) 31 317 485788 fax: (+) 31 317 483342 email: >>>>>>>>> [email protected] internet: http://www.humannutrition.nl >>>>>>>>> http://scholar.google.com/citations?user=qFHaMnoAAAAJ >>>>>>>>> http://www.scopus.com/authid/detail.url?authorId=6603101814 >>>>>>>>> ______________________________________________ >>>>>>>>> [email protected] >>>>>>>>> mailing list -- To UNSUBSCRIBE and more, see >>>>>>>>> https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the >>>>>>>>> posting guide https://www.R-project.org/posting-guide.html and >>>>>>>>> provide >>>>>>>>> commented, minimal, self-contained, reproducible code. >>>>>>>> >>>>>>>> ------------------------------ >>>>>>>> >>>>>>>> Message: 2 >>>>>>>> Date: Sun, 7 Jun 2026 23:23:43 +0200 >>>>>>>> From: Iago <[email protected]> >>>>>>>> To: [email protected] >>>>>>>> Subject: Re: [R] issue with update.packages(), library 'utils' >>>>>>>> Message-ID: <[email protected]> >>>>>>>> Content-Type: text/plain; charset="utf-8" >>>>>>>> >>>>>>>> I had this problem too and I don’t use RStudio, so this is/was >>>>>>>> an R >>>>>>>> issue. Regarding the previous discussion on this issue, the >>>>>>>> curious >>>>>>>> thing is that it had never occurred before when updating from >>>>>>>> 4.4 to >>>>>>>> 4.5, from 4.3 to 4.4, etc., at least to me. >>>>>>>> >>>>>>>> Iago >>>>>>>> >>>>>>> >>>>>>> ______________________________________________ >>>>>>> [email protected] mailing list -- To UNSUBSCRIBE and more, see >>>>>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>>>>> PLEASE do read the posting guide >>>>>>> https://www.R-project.org/posting-guide.html >>>>>>> and provide commented, minimal, self-contained, reproducible code. >>>>>> >>>>>> ______________________________________________ >>>>>> [email protected] mailing list -- To UNSUBSCRIBE and more, see >>>>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>>>> PLEASE do read the posting guide >>>>>> https://www.R-project.org/posting-guide.html >>>>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>>> ______________________________________________ >>>> [email protected] mailing list -- To UNSUBSCRIBE and more, see >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide >>>> https://www.R-project.org/posting-guide.html >>>> and provide commented, minimal, self-contained, reproducible code. >>> >