diff --git a/.ci/install.sh b/.ci/install.sh
index 0ddbb968840b31885c5c32f86c0576b7f71136db..a4cb34f945b9176c86f97665d53e28d9ca095f72 100755
--- a/.ci/install.sh
+++ b/.ci/install.sh
@@ -41,12 +41,10 @@ if [ $TRAVIS_OS_NAME == linux ]; then
       cd lcov-1.14/
       sudo make install )
 fi
+
 if [ $TRAVIS_OS_NAME == osx ]; then
-    brew update || true
-    brew upgrade boost || true
-    brew install libsodium clang-format ninja
-    brew tap nlohmann/json
-    # the nlohmann install seems to make travis angry 
+    # the nlohmann install seems to make travis angry
     # because of the number of log messages
     brew install --with-cmake nlohmann_json > /dev/null
 fi
+
diff --git a/.ci/script.sh b/.ci/script.sh
index 16b05c332ec22824429dc44d096e2388833271e7..923b7841624e51770f1aba9b79b82c9094f3ef3d 100755
--- a/.ci/script.sh
+++ b/.ci/script.sh
@@ -34,8 +34,6 @@ if [ $TRAVIS_OS_NAME == linux ]; then
 fi
 
 if [ $TRAVIS_OS_NAME == osx ]; then
-    brew update
-    brew upgrade cmake boost || true
     # Build dependencies.
     cmake -Hdeps -B.deps -DCMAKE_BUILD_TYPE=Release \
         -DUSE_BUNDLED_BOOST=OFF \
diff --git a/.travis.yml b/.travis.yml
index 7d4d983ae92ef3ef7ffbff862070b6b1a58f6d31..93d2e13d87a4b231819d2edaa13536a345dc95e2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,10 +10,20 @@ services:
 notifications:
   email: false
 
+addons:
+  homebrew:
+    taps: nlohmann/json
+    packages:
+      - libsodium
+      - clang-format
+      - ninja
+      - openssl
+      - boost
+
 matrix:
   include:
     - os: osx
-      # osx_image: xcode9 # don't specify an image here to use the default
+      osx_image: xcode10.2 # for c++17
       compiler: clang
     - os: linux
       compiler: gcc