本文基于RHEL8.x系统,mariadb-10.4.32版本,理论适用于RockyLinux8.x、AlmaLinux8.x等其它8.x相关衍生版本。
在该系统编译MariaDB10.4.32版本,接近完成时报错,报错内容如下:
*** ERROR: ambiguous python shebang in /usr/local/mysql/bin/myrocks_hotbackup: #!/usr/bin/env python. Change it to python3 (or python2) explicitly.
|---|--------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 | *** ERROR: ambiguous python shebang in /usr/local/mysql/bin/myrocks_hotbackup: #!/usr/bin/env python. Change it to python3 (or python2) explicitly. |
错误提示指出该脚本的shebang使用了模糊的写法,即#!/usr/bin/env python,系统无法确定应该使用哪个版本的Python,所以需要手动将shebang修改为明确指定使用的Python版本。
解决办法:
在mariadb的源码包中,找到CMakeLists.txt文件,在该文件中查找关键词python
将查找到的内容
SET(PYTHON_SHEBANG "/usr/bin/env python" CACHE STRING "python shebang") MARK_AS_ADVANCED(PYTHON_SHEBANG)
|-----|----------------------------------------------------------------------------------------------------------| | 1 2 | SET(PYTHON_SHEBANG "/usr/bin/env python" CACHE STRING "python shebang") MARK_AS_ADVANCED(PYTHON_SHEBANG) |
修改为,如下
SET(PYTHON_SHEBANG "/usr/bin/env python3" CACHE STRING "python shebang") MARK_AS_ADVANCED(PYTHON_SHEBANG)
|-----|-----------------------------------------------------------------------------------------------------------| | 1 2 | SET(PYTHON_SHEBANG "/usr/bin/env python3" CACHE STRING "python shebang") MARK_AS_ADVANCED(PYTHON_SHEBANG) |
保存后重新编译即可。
注意:重新编译时需清理缓存后再重新编译。