When I tried to install tidyverse in WSL2 I ran into issues with timedatectl and xml2. The simple solution is:
# Assuming Debian derivatives sudo apt-get install libxml2-dev # Modify TZ to whatever your timeozne is TZ="Australia/Sydney" R -e 'install.packages("tidyverse")'
When I try to install tidyverse I get this error:
> install.packages('tidyverse') ERROR: configuration failed for package ‘xml2’ System has not been booted with systemd as init system (PID 1). Can't operate. Failed to create bus connection: Host is down Warning in system("timedatectl", intern = TRUE) : running command 'timedatectl' had status 1 Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : namespace ‘xml2’ 1.3.1 is already loaded, but >= 1.3.2 is required Calls: <Anonymous> ... namespaceImportFrom -> asNamespace -> loadNamespace Execution halted ERROR: lazy loading failed for package ‘tidyverse’
timedatectl fails on WSL2 and there's an open issue about it.
~ $ timedatectl System has not been booted with systemd as init system (PID 1). Can't operate. Failed to create bus connection: Host is down
So it seems that
timedatectl is being called in xml2 to get the timezone.
While I find this a bit offputing, you can specify the timezone with the TZ environment variable, and then it doesn't call
So putting this together gets to our original answer:
TZ="Australia/Sydney" R -e 'install.packages("tidyverse")'