gpt4 book ai didi

redis - Homebrew:如何删除 redis/4.0.2 并使用 redis@3.2 作为我的默认 redis

转载 作者:IT王子 更新时间:2023-10-29 06:03:51 24 4
gpt4 key购买 nike

我开始这个任务时安装了 redis/3.0.3,并希望将我的本地开发 redis 升级到版本 3.2.3,这是我们在生产中运行的版本。我最终运行了 brew upgrade redis,它在我想要的版本之前安装了 redis 4.0.2。然后我发现你可以用brew install redis@3.2安装3.2.x。此外,在尝试清理 4.0.2 时,它只清理了 3.0.3。

现在我陷入了 Homebrew 不允许我卸载 redis/4.0.2 并将 redis@3.2 视为单独的 Homebrew Formula 的情况。

$ brew switch redis 3.2
Error: redis does not have a version "3.2" in the Cellar.
Versions available: 4.0.2

看看 Cellar 中它们如何显示为单独的公式:

$ ls  /usr/local/Cellar/ | grep redis  
redis
redis@3.2

删除 redis/4.0.2 并使用 redis@3.2 作为我的默认 redis 的正确“Homebrew ”方法是什么,以便向 redis-serverredis-cli 引用 3.2 代替? 我正在运行 Mac OS X Yosemite 10.10.5 和 Homebrew 1.3.4。

$ ls -l /usr/local/bin/ | grep redis
lrwxr-xr-x 1 jsoro wheel 41 Oct 5 12:51 redis-benchmark -> ../Cellar/redis/4.0.2/bin/redis-benchmark
lrwxr-xr-x 1 jsoro wheel 41 Oct 5 12:51 redis-check-aof -> ../Cellar/redis/4.0.2/bin/redis-check-aof
lrwxr-xr-x 1 jsoro wheel 41 Oct 5 12:51 redis-check-rdb -> ../Cellar/redis/4.0.2/bin/redis-check-rdb
lrwxr-xr-x 1 jsoro wheel 35 Oct 5 12:51 redis-cli -> ../Cellar/redis/4.0.2/bin/redis-cli
lrwxr-xr-x 1 jsoro wheel 40 Oct 5 12:51 redis-sentinel -> ../Cellar/redis/4.0.2/bin/redis-sentinel
lrwxr-xr-x 1 jsoro wheel 38 Oct 5 12:51 redis-server -> ../Cellar/redis/4.0.2/bin/redis-server

最佳答案

这个问题是微不足道的,如果 Brew 文档/常见问题解答更清楚的话,问题可能会更容易。 Brew FAQs说卸载由 brew cleanup <formula> 处理,这就是导致我的 redis/3.0.3 被删除的原因。然而,brew cleanup不会删除 redis/4.0.2。为了删除它,我使用了 brew uninstall ,我在文档中找不到...

$ brew uninstall redis
Uninstalling /usr/local/Cellar/redis/4.0.2... (11 files, 2.7MB)

然后,解决 redis@3.2 未在 /usr/local/bin/ 下链接的问题,我首先尝试卸载/重新安装 redis@3.2 以查看 Homebrew 是否会处理它......

$ ls -l /usr/local/bin/ | grep redis
$ brew uninstall redis@3.2
Uninstalling /usr/local/Cellar/redis@3.2/3.2.11... (11 files, 1.7MB)
$ brew install redis@3.2
==> Downloading http://download.redis.io/releases/redis-3.2.11.tar.gz
## TRIMMED ##
==> Summary
🍺 /usr/local/Cellar/redis@3.2/3.2.11: 11 files, 1.7MB, built in 10 seconds

当然,这并没有创建符号链接(symbolic link)——实际上是我从输出中删除的 Caveats 部分明确说明了这一点并提供了建议。我没有使用他们的建议,而是选择手动创建符号链接(symbolic link):

$ cd /usr/local/bin/
$ ls -l | grep redis
$
$ ln -s /usr/local/Cellar/redis\@3.2/3.2.11/bin/redis-check-aof redis-check-aof
$ ln -s /usr/local/Cellar/redis\@3.2/3.2.11/bin/redis-check-rdb redis-check-rdb
$ ln -s /usr/local/Cellar/redis\@3.2/3.2.11/bin/redis-cli redis-cli
$ ln -s /usr/local/Cellar/redis\@3.2/3.2.11/bin/redis-sentinel redis-sentinel
$ ln -s /usr/local/Cellar/redis\@3.2/3.2.11/bin/redis-server redis-server
$ ls -l | grep redis
lrwxr-xr-x 1 jsoro wheel 54 Oct 5 14:27 redis-check-aof -> /usr/local/Cellar/redis@3.2/3.2.11/bin/redis-check-aof
lrwxr-xr-x 1 jsoro wheel 54 Oct 5 14:27 redis-check-rdb -> /usr/local/Cellar/redis@3.2/3.2.11/bin/redis-check-rdb
lrwxr-xr-x 1 jsoro wheel 48 Oct 5 14:27 redis-cli -> /usr/local/Cellar/redis@3.2/3.2.11/bin/redis-cli
lrwxr-xr-x 1 jsoro wheel 53 Oct 5 14:27 redis-sentinel -> /usr/local/Cellar/redis@3.2/3.2.11/bin/redis-sentinel
lrwxr-xr-x 1 jsoro wheel 51 Oct 5 14:26 redis-server -> /usr/local/Cellar/redis@3.2/3.2.11/bin/redis-server

最后要注意的是,由于我在 redis/4.0.2 版本下运行了 redis-server,因此 dump.rdb 文件不再兼容。正在运行 redis-server在 4.x dump.rdb 上使用 redis 3.2.x 会导致服务器立即退出。

$ redis-server
## TRIMMED ##
38504:M 05 Oct 14:29:07.234 # Server started, Redis version 3.2.11
38504:M 05 Oct 14:29:07.259 # Can't handle RDB format version 8
38504:M 05 Oct 14:29:07.260 # Fatal error loading the DB: Invalid argument. Exiting.

很遗憾,您需要 rm dump.rdb ,或删除/重命名 dump.rdb 文件,以使 redis-server 重新启动。

关于redis - Homebrew:如何删除 redis/4.0.2 并使用 redis@3.2 作为我的默认 redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46594596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com