rcranr-faq

Set default CRAN mirror permanent in R


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.


Solution

  • 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 is R_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)})