Как использовать "update-альтернативы" для управления несколькими установленными версиями одного и того же приложения

Я часто сталкиваюсь с проблемами, связанными с путями, во время компиляции или запуска приложения. У меня в системе есть две версии узла: одна из официального репо, другая установлена ​​вручную из исходного кода. Сегодня я хотел собрать скобки, когда я бегу npm install он попросил меня использовать более позднюю версию, такую ​​как 1.4.20. Версия по умолчанию в /usr/bin/npm который не работал. Вручную установлен в /usr/local/bin/npm

Есть ли способ сделать /usr/local/bin/npm как путь по умолчанию, используя update-alternatives или другой метод?

Например, вы можете установить текстовый редактор по умолчанию с

    sudo update-alternatives --config editor

2 ответа

Решение

Я нашел, как это сделать. Сначала я проверил путь по умолчанию 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      

Это работает хорошо

Поскольку вы упомянули узел, я подумал, что могу указать, что это хорошая возможность использовать менеджер установки N для NodeJS. Если у меня есть менеджер пакетов "более высокого уровня", такой как этот, я обычно использую его вместо альтернативных обновлений. Как правило, это менее сложно, чем пытаться самостоятельно отслеживать важные файлы, IMO. Тем не менее, я думаю, что альтернативы обновления все еще будут работать.

Другие вопросы по тегам