环境:Ubuntu 3.11.3
版本:redis 3.0.7
1、Make
sudo make
1)如果出现错误:
jemalloc/jemalloc.h: No such file or directory
redis编译时,默认的allocator是jemalloc,而如果系统中没有安装jemalloc就会报错
解决办法是利用MALLOC环境变量设置默认的分配器。
sudo make MALLOC=libc
2)如果出现错误:
/usr/local/bin/ld: this linker was not configured to use sysroots
可能是/usr/local/bin/目录下的链接器不支持sysroots。而redis在编译时,首先会根据环境变量的先后顺序先找到这个链接器,而不是配置了sysroots的链接器。
解决办法:
首先将/usr/local/bin/目录下的ld移到其它路径,使得redis在编译时第一个找到的链接器是配置了sysroots的链接器,等到编译完成后,再恢复
sudo mv /usr/local/bin/ld /usr/local/bin/ld.back //移除
sudo make MALLOC=libc //编译
sudo mv /usr/local/bin/ld.back /usr/local/bin/ld //恢复
2、INSTALL
sudo make install
3、总结
sudo mv /usr/local/bin/ld /usr/local/bin/ld.back //移除
sudo make MALLOC=libc //编译
sudo mv /usr/local/bin/ld.back /usr/local/bin/ld //恢复
sudo make install
依次执行这几条命令即可