如题,我想升级Redis,从7.2升级到7.4。我查了下,apt-get upgrade是升级所有的包,但是我不需要升级所有的包,请问如何只升级Redis的包呢?
如题,我想升级Redis,从7.2升级到7.4。我查了下,apt-get upgrade是升级所有的包,但是我不需要升级所有的包,请问如何只升级Redis的包呢?
在Ubuntu中,如果你想要升级指定的包(比如Redis),你可以使用apt-get
命令结合install
参数,并通过指定包的版本来尝试安装新版本。然而,需要注意的是,Ubuntu的官方仓库中可能并不总是包含最新版本的软件。如果Redis 7.4不在你的Ubuntu版本的官方仓库中,你可能需要添加额外的PPA(个人软件包存档)或使用其他方式来安装新版本。
不过,这里有一个基本的命令来尝试升级Redis包(如果新版本已经在你的仓库中):
sudo apt-get update
sudo apt-get install redis-server=版本号
但是,这里有一个问题:通常你不会直接指定版本号后面的修订号(比如,你可能只会看到7.2
而不是7.2.3
这样的具体版本),并且apt-get install
命令后直接跟版本号可能不总是按预期工作,特别是当仓库中没有那个确切版本时。
更常见的做法是先更新你的包索引(apt-get update
),然后简单地使用apt-get install
(不带版本号)来尝试升级所有可升级的包,或者对于特定的包,你可以使用apt-cache madison
命令来查看可用版本,然后决定如何操作。
例如,查看Redis的可用版本:
apt-cache madison redis-server
如果7.4
版本出现在列表中,你可以尝试直接安装它,但通常你会看到类似7.2
这样的主要版本号。
如果Ubuntu的官方仓库中没有Redis的最新版本,你可能需要考虑以下选项之一:
请注意,升级系统组件(如Redis)时,请确保你了解新版本可能带来的任何兼容性问题或配置更改。
ubuntu 升级指定包的命令就是apt install <package_name>
,和安装包是一个命令。
你可以使用 apt policy <package_name>
命令列出所有可用的包版本,使用 apt install <package_name>=<version>
升级或降级到具体某个版本,不写版本就是最新版本(最新版本通常是由policy的权重值算出来了,这个权重是可以修改的,这里不展开)
如果你想固定你的包版本为某个值,不希望被apt upgrade
或apt full-upgrade
整体更新,可以使用 apt-mark hold <package_name>
标记该软件包版本由人工控制,不受到系统整体更新影响
1 回答2.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.3k 阅读
2 回答1.1k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
Linux这种滚动发行的就是这样,要升级单独一个包,如果使用包管理器的更新命令,会将整个操作系统更新,这就是推荐的方式。
而且也是建议这么干的,如果你把新的Redis弄下来,Redis依赖的其他库与系统依赖的库冲突就比较麻烦。
我看你是从7.2->7.4,影响具体不清楚,但我不知道你的7.2怎么安装的。
1.如果你是源码编译安装
那你去拉7.4的源码,再次编译一下(
make
&&make install
),看能不能用2.如果你是
apt
安装的这次就不要
apt
了,你会破坏系统的依赖,你可以去下载tar
包,解压出来后,给redis
起个别名redis74
这么使用,与原来的不冲突3.如果你是
dpkg
安装的你先看看你当前安装的
7.2
是不是跟你的系统匹配,有可能上一个人手动解决依赖了,你当前系统版本实际上应该是且他版本,如果正好是7.4
,直接升级就行了4.如果你是
tar
安装的下载
7.4
的tar
放在另外的目录下,起个别名用就行了最后上面都不是,或者你只是体验下新功能,直接
docker
跑一个就行了,影响最小,还没烦恼。