Столкнулся сегодня с забавной проблемой с node.js на ubuntu. При установке nvm(аналог rvm, только для Node.js) последний отказался работать. Приложение просто крашилось при запуске. Изучение процесса его работы с помощью strace показало, что команда бинарник node ведёт себя как-то странно

open("/etc/ax25/axports", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=200, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0d3e465000 read(4, "# /etc/ax25/axports\n#\n# The form"..., 4096) = 200

Оказалось, что выполнение команды node в ubuntu имеет определённую особенность. В частности, вызов данного приложения приводит к выводу предупреждения

No AX.25 port data configured

которое говорит о том, что в репозиториях ubuntu присуствует пакет node(ПО для радиолюбителей), которое по какой-то причине было установлено на ПК. В результате при запуске приложений вроде nvm происходит запуск команды node, которая(вот так сюрприз) не имеет ничего общего с node.js, ругается на то, что порт AX.25 не настроен, и досрочно прекращает своё выполнение.

Решается данная проблема двумя способами.

Способ первый

sudo apt-get --purge remove node sudo apt-get --purge remove nodejs sudo apt-get install nodejs sudo apt-get install npm sudo ln -s /usr/bin/nodejs /usr/bin/node

Второй способ

Так-же решить данную проблему можно, отредактировав файл /usr/local/bin/nvm (у меня он установлен глобально), для чего необходимо заменить

#!/usr/bin/env node

на

#!/usr/bin/env nodejs

Подведём итоги

После выполнения любого из данных способов nvm будет работать корректно. Так как данная проблема касается не только nvm, мне больше по душе первый метод решения проблемы. Но если в душе вы - радиолюбитель, и без приложения node вам и жизнь не мила, Вам больше подойдёт второй способ решения данной проблемы.