197

I wish to use the devtools package. I've run the following commands:

> install.packages("devtools", dependencies = TRUE)
....
> library(devtools)
Error in library(devtools) : there is no package called ‘devtools’

What am I doing wrong?

Edit: Here are the results of re-running the install.packages command after restarting the session.

> install.packages("devtools", dependencies = TRUE)
Installing package into ‘/home/evanaad/R/x86_64-pc-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
Warning: dependencies ‘roxygen2’, ‘BiocInstaller’, ‘rstudio’ are not available
also installing the dependencies ‘httr’, ‘RCurl’

trying URL 'http://cran.at.r-project.org/src/contrib/httr_0.2.tar.gz'
Content type 'application/x-gzip' length 50183 bytes (49 Kb)
opened URL
==================================================
downloaded 49 Kb

trying URL 'http://cran.at.r-project.org/src/contrib/RCurl_1.95-4.1.tar.gz'
Content type 'application/x-gzip' length 870915 bytes (850 Kb)
opened URL
==================================================
downloaded 850 Kb

trying URL 'http://cran.at.r-project.org/src/contrib/devtools_1.4.1.tar.gz'
Content type 'application/x-gzip' length 105214 bytes (102 Kb)
opened URL
==================================================
downloaded 102 Kb

* installing *source* package ‘RCurl’ ...
** package ‘RCurl’ successfully unpacked and MD5 sums checked
checking for curl-config... no
Cannot find curl-config
ERROR: configuration failed for package ‘RCurl’
* removing ‘/home/evanaad/R/x86_64-pc-linux-gnu-library/3.0/RCurl’
ERROR: dependency ‘RCurl’ is not available for package ‘httr’
* removing ‘/home/evanaad/R/x86_64-pc-linux-gnu-library/3.0/httr’
ERROR: dependencies ‘httr’, ‘RCurl’ are not available for package ‘devtools’
* removing ‘/home/evanaad/R/x86_64-pc-linux-gnu-library/3.0/devtools’

The downloaded source packages are in
    ‘/tmp/RtmptvmTrA/downloaded_packages’
Warning messages:
1: In install.packages("devtools", dependencies = TRUE) :
  installation of package ‘RCurl’ had non-zero exit status
2: In install.packages("devtools", dependencies = TRUE) :
  installation of package ‘httr’ had non-zero exit status
3: In install.packages("devtools", dependencies = TRUE) :
  installation of package ‘devtools’ had non-zero exit status
Evan Aad
  • 5,699
  • 6
  • 25
  • 36
  • Very hard to say based on this information. did the installation appear to go successfully?? – Ben Bolker Jan 04 '14 at 16:16
  • @BenBolker: I can't tell anymore. I was silly enough to log out of the session without noticing whether the installation was successful. I logged out thinking R needs to "restart" in order to pick up the newly installed package. Unfortunately, it didn't work as expected... Is there anything I can do about it now? – Evan Aad Jan 04 '14 at 16:20
  • 1
    What happens when you rerun the `install.packages` command? – damienfrancois Jan 04 '14 at 16:30
  • @damienfrancois: I've updated my original post with the relevant output. – Evan Aad Jan 04 '14 at 16:38
  • 9
    Try installing `curl-dev` or `curl-devel` with your package manager, or search for `libcurl` – damienfrancois Jan 04 '14 at 16:57
  • for me installing `curl-devel` solved my problem. – Chris Aug 29 '14 at 15:30

18 Answers18

203

As per damienfrancois's suggestion, I installed libcurl4-gnutls-dev and the problem was solved.

EDIT (@dardisco)

In your shell:

apt-get -y build-dep libcurl4-gnutls-dev
apt-get -y install libcurl4-gnutls-dev
Community
  • 1
  • 1
Evan Aad
  • 5,699
  • 6
  • 25
  • 36
  • 8
    I.e. (from BASH): `apt-get -y build-dep libcurl4-gnutls-dev` , `apt-get -y install libcurl4-gnutls-dev` – dardisco Apr 09 '14 at 16:19
  • 3
    Worked like charm. But I still can't get my head around, how these ubuntu packages solved it? – rishy Jan 20 '15 at 05:58
  • 1
    I have tried your methods in Ubuntu and the instructions seem work well and installation of devtools seems also succeed. but when I try to use` library(devtools)` to load the library but I only get those message `Error in library(devtools) : there is no package called ‘devtools’` – sikisis Jul 24 '15 at 09:22
  • 7
    I don't think you need the build dependencies (`build-dep`) for `libcurl4-gnutls-dev`, since you're not going to build it yourself. Just installing the package should work fine. – Gerhard Burger Nov 06 '15 at 10:28
  • Is there any chance to get it working on Windows too? – Marian Klühspies Nov 25 '15 at 23:38
  • The build deps will pull libssl-dev which seems to be needed by git2r. – Lars Schillingmann Feb 26 '16 at 20:40
  • Worked perfectly in Ubuntu 14 and R 3.3.0 – NuValue May 16 '16 at 16:55
  • 2
    build dep didn't work for me, but I did do `sudo apt-get install libssl-dev` also – wordsforthewise Mar 02 '17 at 21:32
  • didn't work for me when building docker image: I get ---> E: You must put some 'source' URIs in your sources.list – Diego Sep 09 '22 at 14:22
112

If you are using Ubuntu/Linux:

sudo apt-get install libcurl4-openssl-dev libssl-dev
Sayali Sonawane
  • 12,289
  • 5
  • 46
  • 47
  • 2
    I am getting this error in Ubuntu 16.04 The following information may help to rsolve the situation: The following packages have unmet dependencies: libcurl4-openssl-dev : Depends: libcurl3 (= 7.47.0-1ubuntu2) but 7.47.0-1ubuntu2.2 is to be installed libssl-dev : Depends: libssl1.0.0 (= 1.0.2g-1ubuntu4) but 1.0.2g-1ubuntu4.6 is to be installed Recommends: libssl-doc but it is not going to be installed E: Unable to correct problems, you have held broken packages. – Artiga Feb 21 '17 at 12:43
  • The only thing I would add is a '-y' at the end so you don't have to say 'yes'. No time for consent these days. – wordsforthewise Dec 12 '17 at 16:34
  • 2
    this should be in the documentation of R. – PaulDong Dec 13 '17 at 14:09
  • I tried this in Ubuntu 16.04. libcurl is installed. But still devtools is not installed in R. What am I possibly missing? Thanks. – BobbyF Jan 25 '18 at 16:28
  • 1
    Works for Ubuntu 18.04 as well. – kluu May 01 '18 at 17:51
  • 4
    as of 2022 a few more libs are required. So the whole thing would be `sudo apt-get install libcurl4-openssl-dev libssl-dev libfontconfig1-dev libxml2-dev libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev`. Seems to do the trick. – Amit Kohli Aug 05 '22 at 15:23
  • 1
    As to January 2023, @AmitKohli's answer is the correct one. – lafinur Jan 17 '23 at 20:06
53

In case if you are using CentOS:

Try:

sudo yum -y install libcurl libcurl-devel
kennyut
  • 3,671
  • 28
  • 30
22

I hit this issue with Ubuntu 18.04 and none of the previous answers solved it. Eventually I succeeded by installing devtools with the package manager itself:

sudo apt install r-cran-devtools

Luís de Sousa
  • 5,765
  • 11
  • 49
  • 86
20

I'm on windows and had the same issue.

I used the below code :

install.packages("devtools", type = "win.binary")

Then library(devtools) worked for me.

Angel F Syrus
  • 1,984
  • 8
  • 23
  • 43
AceNighJohn
  • 243
  • 2
  • 5
11

For my Debian Jessie box, I also included:

sudo apt-get build-dep libxml2-dev

Hint: The r-tool console output is pretty verbose so I would check for any other dependencies.

Then, I finally got it:

> find_rtools()
[1] TRUE
espaciomore
  • 328
  • 2
  • 10
11

For ubuntu users, run this command in your terminal [Tested in UBUNTU 16.04]

sudo apt-get -y install libcurl4-openssl-dev

post this install libraries the way you usually do in R using

install.packages("package name")
UJJWAL SHRIDHAR
  • 111
  • 2
  • 3
  • 2
    How does this differ from [answer by Sayali](http://stackoverflow.com/a/38698271/322912)? – Roman Luštrik Feb 09 '17 at 10:01
  • It worked for me manually as described here on an Ubuntu 18.04 that had a newer R than usual, although I needed to apt-get install r-cran-xml2 beforehand. – 719016 May 04 '21 at 07:45
11

None of the above answers worked for me on Ubuntu 18.04.3 LTS using R version 3.6.1

My guess is this might have something to do with Anaconda3...

What worked for me is:

conda install -c r r-devtools 

Then in R

install.packages("rlang")
install.packages("devtools")

sessionInfo()

R version 3.6.1 (2019-07-05)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: Ubuntu 18.04.3 LTS

Matrix products: default
BLAS/LAPACK: /home/tsundoku/anaconda3/lib/R/lib/libRblas.so

locale:
 [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8    
 [5] LC_MONETARY=en_CA.UTF-8    LC_MESSAGES=en_CA.UTF-8   
 [7] LC_PAPER=en_CA.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.6.1 tools_3.6.1    tcltk_3.6.1   
  • 2
    Great ! Thank you a lot !! it also worked for me in a conda environment on Ubuntu 20.04 LTS and R v3.6.1 – jumpy Jun 25 '21 at 14:04
  • Wow.. Thank You. This worked for me in conda environment on Ubuntu 20.04.2 LTS (GNU/Linux 5.11.0-25-generic x86_64) and R v4.1.3 – R S John Jun 26 '22 at 22:59
10

Nowadays (ubuntu 14.04) I need both:

 $ sudo apt-get -y install libcurl4-gnutls-dev
 $ sudo apt-get -y install libssl-dev
Oliver Bock
  • 4,829
  • 5
  • 38
  • 62
7

Best solution to solve this. I was searching the same problem. I spent 1 day and then I got solution. Now, It is well.

Check your R version in bash terminal if you are on Ubuntu or Linux.

R --version

then use these commands

sudo apt-get update 
sudo apt-get upgrade              

Now check the new version of R. Use this command

sudo apt-cache showpkg r-base

Now update the R only.

sudo apt-get install r-base

Now R will be updated and the error will be removed. Make sure to cd the library path where you want to install the new package. This way in bash terminal. Try to create the R directory at home folder or it will be at the default. Locate this location for package ~/R/lib/ .

R
.libPaths("~/R/lib")
install.packages("devtools")

OR

install.packages("devtools", lib="~/R/lib")
James Draper
  • 5,110
  • 5
  • 40
  • 59
Hafiz Shehbaz Ali
  • 2,566
  • 25
  • 21
4

I worked through a number of issues installing all of the following to get devtools to install on Ubuntu 18.04.1.

sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libssl-dev
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libxml2-dev
Chris
  • 820
  • 7
  • 22
3

CentOS 7: I had the libcurl and gnutls development packages installed already, but still got the "cannot load git2r.so" error when installing devtools in R. I had to "reinstall" them for it to work:

sudo yum reinstall gnutls-devel.x86_64
Charm000
  • 81
  • 1
  • 5
3

CentOS 7:

I tried solutions in this post

sudo yum -y install libcurl libcurl-devel
sudo yum -y install openssl-devel

but wasn't enough.

Checking R error in Console gave me the anwser. In my case it was lacking libxml-2.0 below (and Console printed an explanation with package name to different Linux versions and other possible R configs)

sudo yum -y install libxml2-devel
danielfs88
  • 126
  • 1
  • 2
3

I found solution by seeing errors by R-Studio when I tried to install devtools package...Basically Error is because of dependence libraries not installed in linux Look at ANTICONF ERROR Below

Installing package into ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
also installing the dependencies ‘curl’, ‘gh’, ‘openssl’, ‘xml2’, ‘usethis’, ‘covr’, ‘httr’, ‘roxygen2’, ‘rversions’


trying URL 'https://cloud.r-project.org/src/contrib/curl_4.3.tar.gz'
Content type 'application/x-gzip' length 673779 bytes (657 KB)
==================================================
downloaded 657 KB

trying URL 'https://cloud.r-project.org/src/contrib/gh_1.1.0.tar.gz'
Content type 'application/x-gzip' length 29043 bytes (28 KB)
==================================================
downloaded 28 KB

trying URL 'https://cloud.r-project.org/src/contrib/openssl_1.4.2.tar.gz'
Content type 'application/x-gzip' length 1204168 bytes (1.1 MB)
==================================================
downloaded 1.1 MB

trying URL 'https://cloud.r-project.org/src/contrib/xml2_1.3.2.tar.gz'
Content type 'application/x-gzip' length 271876 bytes (265 KB)
==================================================
downloaded 265 KB

trying URL 'https://cloud.r-project.org/src/contrib/usethis_1.6.1.tar.gz'
Content type 'application/x-gzip' length 255052 bytes (249 KB)
==================================================
downloaded 249 KB

trying URL 'https://cloud.r-project.org/src/contrib/covr_3.5.0.tar.gz'
Content type 'application/x-gzip' length 146148 bytes (142 KB)
==================================================
downloaded 142 KB

trying URL 'https://cloud.r-project.org/src/contrib/httr_1.4.2.tar.gz'
Content type 'application/x-gzip' length 159950 bytes (156 KB)
==================================================
downloaded 156 KB

trying URL 'https://cloud.r-project.org/src/contrib/roxygen2_7.1.1.tar.gz'
Content type 'application/x-gzip' length 254118 bytes (248 KB)
==================================================
downloaded 248 KB

trying URL 'https://cloud.r-project.org/src/contrib/rversions_2.0.2.tar.gz'
Content type 'application/x-gzip' length 41558 bytes (40 KB)
==================================================
downloaded 40 KB

trying URL 'https://cloud.r-project.org/src/contrib/devtools_2.3.1.tar.gz'
Content type 'application/x-gzip' length 373604 bytes (364 KB)
==================================================
downloaded 364 KB

* installing *source* package ‘curl’ ...
** package ‘curl’ successfully unpacked and MD5 sums checked
** using staged installation
Package libcurl was not found in the pkg-config search path.
Perhaps you should add the directory containing `libcurl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libcurl' found
Package libcurl was not found in the pkg-config search path.
Perhaps you should add the directory containing `libcurl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libcurl' found
Using PKG_CFLAGS=
Using PKG_LIBS=-lcurl
------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libcurl was not found. Try installing:
  deb: **libcurl4-openssl-dev** (Debian, Ubuntu, etc)
 * rpm: libcurl-devel (Fedora, CentOS, RHEL)
 * csw: libcurl_dev (Solaris)
If libcurl is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a libcurl.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
--------------------------------------------------------------------
ERROR: configuration failed for package ‘curl’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/curl’
Warning in install.packages :
  installation of package ‘curl’ had non-zero exit status
* installing *source* package ‘openssl’ ...
** package ‘openssl’ successfully unpacked and MD5 sums checked
** using staged installation
Using PKG_CFLAGS=
--------------------------- [ANTICONF] --------------------------------
Configuration failed because openssl was not found. Try installing:
  deb: **libssl-dev** (Debian, Ubuntu, etc)
 * rpm: openssl-devel (Fedora, CentOS, RHEL)
 * csw: libssl_dev (Solaris)
 * brew: openssl@1.1 (Mac OSX)
If openssl is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a openssl.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
-------------------------- [ERROR MESSAGE] ---------------------------
tools/version.c:1:10: fatal error: openssl/opensslv.h: No such file or directory
    1 | #include <openssl/opensslv.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
--------------------------------------------------------------------
ERROR: configuration failed for package ‘openssl’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/openssl’
Warning in install.packages :
  installation of package ‘openssl’ had non-zero exit status
* installing *source* package ‘xml2’ ...
** package ‘xml2’ successfully unpacked and MD5 sums checked
** using staged installation
Package libxml-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libxml-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libxml-2.0' found
Package libxml-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libxml-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libxml-2.0' found
Using PKG_CFLAGS=
Using PKG_LIBS=-lxml2
------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libxml-2.0 was not found. Try installing:
 deb: **libxml2-dev** (Debian, Ubuntu, etc)
 * rpm: libxml2-devel (Fedora, CentOS, RHEL)
 * csw: libxml2_dev (Solaris)
If libxml-2.0 is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a libxml-2.0.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
--------------------------------------------------------------------
ERROR: configuration failed for package ‘xml2’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/xml2’
Warning in install.packages :
  installation of package ‘xml2’ had non-zero exit status
ERROR: dependencies ‘curl’, ‘openssl’ are not available for package ‘httr’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/httr’
Warning in install.packages :
  installation of package ‘httr’ had non-zero exit status
ERROR: dependency ‘xml2’ is not available for package ‘roxygen2’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/roxygen2’
Warning in install.packages :
  installation of package ‘roxygen2’ had non-zero exit status
ERROR: dependencies ‘curl’, ‘xml2’ are not available for package ‘rversions’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/rversions’
Warning in install.packages :
  installation of package ‘rversions’ had non-zero exit status
ERROR: dependency ‘httr’ is not available for package ‘gh’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/gh’
Warning in install.packages :
  installation of package ‘gh’ had non-zero exit status
ERROR: dependency ‘httr’ is not available for package ‘covr’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/covr’
Warning in install.packages :
  installation of package ‘covr’ had non-zero exit status
ERROR: dependencies ‘curl’, ‘gh’ are not available for package ‘usethis’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/usethis’
Warning in install.packages :
  installation of package ‘usethis’ had non-zero exit status
ERROR: dependencies ‘usethis’, ‘covr’, ‘httr’, ‘roxygen2’, ‘rversions’ are not available for package ‘devtools’
* removing ‘/home/hafiz/R/x86_64-pc-linux-gnu-library/3.6/devtools’
Warning in install.packages :
  installation of package ‘devtools’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/Rtmpexapon/downloaded_packages’

look at bold libraries which are missing libssl-dev libxml2-dev

just you need to install these libraries in ubuntu terminal or

whatever operating system you are using you will find relative errors w r t operating system see errors in details.. R-studio mentioned relative library package name against operating system

for ubuntu i did this

sudo apt-get install libssl-dev

**sudo apt-get install libxml2-dev **

sudo apt-get install libcurl4-openssl-dev

  • This worked well for me with the addition of iteratively installing those packages listed which did not have a non-zero exit status – Vass Oct 06 '20 at 00:03
2

For R version 4.0.2 on Ubuntu 18.0.4, I had to install the the libgit2-dev package:

sudo apt-get install libgit2-dev

After that, worked like a charm.

Archie
  • 2,247
  • 1
  • 18
  • 35
2

On Ubuntu (20.04 focal), I needed to run this first:

apt-get update
apt-get install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev -y

Then installation of devtools worked.

This might seem like overkill but all were necessary for me (well, I'm not totally sure if build-essential is necessary, but it didn't hurt - I got that from here).

The way I figured which system libraries to install was by looking at the error messages carefully whenever install.packages("devtools") failed, because often the error message would tell you which system library to install, it's just that it was buried in the middle of the error message so it was hard to spot.

stevec
  • 41,291
  • 27
  • 223
  • 311
1

My personal experience:

I updated both R and RStudio. Then I installed devtools. As it gave me the same issues, I started installing the dependencies as appeared in the line:

`ERROR: dependencies ‘httr’, ‘RCurl’ are not available for package ‘devtools’ ` one by one. 

When you install them (for example the xml2 as in my case),

install.packages("xmls2")

It says:

Configuration failed because libxml-2.0 was not found. Try installing:
 * deb: libxml2-dev (Debian, Ubuntu, etc)
 * rpm: libxml2-devel (Fedora, CentOS, RHEL)
 * csw: libxml2_dev (Solaris)

The answer is in the response. Here I went to the command prompt and used:

sudo apt install libxml2-dev

Then I reused the command:

install.packages("xmls2")

I used a similar procedure for all other packages. Then finally,

install.packages("devtools"))

Sometimes one package may block the installation of many other packages. So please start installation from the first dependency on the list.

Shawn Hemelstrand
  • 2,676
  • 4
  • 17
  • 30
0

Centos 6.8

this work like charm for me

  1. install libcurl $yum -y install libcurl libcurl-devel
  2. restart R Software $rstudio-server verify-installation
Maelig
  • 2,046
  • 4
  • 24
  • 49
Sukarno
  • 16