在用源码编译redis的过程中,可能会报jemalloc出错,提示No such file or directory的问题,导致构建不能继续。一种常见的,在网上流传的方法是调整MALLOC参数为libc,但这并不是唯一解,不能一概而论。
以笔者的例子,笔者采用windows装CLion并用Remote Development连接linux虚拟机的方式来编译redis源码,版本为6.2.6,在构建的过程中也报了jemalloc出No such file or directory的问题。在笔者的场景下,仔细查看日志,会出现许多Permission Denied
的字样,这说明有许多脚本没有执行权限。经过一番研究,执行下面俩操作之后,distclean
一下,就能成功再次编译redis。
- 在
src
目录下,chmod +x ./mkreleasehdr.sh
,增加这个脚本的执行权限 - 在
deps
目录下,chmod -R 777 jemalloc
,把jemalloc目录下所有文件权限都提上来
暂时研究到的是这些,如果真是因为权限问题,且还有漏网之鱼的话,极端一点可以把整个redis源码目录权限都提上来。反正都可以试试看。