node-nightly-25.8.2-alt2 Стенды, обновленные до Sisyphus: ALT Education KDE 11.1 x86-64 ALT Education XFCE 11.1 x86-64 ALT K Workstation 11.3 x86-64 ALT Workstation 11.1 x86-64 ALT Server 11.1 x86-64 Шаги, приводящие к ошибке: 1) Установить node и npm: # apt-get install node npm 2) Установить node-nightly: # apt-get install node-nightly 3) Удалить пакет node-nightly: # apt-get remove node-nightly 4) Проверить наличие и работоспособность команд node и npm: # ls -l /usr/bin/node /usr/bin/npm # node -v # npm -v Фактический результат: node: команда не найдена, npm: команда не найдена Ожидаемый результат: Вывод версии программ node и npm соответствующих им пакетов в терминал, бинарные файлы node и npm не удалились из /usr/bin/ Дополнительно: node-nightly регистрирует alternatives для /usr/bin/node, /usr/bin/npm. После установки node-nightly команды node/npm переключаются на реализации из node-nightly. После удаления node-nightly ссылки не восстанавливаются на реализации из пакетов node/npm, удаляются бинарные файлы node/npm из /usr/bin/
Видимо это жукъ въ alternatives
Проблема в том, что пакеты node и npm не участвуют в системе альтернатив и не регистрируют свои файлы в /etc/alternatives/packages.d (нет файлов для node/npm). # rpm -q node npm node-nightly node-22.22.2-alt1.x86_64 npm-10.9.7-alt1.noarch node-nightly-25.8.2-alt2.x86_64 # l /etc/alternatives/packages.d | grep -E "node|npm" -rw-r--r-- 1 root root 348 мая 15 17:42 node-nightly Следовательно, нужно либо делать альтернативы для node и npm, либо не использовать альтернативы для node-nightly. Технические подробности: 1. При установке node-nightly срабатывает триггер alternatives-update. Так как /usr/bin/node не является ссылкой альтернатив, утилита переименовывает его в /usr/bin/node.alternatives_save. 2. Файл /usr/bin/npm (который в оригинальном пакете является симлинком) просто перезаписывается ссылкой альтернатив без сохранения. 3. При удалении node-nightly система альтернатив удаляет свои ссылки из /usr/bin/, но: * Не восстанавливает бинарный файл из .alternatives_save. * Не может восстановить симлинк npm, так как он не был сохранен. Это происходит именно из-за того, что основные пакеты node и npm "не знают", что их файлы теперь управляются через alternatives.
(Ответ для Alexander Makeenkov на комментарий #2) > Проблема в том, что пакеты node и npm не участвуют в системе альтернатив и > не регистрируют свои файлы в /etc/alternatives/packages.d (нет файлов для > node/npm). > именно поэтому это и не проблема node-nightly и node включительно
(Ответ для Малъ Скрылевъ на комментарий #3) > именно поэтому это и не проблема node-nightly и node включительно Зачем делать альтеративу для пакетов, которые альтернативы не предоставляют?