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

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

    <bug>
          <bug_id>45251</bug_id>
          
          <creation_ts>2023-02-10 19:36:11 +0300</creation_ts>
          <short_desc>gem: Permission denied @ dir_s_mkdir - /var/cache/ruby/gemie/rubygems.org%443</short_desc>
          <delta_ts>2023-12-14 01:51:16 +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>ruby</component>
          <version>unstable</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</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="Vitaly Chikunov">vt</reporter>
          <assigned_to name="majioa@altlinux.org">majioa</assigned_to>
          <cc>3aHyga</cc>
    
    <cc>admsasha</cc>
    
    <cc>cas</cc>
    
    <cc>majioa</cc>
    
    <cc>mike</cc>
    
    <cc>nbr</cc>
    
    <cc>pav</cc>
    
    <cc>rider</cc>
    
    <cc>thatman</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221532</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2023-02-10 19:36:11 +0300</bug_when>
    <thetext>В Сизифе gem не работает под пользователем.

$ docker run --rm -it alt:sisyphus
[root@a8f79b19db3b /]# apt-get install gem su -y
[root@a8f79b19db3b /]# useradd -m test
[root@a8f79b19db3b /]# su - test
su: wtmp open: No such file or directory
[test@a8f79b19db3b ~]$ gem search blake3

*** REMOTE GEMS ***

ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ dir_s_mkdir - /var/cache/ruby/gemie/rubygems.org%443
[test@a8f79b19db3b ~]$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision a21a3b7d23) [x86_64-linux]

Естественно, gem install --user-install тоже не работает:

[test@a8f79b19db3b ~]$ gem install --user-install blake3
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ dir_s_mkdir - /var/cache/ruby/gemie/index.rubygems.org%443

ps. Для сравнения, то же самое работает в p10:

$ docker run --rm -it alt
[root@40632f4f8194 /]# apt-get install gem su -y
[root@40632f4f8194 /]# useradd -m test
[root@40632f4f8194 /]# su - test
su: wtmp open: No such file or directory
[test@40632f4f8194 ~]$ gem search blake3

*** REMOTE GEMS ***

blake3 (0.1.3)
digest-blake3 (1.3.3.1)
uncle_blake3 (0.0.3)
[test@40632f4f8194 ~]$ ruby -v
ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]

Спасибо,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221533</commentid>
    <comment_count>1</comment_count>
    <who name="Малъ Скрылевъ">3aHyga</who>
    <bug_when>2023-02-10 20:09:13 +0300</bug_when>
    <thetext>А rbenv / rvm под пользователемъ стоятъ ли? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221534</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2023-02-10 20:18:38 +0300</bug_when>
    <thetext>Приведён пример в докере на чистой системе где ничего лишнего не стоит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221536</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2023-02-10 22:24:14 +0300</bug_when>
    <thetext>Думаю, дело в этом патче
https://git.altlinux.org/gears/r/ruby.git?p=ruby.git;a=blob;f=use_system_dirs.patch;h=93a09f10d8ebec87347cb6df8f979c032ec2c9b6;hb=ba8e6639df48a84f91a8457ce05305c5ea08fa7d#l103
why why</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221537</commentid>
    <comment_count>4</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2023-02-10 22:27:43 +0300</bug_when>
    <thetext>Сюдя по нему вы специально отключили возможность использовать пользовательские диры для гемов</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221538</commentid>
    <comment_count>5</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2023-02-10 22:40:56 +0300</bug_when>
    <thetext>Кстати если отревертить верхнюю часть патча, то все равно вылезет ошибки:

$ gem install --user-install blake3
Building native extensions. This could take a while...
ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory @ rb_sysopen - libexec/helix

Что за libexec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221539</commentid>
    <comment_count>6</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2023-02-10 22:52:39 +0300</bug_when>
    <thetext>(In reply to Vitaly Chikunov from comment #5)
&gt; Кстати если отревертить верхнюю часть патча, то все равно вылезет ошибки:
&gt; 
&gt; $ gem install --user-install blake3
&gt; Building native extensions. This could take a while...
&gt; ERROR:  While executing gem ... (Errno::ENOENT)
&gt;     No such file or directory @ rb_sysopen - libexec/helix
&gt; 
&gt; Что за libexec.

libexec из этого же патча (строка 257) и дальше

$ gem install --user-install digest-blake3
Successfully installed digest-blake3-1.3.3.1
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ dir_s_mkdir - /usr/share/doc/ruby-3.1.0/digest-blake3-1.3.3.1

Предположу, что весь этот патч надо ревертить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221541</commentid>
    <comment_count>7</comment_count>
    <who name="Малъ Скрылевъ">3aHyga</who>
    <bug_when>2023-02-11 00:45:58 +0300</bug_when>
    <thetext>gem install --user-install digest-blake3


Куда это ставитъ жемы? въ обшее дерево? тогда это запрещено, и такъ и задумывалось, чтобы не мусорить въ общее дерево пакетовъ. Если нужны самоцвѣты въ user-space, то для этого рекомендованъ, rvm. Тоже самое касается и root-а, не рекомендовано ставить самоцвѣты въ корневое дерево, рекоменованъ способъ rvm-а, въ которомъ, подцѣпляется системный ruby съ его жемами, и переиспользуются они уже локально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221542</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2023-02-11 01:14:18 +0300</bug_when>
    <thetext>Не понял про &quot;общее дерево&quot;. `gem install --user-install digest-blake3` должен был поставить digest-blake3 пользователю в его личный ~/.gem. Что в этом запретного?

RVM это удобство для работы с разными версиями интерпретатора и наборами гемов — надстройка, которая не должна ломать основной функционал. На этом аккаунте не предполагается работать с несколькими версиями ruby интерпретаторов и наборами гемов. (Кроме того, если разработчику rvm может быть удобно, то пользователю может быть удобно другое.)

ЕСЛИ в Альте этот базовый функционал gem запрещён некой политикой (никаких &quot;рекомендаций&quot; про rvm не нашел), ТО эта штука не должна просто падать по ошибке, А должна выводить пояснение пользователю.

ps. &quot;Рекомендованный&quot; RVM у нас вообще не запакован:

  $ grep bin/rvm /ALT/Sisyphus/*/base/contents_index
  $

Неужто для рекомендованный работы с ruby из репозитория в Альте надо тянуть `curl&apos;ом | bash` из инета какую-то утилиту?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221543</commentid>
    <comment_count>9</comment_count>
    <who name="Малъ Скрылевъ">3aHyga</who>
    <bug_when>2023-02-11 01:50:17 +0300</bug_when>
    <thetext>(Ответ для Vitaly Chikunov на комментарий #8)
&gt; Не понял про &quot;общее дерево&quot;. `gem install --user-install digest-blake3`
&gt; должен был поставить digest-blake3 пользователю в его личный ~/.gem. Что в
&gt; этом запретного?

Значитъ просто нужно исправить, чтобы онъ его туда ставилъ, а не откатывать патчъ. Я перепровѣрую эту проблему.

RVM планируется собрать, но вообщԑ,rvm-овцы рекомендутъ ставить его съ ихъ сайта.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238873</commentid>
    <comment_count>10</comment_count>
    <who name="Малъ Скрылевъ">3aHyga</who>
    <bug_when>2023-12-12 15:58:46 +0300</bug_when>
    <thetext>Послѣ обновленеія по dist-upgrade нужно перелогиниться :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238979</commentid>
    <comment_count>11</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2023-12-14 01:51:16 +0300</bug_when>
    <thetext>ruby-3.1.4-alt1 -&gt; sisyphus:

 Mon Nov 13 2023 Pavel Skrylev &lt;majioa@altlinux&gt; 3.1.4-alt1
 - ^ 3.1.2 -&gt; 3.1.4 (closes #47868)
 - * moved build to rvm
 - * BREAK: changed some things to rpm-build-macros
 - ! fixed:
  + CVE-2022-39253 for bundler
  + enabled permissions to /var/lib/ruby/gemie/ (closes #45251)
  + enable running gemserver (closes #48325)
  + custom gem installation (closes #47660)
  + loading ruby&apos;s so libraries (closes #48249)
  + drop explicit dependencies to libs including ssl1.1 (closes #48713)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>