--- title: "Issues with `{sf}` when installing with `{renv}`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{renv-issues} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r, eval=FALSE, include=FALSE} renv::purge("sf") renv::remove("sf") renv::purge("dawaR") renv::remove("dawaR") reprex::reprex({ options(repos = c(CRAN = "https://packagemanager.posit.co/cran/latest")) renv::install("sf") renv::install("aleksanderbl29/dawaR") dawaR::get_map_data("regioner") }) ``` This vignette is intended to help resolve issues when installing `{dawaR}` on MacOS in a [`renv`](https://rstudio.github.io/renv/index.html) environment. We will resolve the issue that is printed below. ``` r renv::install("aleksanderbl29/dawaR") #> # Downloading packages ------------------------------------------------------- #> - Downloading sf from CRAN ... OK [18.6 Mb in 1.8s] #> - Downloading dawaR from GitHub ... OK [543.6 Kb in 0.67s] #> Successfully downloaded 2 package in 2.5 seconds. #> #> The following package(s) will be installed: #> - sf [1.0-17] #> - dawaR [aleksanderbl29/dawaR@main] #> These packages will be installed into "~/Downloads/test/renv/library/macos/R-4.4/aarch64-apple-darwin20". #> #> # Installing packages -------------------------------------------------------- #> - Installing sf ... OK [installed binary and cached in 0.72s] #> - Installing dawaR ... OK [built from source and cached in 0.72s] #> Successfully installed 2 package in 1.44 seconds. dawaR::get_map_data("regioner") #> Warning in CPL_read_ogr(dsn, layer, query, as.character(options), quiet, : GDAL #> Error 1: PROJ: proj_create_from_database: Cannot find proj.db #> Simple feature collection with 5 features and 9 fields #> Geometry type: MULTIPOLYGON #> Dimension: XY #> Bounding box: xmin: 8.07251 ymin: 54.55908 xmax: 15.1974 ymax: 57.75257 #> Geodetic CRS: WGS 84 #> dagi_id kode navn nuts2 ændret geo_ændret #> 1 389098 1081 Region Nordjylland DK05 2024-02-05 23:01:25 2024-02-05 23:01:25 #> 2 389101 1082 Region Midtjylland DK04 2024-02-05 23:01:25 2024-02-05 23:01:25 #> 3 389102 1083 Region Syddanmark DK03 2024-02-05 23:01:25 2024-02-05 23:01:25 #> 4 389099 1084 Region Hovedstaden DK01 2024-02-05 23:01:25 2024-02-05 23:01:25 #> 5 389100 1085 Region Sjælland DK02 2024-01-16 23:03:35 2024-01-16 23:03:35 #> geo_version visueltcenter_x visueltcenter_y geometry #> 1 31 10.112829 57.30716 MULTIPOLYGON (((10.6141 57.... #> 2 41 9.605032 56.23399 MULTIPOLYGON (((9.06696 56.... #> 3 31 9.028461 55.56317 MULTIPOLYGON (((10.53094 54... #> 4 30 12.279374 55.97239 MULTIPOLYGON (((12.31077 56... #> 5 26 11.621319 55.43979 MULTIPOLYGON (((11.9013 54.... ``` Specifically the issue with `GDAL` not being able to find `proj.db`. According to [this issue on GitHub](https://github.com/rstudio/renv/issues/1832) the issue is caused by `renv` installing the version of `{sf}` from the [posit package manager](https://packagemanager.posit.co/client/#/) where the `gdal` subdirectory is not included in the `{sf}` package from this repo - but it is included in the version of `{sf}` from [https://CRAN.R-project.org](https://CRAN.R-project.org). To work around this you should set the CRAN repo before installing the package. You can do as follows: ```{r, eval=FALSE} options(repos = c(CRAN = "https://cran.rstudio.com/")) renv::remove("sf") renv::purge("sf") renv::install("sf") renv::install("aleksanderbl29/dawaR") renv::snapshot() renv::clean() # for good measure renv::rebuild() ``` Now all should be hunky-dory! Have fun with the package.