One way to avoid the call to timedatectl is to set the `TZ` environment variable on your machine to your local timezone, if this is set `Sys.timezone()` uses this and does not try to query timedatectl for the timezone.
This is a common issue as well in docker containers, as like on WSL in docker timedatectl is present, but non-functional. Jim On Tue, Apr 13, 2021 at 9:19 AM Brenton Wiernik <bren...@wiernik.org> wrote: > In Microsoft’s Windows Subsystem for Linux (WSL or WSL2), there is not > system framework, so utilities that depend on it fail. This includes > timedatectl which R uses in Sys.timezone(). The timedatectl utility is > present on Linux systems installed under WSL/WSL2, but is non-functional. > So, when Sys.timezone() checks for Sys.which("timedatectl"), it receives a > false positive. The subsequent methods after this if () do work, however. > > This can be fixed if line 42 of Sys.timezone() were changed from: > if (nzchar(Sys.which("timedatectl"))) { > > to: > if (nzchar(Sys.which("timedatectl")) && !grepl("microsoft", system("uname > -r", intern = TRUE), ignore.case = TRUE)) { > > "uname -r" returns for example: > "5.4.72-microsoft-standard-WSL2" > > So checking for "microsoft" or "WSL" would probably work. > > > Brenton Wiernik > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel