如何使用“update-alternatives”管理同一应用程序的多个安装版本

如何使用“update-alternatives”管理同一应用程序的多个安装版本

我在编译或运行应用程序时经常遇到与路径相关的问题。我有两个版本的节点在我的系统中,一个来自官方仓库,另一个手动从源代码安装。今天我想编译括号,当我运行npm install它时,它要求我使用更高版本,例如 1.4.20。它的默认版本是,/usr/bin/npm它不起作用。手动安装的版本是/usr/local/bin/npm

有什么方法可以将 /usr/local/bin/npm其用作默认路径update-alternatives或其他方法?

例如,您可以使用以下方式设置默认文本编辑器

    sudo update-alternatives --config editor

答案1

我找到了解决方法。首先,我检查了 npm中的旧版本 (1.3.10)的默认路径/usr/bin/npm,我注意到它是一个符号链接, /usr/share/npm/bin/npm-cli.js我将其删除

    sudo unlink /usr/bin/npm

然后我尝试以下命令

   sudo update-alternatives --install /usr/bin/npm  npm /usr/local/bin/npm 10
   sudo update-alternatives --install /usr/bin/npm  npm /usr/share/npm/bin/npm-cli.js 20

现在我可以轻松地在它们之间切换

  sudo update-alternatives --config npm      

效果很好

答案2

既然你提到节点,我想我可以指出,这是一个很好的机会来利用NodeJS 的 N 安装管理器。如果我有像这样的“更高级别”的包管理器,我通常会使用它更新替代方案。在我看来,这通常比自己尝试查找重要文件要简单得多。话虽如此,我认为更新替代方案仍可工作。

相关内容