Debian12系统下LNMP安装Memcached安装失败报错解决

在新服务器安装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
喜欢就支持一下吧
点赞11 分享
郑嘉豪的头像 - 最初的天空钻石会员
评论 共1条

请登录后发表评论

    • 头像一位不愿透露姓名的路人0