81

In order to compile NGinx in need to install openssl and openssl-dev (I'am following a book guide).

So i'am doing this :

sudo apt-get install openssl openssl-dev

But i get an error telling me that it's impossible to find openssl-dev. Also after some googling, it seems that libssl-dev is equal to openssl-dev, is that true ? (apt-get found libssl-dev on my server)

Here is my server version : 2.6.32-22-server

Any help welcome !

3 Answers 3

45

If the likelihood that the dependencies for the version of a package that is in the release of Ubuntu (or other Debian derived arrangements) is the same as the deps for the version you are trying to build, you could run apt-get build-dep nginx or aptitude build-dep nginx - this will not install the nginx package but will instead install all those listed as dependencies (and their dependencies, as usual) which includes libssl-dev (the package that you are currently looking for).

In most cases this will allow the build of the other (presumably newer) version to be completed successfully, and it saves you installing each library and its header files one by one yourself. Even if there are new dependencies in the other version you are trying to build, build-dep <package> is a good place to start as it means that you only have to manually install the extra new dependencies.

As an example, the result on one of my servers is:

user@host:~$ sudo aptitude build-dep nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initialising package states... Done
The following NEW packages will be installed:
  autotools-dev cvs{a} debhelper gettext{a} html2text{a} intltool-debian{a}
  libcroco3{a} libmail-sendmail-perl{a} libpcre3-dev libpcrecpp0{a}
  libssl-dev libsys-hostname-long-perl{a} po-debconf{a} zlib1g-dev
0 packages upgraded, 14 newly installed, 0 to remove and 19 not upgraded.
Need to get 7,217kB of archives. After unpacking 22.9MB will be used.
Do you want to continue? [Y/n/?]

It is intending to install some libraries and headers, to enable an nginx build, but not nginx itself.

One thing to note is that if you are compiling your own copy because you want different build options rather than needing a different version for some reason, you may be better of compiling from the repository's source for the package rather than using the upstream sources directly. This SO question is the first useful page that came out of a quick search, though you are likely to find more detailed tutorials easily if you need that.

An other small thing to note: the packages installed as a result of apt-get build-dep will be marked as manually installed as if you have done this by hand as you are currently doing. That means you can't remove them all in one go (there is no apt-get unintall-dep or similar) - though that is no different from the situation you'll get from manual library/header installs anyway (I only mention the fact as some people expect there to be a one-step way to undo a build-dep operation, and there is not).

0
153

Yes, you are right. It is libssl-dev

3
  • 5
    This should be the accepted answer imho. Apr 30, 2020 at 7:20
  • 1
    Also usually with libssl-dev you have to install another related library libcrypto-dev, it is also a part of OpenSSL project.
    – Arty
    Jun 23, 2021 at 4:03
  • This is still ok on Ubuntu 16.04. Cf serverfault.com/a/929084/568102 for more recent versions. Oct 25, 2023 at 11:08
17

Same problem on Ubuntu 18.04 in September 2018 and on Ubuntu 22.04.1 in January 2023

Resolved on Ubuntu 18.04 by doing:

sudo apt install libssl1.0-dev

It is unclear how to fix this on Ubuntu 22.04.1 for the time being

1
  • Had same issue, and sudo apt install libssl-dev; did not work. Tried this one, works fine. I expect that it depends on the particular program a person is trying to install which will require either libssl1.0-dev or libssl-dev (which is likely just the latest version, whereas the other one is 1.0 fixed) Apr 30, 2020 at 8:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .