How can I set a specific CRAN mirror permanently in R?
I want to set it permanently in my laptop so that when I do install.packages()
, it won't ask me again which mirror to choose.
How can I set a specific CRAN mirror permanently in R?
I want to set it permanently in my laptop so that when I do install.packages()
, it won't ask me again which mirror to choose.
You can set repos in your .Rprofile to restore your choice every time you start R
Edit: to be more precise:
Add
options(repos=c(CRAN="THE URL OF YOUR FAVORITE MIRROR"))
to your .Rprofile, located in the home directory of your user.
You can find a list of CRAN mirrors here.
Example:
# add this line to ~/.Rprofile, restart your R session so it takes effect
options(repos=c(CRAN="https://cran.r-project.org"))
Alternatively, you can set the mirror site-wide in your Rprofile.site
. The location of the file is given by ?Startup
:
The path of this file is taken from the value of the
R_PROFILE
environment variable (after tilde expansion). If this variable is unset, the default isR_HOME/etc/Rprofile.site
, which is used if it exists (which it does not in a 'factory-fresh' installation).
So do Sys.getenv("R_PROFILE")
for the first option, or Sys.getenv("R_HOME")
or R.home()
for the second option. On macOS, the location of the second is /Library/Frameworks/R.framework/Resources/etc/
.
The file may not exist, or you may see the following lines commented out :
# set a CRAN mirror
# local({r <- getOption("repos")
# r["CRAN"] <- "http://my.local.cran"
# options(repos=r)})
So remove the comment marks and change "http://my.local.cran" to the correct website, e.g.:
local({r <- getOption("repos")
r["CRAN"] <- "https://cran.r-project.org"
options(repos=r)})
structure
is doing anything. Usually it's just a convenient way to add attributes to an object. –
Flocculent .Rprofile
file. –
Timpani RProfile.site
file in my R 3.3.1 on Arch Linux x86_64. There is a file named RProfile
that does not contain the commented out lines mentioned in the answer. –
Valerio In one instance, the .Rprofile edit suggested above did not work. However, the following code did:
utils::setRepositories(ind = 0, addURLs = c(CRAN = "YOUR FAVORITE MIRROR"))
where "YOUR FAVORITE MIRROR" is the URL, not the name.
Restart R after editing the .Rprofile. ind = 0
will indicate that you only want the named repository. Additional repositories can be included in the addURLs =
option and are comma separated within the character vector.
In case you are trying to do this in RStudio, you can either do it via the RStudio UI (Tools -> Global Options -> Packages) or use the file ~/.config/rstudio/rstudio-prefs.json
and put the following inside for https://cran.rstudio.com/
.
{
"cran_mirror": {
"name": "Global (CDN)",
"host": "RStudio",
"url": "https://cran.rstudio.com/",
"country": "us",
"ok": 1,
"secondary": ""
}
}
Probably you already have other options set within so you can just add cran_mirror
to the list.
The full file on my current system (RStudio Server 2022.02.2 Build 485
, Ubuntu 20.04.4 LTS
) looks like this:
{
"initial_working_directory": "~",
"margin_column": 120,
"scroll_past_end_of_document": true,
"highlight_r_function_calls": true,
"rainbow_parentheses": true,
"posix_terminal_shell": "bash",
"default_project_location": "~",
"jobs_tab_visibility": "shown",
"source_with_echo": true,
"save_workspace": "never",
"load_workspace": false,
"always_save_history": false,
"data_viewer_max_columns": 500,
"cran_mirror": {
"name": "Global (CDN)",
"host": "RStudio",
"url": "https://cran.rstudio.com/",
"country": "us",
"ok": 1,
"secondary": ""
}
}
getOption("repos")
still points to the default repo defined in the image, and I have to change the repo manually when using install.packages()
)... did I miss a step somewhere? –
Armory getOption("repos")
returns "https://packagemanager.rstudio.com/cran/__linux__/focal/2021-05-17"
and I'm running rocker/r-ver:4.0.5
at the core. Maybe that helps a bit with comparing what may be going on. –
Stingo /usr/local/lib/R/etc/Rprofile.site
. I can change the link in there to the mirror I want and it persists. –
Stingo © 2022 - 2024 — McMap. All rights reserved.
Rprofile
file. On *NIX platforms, it's located in/usr/lib/R/library/base/R/Rprofile
. Just be careful... and note that local.Rprofile
settings take precedence. – Martinmas?Startup
for the really gory details of where `.Rprofile files can be located and which take precedence. – Tropine.First
and.Last
objects. – Martinmas