我已经安装了redis onn linux。 redis sever正确启动但是当我尝试启动redis-cli时出现此错误
bash:redis-cli:找不到命令
文件redis-cli输出
ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接(使用共享库),用于GNU / Linux 2.6.18,BuildID [sha1] = 0x5fe1c6d3da13df88f2ea826ac762f088c29b81d5,未剥离
答案 0 :(得分:8)
我不知道是什么原因 但是当我运行使用此命令时
/ usr / local / bin / redis-cli工作
但是当我从/ usr / local / bin /文件夹运行redis-cli时出现错误
bash:redis-cli:找不到命令
看起来有些路径问题
答案 1 :(得分:1)
似乎redis-cli
存在,阅读你的答案。请使用which redis-cli
。
我已经在几台linux机器上安装了redis,通常它非常流畅。我想你已经遇到了一个特例。
这是我的想法:
这可能是一个动态链接问题。
因此请使用dump -H -X64 redis-cli
检查标头。
在标题中,您可以看到它尝试查找的共享对象。在这种方式中可能存在来自另一个包的共享对象,例如仅32位的一个。丑陋,错误,但它发生了。
使用ldd
运行时依赖性检查程序查看这些标头在您的系统上实际产生的结果。不存在时安装它。然后只需运行ldd redis-cli
。
现在你已经弄清楚了什么是错的,你可以做几件事。
1)如果可能,删除冲突的包。
2)在开始流程之前,使用LIBENV
环境变量设置共享对象的搜索路径
3)在编译/链接时使用-blibpath
链接器选项来更改标题,为其提供不同的搜索路径。 -bnolibpath
也可以帮助您。
4)之后修补标题。有这方面的工具。这通常不是首选方式。
希望这有帮助,TW
修改强>
虽然make
,make test
和make install
总是很好,但服务器安装脚本install_server.sh
总是有点儿错误。这已在2.8.8中修复。我建议使用最新版本。
编辑2:
OP的问题与动态链接无关,这是一个简单的PATH问题。出于历史目的,我将答案保留原样。
答案 2 :(得分:1)
如果您是从源构建的,并且您位于包含源的默认>>> l2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> l1 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M']
>>> l2
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> l2[5:9] = l1[5:9]
>>> l2
[0, 1, 2, 3, 4, 'F', 'G', 'H', 'I', 9, 10]
目录中,则应该能够通过运行来启动cli:
typedef void (*option_fun_t)(Vector<WindLog> &VecObj);
option_fun_t option_fun[] = {option1, option2, option3, option4};
choice = getUserChoice();
option_fun[choice-1](VecObj);
答案 3 :(得分:0)
这可能是因为可执行文件不在路径中。为了解决这个问题,您可以尝试使用以下命令复制 redis-cli
文件夹中的 /usr/local/bin/
:
sudo cp /src/redis-cli /usr/local/bin/