安装redis-执行make命令报错解决方法

问题原因:未安装GCC

cd hiredis && make static
make[3]: 进入目录“/opt/redis-3.0.4/deps/hiredis”
gcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c
make[3]: gcc:命令未找到
make[3]: *** [net.o] 错误 127
make[3]: 离开目录“/opt/redis-3.0.4/deps/hiredis”
make[2]: *** [hiredis] 错误 2
make[2]: 离开目录“/opt/redis-3.0.4/deps”
make[1]: [persist-settings] 错误 2 (忽略)
    CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/opt/redis-3.0.4/src”
make: *** [all] 错误 2

解决方案:

linux环境有网的情况下执行命令:
如果没网看这篇linux连接不上网络

yum install gcc-c++
<think>好的,我现在要解决用户在Linux系统中执行redis-server时出现的“未找到命令”问题。根据用户提供的引用和之前的回答,我需要综合这些信息来找到可行的解决方案。 首先,用户提到在Linux系统中执行redis-server时报错,这可能是因为系统无法找到该命令的位置。引用[2]和[3]都提到了类似的问题,其中引用[2]建议将redis-server设置为全局命令,而引用[3]则提到可能需要清理旧的编译文件。此外,引用[4]提到了编译时缺少jemalloc库的问题,这可能导致安装失败,进而导致命令不存在。 我需要先确认用户是否正确安装Redis。根据之前的安装步骤,用户通过源码编译安装,默认路径是/usr/local/bin。如果安装成功,redis-server应该位于这个目录下。但用户可能没有将安装路径添加到系统的PATH环境变量中,或者安装过程中出现了问题。 可能的解决方案包括: 1. 检查Redis是否正确安装,确认/usr/local/bin目录下是否有redis-server。 2. 如果安装正确,将该目录添加到PATH中,或者创建符号链接到/usr/bin目录,如引用[2]提到的ln -s命令3. 如果安装失败,可能需要重新编译安装,注意解决依赖问题,如引用[4]中的jemalloc错误,可以通过make MALLOC=libc来指定内存分配器。 4. 确保用户在执行命令时使用了正确的路径,例如使用绝对路径/usr/local/bin/redis-server,或者进入安装目录执行./redis-server。 另外,用户之前提供的安装步骤中,第5步是make && sudo make install,这应该将可执行文件安装到/usr/local/bin。如果这一步没有执行成功,或者权限不足,可能导致安装失败,从而找不到命令。需要检查安装过程中是否有错误信息,并根据错误提示解决依赖或编译问题。 总结可能的解决步骤: - 确认安装是否成功,检查/usr/local/bin是否有redis-server。 - 添加符号链接到/usr/bin或更新PATH。 - 重新编译安装解决依赖问题。 - 使用绝对路径执行命令。</think>在Linux系统中遇到`redis-server: 未找到命令`错误时,可通过以下步骤排查解决--- ### 一、检查安装状态 1. **验证安装路径** Redis默认安装到`/usr/local/bin`,执行以下命令确认文件是否存在: ```bash ls /usr/local/bin/redis-server ``` - 若存在:说明安装成功但未配置全局路径 - 若不存在:说明安装失败或路径错误 2. **查看编译安装日志** 如果安装过程中未报错但文件缺失,检查编译步骤是否完整: ```bash cd redis-7.0.12 # 进入源码目录 make clean # 清理旧编译文件 make && sudo make install # 重新编译安装 ``` --- ### 二、配置全局访问 #### 情况1:安装成功但未全局链接 1. **创建符号链接** 将`redis-server`链接到系统命令目录(如`/usr/bin`): ```bash sudo ln -s /usr/local/bin/redis-server /usr/bin/redis-server ``` 2. **验证命令可用性** ```bash which redis-server # 应输出/usr/bin/redis-server ``` #### 情况2:安装路径未加入PATH 1. **临时添加PATH** ```bash export PATH=$PATH:/usr/local/bin ``` 2. **永久生效(推荐)** 在`~/.bashrc`或`/etc/profile`末尾添加: ```bash echo &#39;export PATH=$PATH:/usr/local/bin&#39; >> ~/.bashrc source ~/.bashrc ``` --- ### 三、修复安装失败问题 若**步骤一**中未找到`redis-server`,需重新安装解决依赖: 1. **解决jemalloc编译错误** 编译时若报错`jemalloc/jemalloc.h:没有文件或目录`,需指定内存分配器: ```bash make MALLOC=libc # 使用libc代替jemalloc[^4] sudo make install ``` 2. **安装依赖库** 确保已安装编译工具链: ```bash sudo yum install -y gcc tcl libc6-dev # CentOS sudo apt-get install build-essential libc6-dev # Ubuntu ``` --- ### 四、验证解决方案 1. **启动Redis服务** ```bash redis-server /etc/redis/redis.conf # 使用配置文件启动 ``` 2. **检查进程状态** ```bash ps -ef | grep redis-server # 应显示运行中的进程 ``` --- ### 五、其他可能原因 - **权限问题**:使用`sudo`执行命令或检查文件权限: ```bash sudo chmod +x /usr/local/bin/redis-server ``` - **多版本冲突**:若系统存在多个Redis实例,明确指定绝对路径: ```bash /usr/local/redis/bin/redis-server # 根据实际路径调整[^5] ``` --- ### 六、总结流程图 ```plaintext 执行redis-server报错 → 检查/usr/local/bin是否存在 → │ ├─ 存在 → 配置PATH或创建符号链接 → 解决 │ └─ 不存在 → 重新编译安装 → │ ├─ 解决jemalloc错误 → 编译成功 → 解决 │ └─ 检查依赖库 → 安装后重试 → 解决 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值