我正在将老旧的 Debian 11 (bullseye) 服务器上的 NodeJS 和 NPM 升级到最新的 LTS 版本。我清除了发行版中原有的nodejs和npm软件包及依赖项,并使用nodesource成功安装了 NodeJS v22.15.0 和 NPM v10.9.2 。
我现在正试图删除nodejs-legacy包 — — 我假设 — — 可能不再需要了,但是apt和apt-get(它们在这方面的行为完全相同)都抱怨:
$ sudo apt remove nodejs-legacy
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Virtual packages like 'nodejs-legacy' can't be removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
据我所知,虚拟软件包仅定义依赖项和/或安装配置文件。为什么一个软件包,即使是“虚拟”的(或者随便怎么叫)也无法卸载?apt(或apt-get)不能直接更新软件包数据库和/或删除上述文件吗?
这个特定的包甚至不属于任何依赖项:
$ sudo apt depends nodejs-legacy
<nodejs-legacy>
$ sudo apt rdepends nodejs-legacy
<nodejs-legacy>
我想我可以把它留在那里,因为它似乎与其他任何东西都不冲突(至少目前是这样)。但我宁愿让我的服务器远离那些垃圾。
删除 Debian 系统中不再需要的旧虚拟包的推荐方法是什么?