Bug 56316 - Пустые gem и лишние default .gemspec
Summary: Пустые gem и лишние default .gemspec
Status: NEW
Alias: None
Product: Branch p11
Classification: Unclassified
Component: ruby-stdlibs (show other bugs)
Version: unspecified
Hardware: x86 Linux
: P5 normal
Assignee: majioa@altlinux.org
QA Contact: qa-p11@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-10-08 15:33 MSK by gfh1gfh1
Modified: 2025-10-13 16:41 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description gfh1gfh1 2025-10-08 15:33:18 MSK
ALT Server 11.1

# rpm -qa|grep ruby-std
ruby-stdlibs-3.1.4-alt4.4.x86_64

По факту данный пакет не содержит стандартные библиотеки и при этом ещё и имеет файлы фиксирующие старые версии как дефолтные

Например
# gem list --local | grep psych
psych (default: 4.0.4)

Но при этом каталог gem пустой
# ls -la /usr/lib/ruby/gemie/gems/psych-4.0.4/
итого 0
drwxr-xr-x 1 root root    0 мая 16  2024 .
drwxr-xr-x 1 root root 1806 окт  8 15:08 ..

и создан "дефолтный" файл фиксирующий версию 4.0.4 - /usr/lib/ruby/gemie/specifications/default/psych-4.0.4.gemspec

Если поставить из репозитария пакет gem-psych-5.2.3-alt1, то "дефолтный" файл будет указывать на несуществующий 4.0.4 как дефолтный
# gem list --local | grep psych
psych (5.2.3, default: 4.0.4)

что соответственно будет вызывать проблемы

Например
# /usr/lib/ruby/bin/oxidized
/usr/lib/ruby/rubygems/specification.rb:2309:in `raise_if_conflicts': Unable to activate oxidized-0.34.3, because psych-4.0.4 conflicts with psych (~> 5.0) (Gem::ConflictError)
        from /usr/lib/ruby/rubygems/specification.rb:1419:in `activate'
        from /usr/lib/ruby/rubygems.rb:286:in `block in activate_bin_path'
        from /usr/lib/ruby/rubygems.rb:285:in `synchronize'
        from /usr/lib/ruby/rubygems.rb:285:in `activate_bin_path'
        from /usr/lib/ruby/bin/oxidized:26:in `<main>'

Если же удалить "дефолтный" файл, то:
# /usr/lib/ruby/bin/oxidized
edit /root/.config/oxidized/config
Comment 1 Dmitry Maksimenkov 2025-10-13 15:54:34 MSK
Проверялось на Sisyphus, ошибка не воспроизвелась.
Comment 2 Малъ Скрылевъ 2025-10-13 16:40:59 MSK
> because psych-4.0.4 conflicts with psych

Съ конфликтомъ нѣкторыхъ psych-овъ извѣстный вопросъ въ upstream, обычно лѣчится либо другими версіями рубей, либо bundle-омъ.

Что касается положенія psych самаго, то всѣ default-ные самоцвѣты находятся въ /usr/lib/ruby/ какъ обычные vendor-модули.
Comment 3 Малъ Скрылевъ 2025-10-13 16:41:49 MSK
И проверяется напр. что-то вродѣ такого: 

$ pry
require 'psych'