Yep. (In the first form, you likely want a stoplist for base and recommended 
packages.)

You can also base it on a listing of the library directory. This has the 
advantage that you can fairly easily twiddle it to look at older versions after 
the upgrade.

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/4.0/Resources/library"
> list.files("/Library/Frameworks/R.framework/Versions")
[1] "3.0"     "3.1"     "3.2"     "3.3"     "3.4"     "3.5"     "3.6"    
[8] "4.0"     "Current"
> list.files("/Library/Frameworks/R.framework/Versions/3.6/Resources/library")
  [1] "assertthat"            "backports"             "base"                 
  [4] "base64enc"             "BH"                    "bitops"               
  [7] "boot"                  "caTools"               "chron"                
 ...
> setdiff(list.files("/Library/Frameworks/R.framework/Versions/3.6/Resources/library"),rownames(installed.packages()))
[1] "caTools"      "dplyr"        "plogr"        "translations"

(Notice that "translations" is not a package, so  a red herring in this context)

-pd

> On 10 Jun 2021, at 00:26 , Simon Urbanek <simon.urba...@r-project.org> wrote:
> 
> 
> Um, this is actually a lot easier purely with R - if you want to keep track 
> of your favorite packages it is as simple as
> 
> pkgs = rownames(installed.packages())
> writeLines(pkgs, "packages.txt")
> 
> and oyu have a list of all packages that you can edit if desired. if you ever 
> want to re-install then simply
> 
> pkgs = readLines("packages.txt")
> install.packages(pkgs)
> 
> and if you only want to install missing it's simply
> 
> missing.pkgs = pkgs[!pkgs %in% rownames(installed.packages())]
> install.packages(missing.pkgs)
> 
> All trivially done in R. It is always beyond me why people come up with 
> incredibly convoluted solutions to simple things ..
> 
> Cheers,
> Simon
> 
> 
> 
>> On 9/06/2021, at 8:55 PM, Dr Eberhard Lisse <nos...@lisse.na> wrote:
>> 
>> On 08/06/2021 22:46, moleps islon wrote:
>> [...]
>>> I have no idea why, but my R installation (Mac OS X - Big Sur)
>>> automatically updates causing havoc with my libraries each time.  My
>>> Mac is under administration from the university and their software
>>> center, but they claim it is not their fault - but I still suspect
>>> them for causing all the trouble.
>> [...]
>> 
>> Sounds like Homebrew to me.  If so, or anyway, create a file (before
>> updating) which contains something like
>> 
>>       #!/usr/bin/env Rscript --vanilla
>>       #
>>       # set the Mirror
>>       #
>>       local({
>>              r <- getOption("repos")
>>               r["CRAN"] <- "https://cloud.r-project.org/";
>>              options(repos = r)
>>       })
>>       install.packages(c(
>>                "lubridate",
>>                "tidyverse"
>>       ), dependencies = TRUE)
>> 
>> 
>> or similar and run it if the additional libraries disappear.
>> 
>> You can fill this with something like
>> 
>>       grep -h library *R \
>>       |awk -F 'library' '{print $2}' \
>>       |sed 's/(//g;s/)//g' \
>>       |sort -u \
>>       |awk '{print "\"" $1 "\","}'
>>       |sed '$ s/,$//'
>> 
>> or in a few lines of the language of your choice generate the whole
>> script. And of course refine to your liking with something like
>> 
>>       find ~/R -name '*.R' -exec grep -h library {} ';' \
>>       ...
>> 
>> greetings, el
>> 
>> -- 
>> To email me replace 'nospam' with 'el'
>> 
>> _______________________________________________
>> R-SIG-Mac mailing list
>> R-SIG-Mac@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> 
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd....@cbs.dk  Priv: pda...@gmail.com

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to