diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa020bf55c..5dab760ae3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -368,7 +368,7 @@ include_directories(SYSTEM ${MSGPACK_INCLUDE_DIRS})
 option(PREFER_LUA "Prefer Lua over LuaJIT in the nvim executable." OFF)
 
 if(PREFER_LUA)
-  find_package(Lua REQUIRED)
+  find_package(Lua 5.1 EXACT REQUIRED)
   set(LUA_PREFERRED_INCLUDE_DIRS ${LUA_INCLUDE_DIR})
   set(LUA_PREFERRED_LIBRARIES ${LUA_LIBRARIES})
   # Passive (not REQUIRED): if LUAJIT_FOUND is not set, nvim-test is skipped.
@@ -414,7 +414,7 @@ if(FEAT_TUI)
     add_definitions(-DNVIM_UNIBI_HAS_VAR_FROM)
   endif()
 
-  find_package(LibTermkey REQUIRED)
+  find_package(LibTermkey 0.18 REQUIRED)
   include_directories(SYSTEM ${LIBTERMKEY_INCLUDE_DIRS})
 endif()
 
@@ -422,7 +422,7 @@ find_package(LibVterm REQUIRED)
 include_directories(SYSTEM ${LIBVTERM_INCLUDE_DIRS})
 
 if(WIN32)
-  find_package(Winpty REQUIRED)
+  find_package(Winpty 0.4.3 REQUIRED)
   include_directories(SYSTEM ${WINPTY_INCLUDE_DIRS})
 endif()
 
diff --git a/README.md b/README.md
index fe78cdd522..fd89456a96 100644
--- a/README.md
+++ b/README.md
@@ -59,7 +59,10 @@ To list all targets:
 
     cmake --build build --target help
 
-To skip "bundled" (`third-party/*`) dependencies, define `USE_BUNDLED=NO`.
+To skip "bundled" dependencies (`third-party/*`) define `USE_BUNDLED=NO`:
+
+    sudo apt install gperf libluajit-5.1-dev libunibilium-dev libmsgpack-dev libtermkey-dev libvterm-dev libjemalloc-dev
+    make USE_BUNDLED=NO
 
 See the [Building Neovim](https://github.com/neovim/neovim/wiki/Building-Neovim) wiki page for details.