<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>59346</bug_id>
          
          <creation_ts>2026-05-27 16:37:27 +0300</creation_ts>
          <short_desc>Удаление пакета node-nightly приводит к удалению /usr/bin/node и /usr/bin/npm</short_desc>
          <delta_ts>2026-05-29 16:11:52 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>node-nightly</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Великий Руслан Олегович">velikijro</reporter>
          <assigned_to name="majioa@altlinux.org">majioa</assigned_to>
          <cc>3aHyga</cc>
    
    <cc>amakeenk</cc>
    
    <cc>k0tran</cc>
    
    <cc>majioa</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288425</commentid>
    <comment_count>0</comment_count>
    <who name="Великий Руслан Олегович">velikijro</who>
    <bug_when>2026-05-27 16:37:27 +0300</bug_when>
    <thetext>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/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288432</commentid>
    <comment_count>1</comment_count>
    <who name="Малъ Скрылевъ">3aHyga</who>
    <bug_when>2026-05-27 18:05:03 +0300</bug_when>
    <thetext>Видимо это жукъ въ alternatives</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288616</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2026-05-29 16:01:53 +0300</bug_when>
    <thetext>Проблема в том, что пакеты 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 &quot;node|npm&quot;
-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 &quot;не знают&quot;, что их файлы теперь управляются через alternatives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288618</commentid>
    <comment_count>3</comment_count>
    <who name="Малъ Скрылевъ">3aHyga</who>
    <bug_when>2026-05-29 16:07:24 +0300</bug_when>
    <thetext>(Ответ для Alexander Makeenkov на комментарий #2)
&gt; Проблема в том, что пакеты node и npm не участвуют в системе альтернатив и
&gt; не регистрируют свои файлы в /etc/alternatives/packages.d (нет файлов для
&gt; node/npm).
&gt; 
именно поэтому это и не проблема node-nightly и node включительно</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288620</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2026-05-29 16:11:52 +0300</bug_when>
    <thetext>(Ответ для Малъ Скрылевъ на комментарий #3)
&gt; именно поэтому это и не проблема node-nightly и node включительно

Зачем делать альтеративу для пакетов, которые альтернативы не предоставляют?</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>