Bug 48249

Summary: wrong ELF class: ELFCLASS32 - /usr/lib/ruby/psych.so (LoadError)
Product: Sisyphus Reporter: Alexander Makeenkov <amakeenk>
Component: ruby-stdlibsAssignee: majioa <majioa>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: 3aHyga, cas, imz, led, majioa, mike, nbr, pav, rider, stalker
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Alexander Makeenkov 2023-10-30 11:02:54 MSK
Версия пакета:
ruby-3.1.2-alt2.1.x86_64

Шаги воспроизведения:

# apt-get install ruby i586-ruby-stdlibs

$ cat > helloworld.rb <<EOF
class HelloWorld
   def initialize(name)
      @name = name.capitalize
   end
   def sayHi
      puts "Hello #{@name}!"
   end
end

hello = HelloWorld.new("World")
hello.sayHi
EOF

$ ruby helloworld.rb

Получаемый результат:

/usr/lib/ruby/psych.rb:13:in `require': /usr/lib/ruby/psych.so: wrong ELF class: ELFCLASS32 - /usr/lib/ruby/psych.so (LoadError)
        from /usr/lib/ruby/psych.rb:13:in `<top (required)>'
        from /usr/lib/ruby/rubygems.rb:609:in `require'
        from /usr/lib/ruby/rubygems.rb:609:in `load_yaml'
        from /usr/lib/ruby/rubygems/config_file.rb:360:in `load_file'
        from /usr/lib/ruby/rubygems/config_file.rb:189:in `initialize'
        from /usr/lib/ruby/rubygems.rb:331:in `new'
        from /usr/lib/ruby/rubygems.rb:331:in `configuration'
        from /usr/lib/ruby/rubygems/defaults.rb:85:in `default_specifications_dir'
        from /usr/lib/ruby/rubygems/specification.rb:869:in `load_defaults'
        from /usr/lib/ruby/rubygems.rb:1347:in `<top (required)>'
        from <internal:gem_prelude>:2:in `require'
        from <internal:gem_prelude>:2:in `<internal:gem_prelude>'

Если удалить пакет i586-ruby-stdlibs, то ошибки нет:

$ ruby helloworld.rb 
Hello World!

Аналогичная ошибка появляется так же и при запуске gem:

$ gem
/usr/lib/ruby/psych.rb:13:in `require': /usr/lib/ruby/psych.so: wrong ELF class: ELFCLASS32 - /usr/lib/ruby/psych.so (LoadError)
        from /usr/lib/ruby/psych.rb:13:in `<top (required)>'
        from /usr/lib/ruby/rubygems.rb:609:in `require'
        from /usr/lib/ruby/rubygems.rb:609:in `load_yaml'
        from /usr/lib/ruby/rubygems/config_file.rb:360:in `load_file'
        from /usr/lib/ruby/rubygems/config_file.rb:189:in `initialize'
        from /usr/lib/ruby/rubygems.rb:331:in `new'
        from /usr/lib/ruby/rubygems.rb:331:in `configuration'
        from /usr/lib/ruby/rubygems/defaults.rb:85:in `default_specifications_dir'
        from /usr/lib/ruby/rubygems/specification.rb:869:in `load_defaults'
        from /usr/lib/ruby/rubygems.rb:1347:in `<top (required)>'
        from <internal:gem_prelude>:2:in `require'
        from <internal:gem_prelude>:2:in `<internal:gem_prelude>'
Comment 1 Малъ Скрылевъ 2023-12-11 19:43:27 MSK
Тутъ не имѣеть смысла использовать пакетъ i586, онъ не поддерживается. Для x86_64 нужно ruby-stdlibs использовать
Comment 2 Alexander Makeenkov 2023-12-11 20:12:32 MSK
(Ответ для Малъ Скрылевъ на комментарий #1)
> Тутъ не имѣеть смысла использовать пакетъ i586, онъ не поддерживается. Для
> x86_64 нужно ruby-stdlibs использовать

Это не отменяет того, что установка этого пакета приводит к ошибке.
Comment 3 Repository Robot 2023-12-14 01:51:13 MSK
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)
Comment 4 Alexander Makeenkov 2024-02-07 13:09:47 MSK
ruby-3.1.4-alt2.1 - ошибка воспроизводится по шагам из описания.
Comment 5 Repository Robot 2024-02-11 09:54:25 MSK
ruby-3.1.4-alt3 -> sisyphus:

 Wed Feb 07 2024 Pavel Skrylev <majioa@altlinux> 3.1.4-alt3
 - + allow access to gem cache for ruby group instead of rvm (closes #48325)
 - * rearranged load path (closes #48249)