网站首页 > 技术文章 正文
# 在 linux 系统下(Debian/Ubuntu 系统中 make install) 编译安装 redis 出现错误:/bin/sh: 1: cc: not found
## 一、错误解释:
这个错误表明在使用 /bin/sh 作为脚本解释器时,尝试执行命令 cc,但是在环境变量 $PATH 指定的目录下没有找到名为 cc 的可执行文件。cc 通常是 C 编译器的名称,在某些系统中可能被称为 gcc。
## 二、解决方法:
### 1、安装 gcc
```bash
sudo apt-get install build-essential
# 查看 gcc 或 cc 安装版本
gcc -v
cc -v
```
### 2、如果 gcc 编译器已安装,确认编译器的实际名称。可能你的系统中 C 编译器不叫 cc,而是叫 gcc。建立 cc 软链接。
```bash
# 查看 gcc 或 cc 安装路径
which gcc
which cc
# 建立 cc 软链接。
sudo ln -s /usr/bin/gcc /usr/bin/cc
```
### 3、确保编译器 gcc 的安装路径被包含在环境变量 $PATH 中。
```bash
# 查看当前的 $PATH 值
echo $PATH
# 修改用户的 .bashrc、.bash_profile 或 .profile 文件
# 或者临时使用 export 添加正确路径
PATH=$PATH:/path/to/compiler
```
### 4、如果 gcc 已经安装,又出现错误:zmalloc.h:50:10: fatal error: jemalloc/jemalloc.h: No such file or directory)可使用以下命令编译并安装 redis :
jemalloc 是一个用于替代标准内存管理函数的分配器,它可以显著提高多线程应用程序的内存分配性能。也可以尝试安装它。
如果你不想使用 jemalloc,可以在编译 Redis 或其他依赖 zmalloc.h 的项目时指定使用标准的内存分配器。这通常可以通过在编译时定义宏 REDIS_USE_JEMALLOC 为 0 或不定义该宏来实现。
```bash
# 不安装 jemalloc 进行编译安装 redis
make CFLAGS="-DUSE_JEMALLOC=0" install
# 或者执行(上次执行有失败)
make distclean
make && make install
# 或者 : 安装 jemalloc 后,进行编译安装 redis
sudo apt-get jemalloc
make install
```
猜你喜欢
- 2024-10-14 Ubuntu19.10系统的软件安装与卸载命令
- 2024-10-14 VMware下安装VMware tools,安装文件没有出现问题的解决
- 2024-10-14 大白话 linux 教程-09-安装和卸载软件包
- 2024-10-14 ubuntu下安装ssh(ubuntu下安装windows10)
- 2024-10-14 蓝易云 - Ubutun开机黑屏解决方法
- 2024-10-14 银河麒麟系统密码忘记了,修改密码和微信安装方法
- 2024-10-14 ubuntu离线apt-get更新源(ubuntu 离线升级)
- 2024-10-14 树莓派安装opencv3.4.0遇到的坑(树莓派安装opencv完整过程)
- 2024-10-14 linux 系统 没有 ifconfig 命令,提示: ifconfig: command not found
- 2024-10-14 go get 命令一直下载不了源站的包解决方案
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)