• 注册
  • 经验分享 经验分享 关注:4 内容:15179

    linux安装redis make报错

  • 查看作者
  • 打赏作者
  • Lv.10
    封号会员

    在Linux系统中安装Redis时,可能会遇到各种编译错误,其中make命令报错是最常见的问题之一,以下是关于解决这些错误的一些详细指导。

    linux安装redis make报错
    (图片来源网络,侵删)

    需要明确的是,在尝试编译和安装Redis之前,必须确保系统中已安装了所有必要的依赖项,以下是编译Redis时可能遇到的几个常见错误及其解决办法。

    错误一:make: [server.o] Error 1

    这个错误通常是由于GCC编译器版本过低造成的,Redis官网提供的源码可能需要较新版本的GCC来编译,在基于CentOS的系统上,可以按照以下步骤升级GCC:

    1、安装SCL(Software Collections)仓库,它提供了不同版本的编译器和其他工具。

    “`

    yum y install centosreleasescl

    “`

    2、安装特定版本的GCC和其他开发工具。

    “`

    yum y install devtoolset9gcc devtoolset9gccc++ devtoolset9binutils

    “`

    3、激活SCL环境(为了立即使用新版本的GCC)。

    “`

    scl enable devtoolset9 bash

    “`

    4、为了永久更改默认的GCC版本,可以将以下行添加到/etc/profile或用户的.bashrc文件中。

    “`

    echo “source /opt/rh/devtoolset9/enable” >> /etc/profile

    “`

    重新登录或执行source ~/.bashrc来应用更改。

    错误二:/bin/sh: cc: command not found

    这个错误表明系统中找不到cc命令,它通常是GCC编译器的链接,这通常意味着没有安装GCC或环境变量配置不正确。

    解决方案是安装GCC:

    “`

    yum install gcc

    “`

    或者对于Debian/Ubuntu系统:

    “`

    aptget install buildessential

    “`

    错误三:zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory

    这个错误表示编译器无法找到jemalloc头文件,虽然Redis可以使用不同的内存分配器,但默认情况下,它试图使用jemalloc。

    解决方案是安装jemalloc:

    “`

    yum install jemallocdevel

    “`

    或者对于Debian/Ubuntu系统:

    “`

    aptget install libjemallocdev

    “`

    如果不希望安装jemalloc,也可以在编译Redis时禁用它:

    “`

    make MALLOC=libc

    “`

    错误四:make[2]: cc: Command not found

    这个错误与错误二类似,通常是因为没有正确安装GCC或者环境变量没有更新。

    确保执行以下步骤:

    安装GCC。

    如果更新了GCC版本,确保已重新加载了配置文件(例如.bashrc或/etc/profile)。

    错误五:couldn’t execute tclsh8.5”: no such file or directory

    这个错误发生在运行make test时,因为Redis的测试套件是用Tcl编写的。

    解决方案是安装Tcl:

    “`

    yum install tcl

    “`

    或者对于Debian/Ubuntu系统:

    “`

    aptget install tcl

    “`

    结论

    在尝试编译和安装Redis时,遇到make错误是很常见的,关键是要确保所有必要的依赖项都已正确安装,并且GCC版本符合编译Redis的要求,上述步骤应该可以帮助解决大多数常见的编译错误。

    在按照上述步骤操作后,重新运行make命令,通常可以成功编译Redis,如果仍然遇到问题,检查错误消息,它们可能会提供进一步诊断问题的线索,查阅Redis的官方文档和社区论坛,也可以为解决特定的编译错误提供帮助。

    请登录之后再进行评论

    登录
  • 快速发布
  • 任务
  • 实时动态
  • 偏好设置
  • 帖子间隔 侧栏位置: