在新服务器安装Debian12系统后,随即习惯性的装上LNMP组件及相关的php缓存模块,但发现其他模块都能正常安装,唯独Memcached模块的安装会报安装失败,有几个报错的信息如下:
make: *** No targets specified and no makefile found. Stop.
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target 'install'. Stop.
看起来似乎是缺少一些相应的编译及依赖环境,先检查一下GCC是否安装及其版本。
root@Debian12:~# gcc -v
...
gcc version 12.2.0 (Debian 12.2.0-14)
这里可以看到Debian12是存在GCC的且对应的版本也升级到了12.2,那么我们检查一下LNMP中Memcached的安装脚本[lnmp2.0/include/memcached.sh]都做了些什么,发现一处关于GCC版本的判断。
if gcc -dumpversion|grep -Eq "^[7-9]|1[01]"; then
patch -p1 < ${cur_dir}/src/patch/libmemcached-1.0.18-gcc7.patch
fi
./configure --prefix=/usr/local/libmemcached --with-memcached
Make_Install
该正则表达式的含义是匹配以7、8或9的任意单个字符,或者以1开头,后跟0或1的任意单个字符。换句话说,它匹配7、8、9或10、11两种情况。但咱们的GCC版本为12,所以这就很尴尬了,它直接跳过了libmemcached的安装,导致了后面的报错,那么其实只要稍微修改下正则表达式,让GCC 12也能安装libmemcached即可。
if gcc -dumpversion|grep -Eq "^[7-9]|1[012]"; then
经过测试,更改该处判断后即可正常完成安装,至此问题解决。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
- 最新
- 最热
只看作者