diff --git a/.travis.yml b/.travis.yml
index 5a5bbebfa403e62b096266e94617d70a8a77c1f4..115a516ad0b3ce0cc21b9438d0f52867204e2a65 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -48,7 +48,9 @@ matrix:
       script: sh ci/build.sh
       stage: tools-and-build-and-tier1
       rust: nightly
-      install: true
+      install:
+        - rustup component add rust-src
+        - cargo install xargo
     - name: "Build Stable Rust"
       script: sh ci/build.sh
       stage: tools-and-build-and-tier1
diff --git a/ci/build.sh b/ci/build.sh
index a1a6b03dbd3d6cf8938aa2b2916ebd7786439cf4..0666bf14160c09f2b0e56dbd3f95d5ff7d46e056 100644
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -30,7 +30,7 @@ test_target() {
             ;;
     esac
 
-    rustup target add "${TARGET}" --toolchain "${RUST}" || true
+    rustup target add "${TARGET}" --toolchain "${RUST}"
 
     # Test that libc builds without any default features (no libstd)
     "$CARGO" "+${RUST}" build -vv $opt --no-default-features --target "${TARGET}"
@@ -198,9 +198,6 @@ x86_64-unknown-openbsd
 "
 
 if [ "${RUST}" = "nightly" ] && [ "${OS}" = "linux" ]; then
-    rustup component add rust-src || true
-    cargo install xargo || true
-
     for TARGET in $RUST_LINUX_NO_CORE_TARGETS; do
         RUST_LIBC_NO_CORE_BUILD=1 test_target xargo "$TARGET" 1
     done