web-dev-qa-db-fra.com

comment utiliser "update-alternatives" pour gérer plusieurs versions installées de la même application

Je rencontre fréquemment des problèmes liés au chemin lors de la compilation ou de l'exécution d'une application.J'ai deux versions de noeud dans mon système, l'une provient du dépôt officiel, l'autre installée manuellement du code source. Aujourd'hui, je voulais compiler crochets, lorsque je lance npm install, il m'a demandé d'utiliser une version ultérieure telle que 1.4.20. La version par défaut de celui-ci est dans /usr/bin/npm qui n'a pas fonctionné. Celui installé manuellement est dans /usr/local/bin/npm

Existe-t-il un moyen de définir /usr/local/bin/npm comme chemin par défaut à l'aide de update-alternatives ou d'une autre méthode?

Par exemple, vous pouvez définir l’éditeur de texte par défaut avec

    Sudo update-alternatives --config editor
2
kenn

J'ai trouvé comment faire ça. Au début, j'ai vérifié le chemin par défaut de npm qui est une version plus ancienne (1.3.10) dans /usr/bin/npm, j'ai remarqué qu'il s'agissait d'un lien symbolique vers /usr/share/npm/bin/npm-cli.js je l'ai supprimé.

    Sudo unlink /usr/bin/npm

Puis j'ai essayé de suivre la commande

   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

Maintenant, je peux facilement basculer entre eux en utilisant

  Sudo update-alternatives --config npm      

Ça marche bien

2
kenn

Puisque vous avez mentionné le noeud , je pensais pouvoir vous indiquer que c’était une bonne occasion d’utiliser le gestionnaire d’installation N pour NodeJS . Si j'ai un gestionnaire de paquets "de niveau supérieur" comme celui-ci, je l'utilisera généralement sur update-alternatives . C’est généralement moins compliqué que d’essayer de retrouver des fichiers importants vous-même, IMO. Cela dit, je pense que update-alternatives fonctionnera toujours.

1
killthrush