從原始碼編譯安裝 MariaDB 時,常遇到 CMake 報錯提示缺少 libaio,明明已安裝對應開發套件仍無效。本文解析根因並提供快速修復方案。
CMake Error at cmake/build_configurations/mysql_release.cmake:128 (MESSAGE): aio is required on Linux, you need to install the required library: Debian/Ubuntu: apt-get install libaio-dev RedHat/Fedora/Oracle Linux: yum install libaio-devel SuSE: zypper install libaio-devel If you really do not want it, pass -DIGNORE_AIO_CHECK to cmake.
首次執行 cmake 時會產生 CMakeCache.txt 快取檔案。若此時系統尚未安裝 libaio-devel,CMake 會將「找不到 libaio」的結果寫入快取。後續補裝套件後重新執行 cmake,系統仍讀取舊快取而非重新偵測,導致誤判持續存在。
rm -f CMakeCache.txt
# Ubuntu/Debian sudo apt-get install libaio-dev # CentOS/RHEL sudo yum install libaio-devel
cmake 進行配置若確定不需要非同步 I/O(極少見),可加參數 -DIGNORE_AIO_CHECK=ON 強制跳過檢查,但生產環境強烈建議保留 AIO 支援以發揮最佳磁碟效能。