В Сизифе 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] Спасибо,
А rbenv / rvm под пользователемъ стоятъ ли? :)
Приведён пример в докере на чистой системе где ничего лишнего не стоит.
Думаю, дело в этом патче 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
Сюдя по нему вы специально отключили возможность использовать пользовательские диры для гемов
Кстати если отревертить верхнюю часть патча, то все равно вылезет ошибки: $ 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.
(In reply to Vitaly Chikunov from comment #5) > Кстати если отревертить верхнюю часть патча, то все равно вылезет ошибки: > > $ 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. 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 Предположу, что весь этот патч надо ревертить.
gem install --user-install digest-blake3 Куда это ставитъ жемы? въ обшее дерево? тогда это запрещено, и такъ и задумывалось, чтобы не мусорить въ общее дерево пакетовъ. Если нужны самоцвѣты въ user-space, то для этого рекомендованъ, rvm. Тоже самое касается и root-а, не рекомендовано ставить самоцвѣты въ корневое дерево, рекоменованъ способъ rvm-а, въ которомъ, подцѣпляется системный ruby съ его жемами, и переиспользуются они уже локально.
Не понял про "общее дерево". `gem install --user-install digest-blake3` должен был поставить digest-blake3 пользователю в его личный ~/.gem. Что в этом запретного? RVM это удобство для работы с разными версиями интерпретатора и наборами гемов — надстройка, которая не должна ломать основной функционал. На этом аккаунте не предполагается работать с несколькими версиями ruby интерпретаторов и наборами гемов. (Кроме того, если разработчику rvm может быть удобно, то пользователю может быть удобно другое.) ЕСЛИ в Альте этот базовый функционал gem запрещён некой политикой (никаких "рекомендаций" про rvm не нашел), ТО эта штука не должна просто падать по ошибке, А должна выводить пояснение пользователю. ps. "Рекомендованный" RVM у нас вообще не запакован: $ grep bin/rvm /ALT/Sisyphus/*/base/contents_index $ Неужто для рекомендованный работы с ruby из репозитория в Альте надо тянуть `curl'ом | bash` из инета какую-то утилиту?
(Ответ для Vitaly Chikunov на комментарий #8) > Не понял про "общее дерево". `gem install --user-install digest-blake3` > должен был поставить digest-blake3 пользователю в его личный ~/.gem. Что в > этом запретного? Значитъ просто нужно исправить, чтобы онъ его туда ставилъ, а не откатывать патчъ. Я перепровѣрую эту проблему. RVM планируется собрать, но вообщԑ,rvm-овцы рекомендутъ ставить его съ ихъ сайта.
Послѣ обновленеія по dist-upgrade нужно перелогиниться :)
ruby-3.1.4-alt1 -> sisyphus: Mon Nov 13 2023 Pavel Skrylev <majioa@altlinux> 3.1.4-alt1 - ^ 3.1.2 -> 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's so libraries (closes #48249) + drop explicit dependencies to libs including ssl1.1 (closes #48713)