diff --git a/.travis.yml b/.travis.yml
index 88d5901d6f4a0c2c3bf4734267d236922f848500..13d5453d0ba022ba08ed4cae6b4e21ea9d7d9932 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,8 +18,7 @@ os:
   - osx
 language: c
 install:
-  - sudo apt-get update -qq && sudo apt-get install -y -qq valgrind
-  - if [ x$LWS_METHOD == xlibev ] && [ "$COVERITY_SCAN_BRANCH" != 1 ]; then sudo apt-get install -y -qq libev-dev; fi
+  - ./travis_install.sh
 script:
   - if [ "$COVERITY_SCAN_BRANCH" != 1 ]; then mkdir build && cd build && cmake $CMAKE_ARGS .. && cmake --build .; fi
 addons:
diff --git a/travis_install.sh b/travis_install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..96ac72d9727911bfc36e54a1b67b962c0e244e8e
--- /dev/null
+++ b/travis_install.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+if [ "$COVERITY_SCAN_BRANCH" == 1 ]; then exit; fi
+
+if [ "$TRAVIS_OS_NAME" == "linux" ];
+then
+	sudo apt-get update -qq
+
+	if [ "$LWS_METHOD" == "libev" ];
+	then
+		sudo apt-get install -y -qq libev-dev;
+	fi
+fi
+
+if [ "$TRAVIS_OS_NAME" == "osx" ];
+then
+	if [ "$LWS_METHOD" == "libev" ];
+	then
+		brew install libev;
+	fi
+fi
+
+