18

运行 make 命令时,在 RHEL 上安装 Redis 失败。下面是输出

cd src && make all
make[1]: Entering directory `/root/Downloads/redis-3.2.0/src'
    CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/Downloads/redis-3.2.0/src'
make: *** [all] Error 2
4

10 回答 10

111

跑步

make distclean

接着

make

解决了这个问题

于 2016-05-10T18:57:05.033 回答
6

这是由于机器中没有 gcc 编译器而发生的。首先安装 gcc:

$ sudo apt install gcc

然后尝试

make

肯定会解决这个问题。我在ubuntu 18.04上试过。

于 2018-12-29T18:35:42.797 回答
4

Redis只有在/deps目录下的Dependenices:hiredis lua jemalloc linenoise解决后才会创建redis-serverredis-cli文件。我不得不多次在 deps 目录中运行 make 命令来解决依赖关系。

以下是我遵循的步骤:

cd <redisInstallationPath> (I have it under /opt/mount1/redis-3.0.7)
make distclean
cd deps/

不止一次地解决依赖关系。

make lua hiredis linenoise
make jemalloc
make hiredis
make linenoise

再次做了同样的事情,因为有一些丢失的文件。我认为您只需要正确组合即可。多次运行 make 命令,直到正确为止。

make hiredis lua jemalloc linenoise
make hiredis
make lua 
make jemalloc 
make linenoise

cd /opt/mount1/redis-3.0.7/
make

-> 我在这里遇到了一些错误,找不到文件hiredis/libhiredis.a,因此我再次继续解决依赖问题。

cd deps
make jemalloc 
make hiredis

llhiredis/libhiredis.a -> 生成一个文件

cd /opt/mount1/redis-3.0.7/
make

现在我得到以下输出:

cd src && make all
make[1]: Entering directory `/opt/mount1/redis-3.0.7/src'
LINK redis-server
INSTALL redis-sentinel
CC redis-cli.o
LINK redis-cli
CC redis-benchmark.o
LINK redis-benchmark
CC redis-check-dump.o
LINK redis-check-dump
CC redis-check-aof.o
LINK redis-check-aof

Hint: It's a good idea to run 'make test' ;)

make[1]: Leaving directory `/opt/mount1/redis-3.0.7/src'

你可以到 Redis 安装路径(在我的例子中:/opt/mount1/redis-3.0.7 目录)来启动服务器。

src/redis-server

并在另一个终端运行“redis-cli”以连接到 Redis 服务器。

src/redis-cli

例子:

127.0.0.1:6379> incr counter
(integer) 1
127.0.0.1:6379> get counter
"1"
127.0.0.1:6379> exit

我通过这篇文章http://michael.otacoo.com/redis/redis-first-steps-fetch-install-and-server-creation/解决了我的问题

于 2016-08-30T11:35:01.760 回答
3

放弃基于操作系统的安装,尝试了多种解决方案,一些依赖总是失败

节点救援

还有其他安装 Node 和 NPM 的方法,以下步骤是在Centos / RHEL上使用Yum

# Add NodeSource yum repository
curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -

# Additional dependencies if required
yum install gcc-c++ make -y

# Install Node.js and npm 
yum install nodejs -y

# install redis-cli
npm install -g redis-cli

# connect to redis endpoint
rdcli -h redis.host
 # or
rdcli -h redis.host -a redis.password -p 1111

一旦连接运行

PING

回应应该是

乒乓

验证连通性

cache.amazonaws.com:6379> PING
PONG
于 2020-06-16T19:11:13.403 回答
1

在linux中

可能是一些需要的文件丢失了,可以用libc6-dev包安装。

这对我有用:-

转到您的 redis 目录并在终端中运行以下命令:-

sudo apt-get install libc6-dev
make distclean && make
于 2020-02-05T15:53:23.533 回答
0

此错误可能表明您需要使用 sudo 运行 make:sudo make

之后您可能会遇到:

../deps/jemalloc/lib/libjemalloc.a(nstime.o): In function nstime_get':     /opt/redis_src/current/redis-stable/deps/jemalloc/src/nstime.c:120:     undefined reference toclock_gettime'

如果是这样,请参阅: https ://github.com/antirez/redis/issues/3790

于 2017-02-07T22:06:06.327 回答
0

在centos上

yum install gcc glibc
tar zxvf redis-5.0.3.tar.gz
cd redis-5.0.3
cd deps
make hiredis jemalloc linenoise lua geohash-int
cd ..
make install
cd utils
./install_server.sh

额外提示

To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128
于 2020-01-08T19:54:53.500 回答
0

你应该使用 Ubuntu PPA

$ sudo add-apt-repository ppa:redislabs/redis
$ sudo apt-get update
$ sudo apt-get install redis
于 2022-02-09T22:41:07.567 回答
0

我猜是3.2.0版本丢失了一些文件,因为我遇到了和你一样的问题,我通过下载另一个redis 3.0.7版本解决了,下载链接是

http://download.redis.io/releases/redis-3.0.7.ta​​r.gz

然后,解压文件并像之前一样运行命令,只需进入redis目录并输入命令'make'

祝你好运

于 2016-05-09T03:51:47.290 回答
0

那不应该发生。一个可能的原因可能是您的制作工具比当前版本旧得多。要更新它们,请运行:

yum install make gcc gcc-c++ kernel-devel

这将安装最少的软件包,但如果即使这样也不能解决问题,请尝试安装完整的组:

yum install make gcc gcc-c++ kernel-devel

阅读更多:https ://superuser.com/questions/151557/what-are-build-essential-build-dep

于 2016-05-09T02:49:18.240 回答