‘openssl/opensslv.h’ file not found

By  on  

Every system update is an adventure when you're a software engineer.  We do everything we can to use virtual machines so that we have (almost) complete control of the environment but sometimes you simply need to work on your host system.  Everything goes great until you update your operating system and boom: you run into an issue you thought you had fixed before.

One such issue is the 'openssl/opensslv.h' file not found problem I get when updating El Capitan.   Each OS update breaks my local dev environment and I have to scramble to get the snippet to fix everything again.  The snippet I need is:

# "'openssl/opensslv.h' file not found"
brew install openssl
brew link openssl --force

That snippet installs openssl and reestablishes the links required for access from anything that wants to use it.

Symbol not found: _BIO_new_CMS

Hand in hand with the original issue is this one whereby cryptography has a fit.  Here's how I fix the _BIO_new_CMS problem:

# Symbol not found: _BIO_new_CMS
pip uninstall cryptography
LDFLAGS="-L/usr/local/opt/openssl/lib" pip install cryptography --no-use-wheel

I found each of these snippets on the third page of a random forum so hopefully having them in one place saves someone a bunch of time!

Recent Features

  • By
    Regular Expressions for the Rest of Us

    Sooner or later you'll run across a regular expression. With their cryptic syntax, confusing documentation and massive learning curve, most developers settle for copying and pasting them from StackOverflow and hoping they work. But what if you could decode regular expressions and harness their power? In...

  • By
    JavaScript Promise API

    While synchronous code is easier to follow and debug, async is generally better for performance and flexibility. Why "hold up the show" when you can trigger numerous requests at once and then handle them when each is ready?  Promises are becoming a big part of the JavaScript world...

Incredible Demos

  • By
    MooTools 1.3 Browser Object

    MooTools 1.3 was just released and one of the big additions is the Browser object.  The Browser object is very helpful in that not only do you get information about browser type and browser versions, you can gain information about the user's OS, browser plugins, and...

  • By
    CSS Scoped Styles

    There are plenty of awesome new attributes we've gotten during the HTML5 revolution:  placeholder, download, hidden, and more.  Each of these attributes provides us a different level of control over an element on the page, but there's a new element attribute that allows...

Discussion

  1. Justin

    Thanks for the advice. This resolved missing openssl/opensslv.h

    brew install openssl
    brew link openssl --force
    

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!