Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Nginx, error while loading shared libraries: libruby.so.2.3:

Игнат Сухов Ученик (102), закрыт 5 месяцев назад
Я собрал nginx с модулем ngx_ruby https://github.com/rryqszq4/ngx_ruby . Когда я пытаюсь запустить nginx -V или start, я получаю сообщение об ошибке:
 error while loading shared libraries: libruby.so.2.3: cannot open shared object file: No such file or directory 
У меня установлены: rvm 1.29.12, ruby 2.3.8p459

Пути к libruby.so.2.3:
 /usr/share/rvm/rubies/ruby-2.3.8/lib/libruby.so.2.3 
/usr/share/rvm/src/ruby-2.3.8/libruby.so.2.3
/usr/local/rvm/rubies/ruby-2.3.8/lib/libruby.so.2.3
/usr/local/rvm/src/ruby-2.3.8/libruby.so.2.3
Я переуствановил rvm, установил libruby2.3_2.3.8 из deb файла, но это не дало результатов.

Похоже на то, что nginx ищет libruby.so.2.3 по конкретному пути.

Как я могу решить эту проблему?

nginx V 1.26.1 ruby V 2.3.8 OS Ubuntu 24.04 LTS
Лучший ответ
Терр Онтал Мудрец (13226) 5 месяцев назад
У тебя установлены те переменные окружения, что в ридми в этом репозиторий написаны?
Игнат СуховУченик (102) 5 месяцев назад
export RUBY_INC=/usr/share/rvm/rubies/ruby-2.3.8/include/ruby-2.3.0/
export RUBY_LIB=/usr/local/rvm/rubies/ruby-2.3.8/lib/

в /usr/local/rvm/rubies/ruby-2.3.8/lib/ была символьная ссылка

/usr/local/rvm/rubies/ruby-2.3.8/lib/libruby.so.2.3 -> libruby.so.2.3.0

Я ее удалил и просто продублировал файл ibruby.so.2.3.0 , убрав 0 из названия, не помогло)
Игнат СуховУченик (102) 5 месяцев назад
Может, есть способ узнать, по какому пути пытается проследовать nginx? Просто, если он тычется в другой путь, тогда тут все будет ясно, а если в /usr/local/rvm/rubies/ruby-2.3.8/lib/libruby.so.2.3 , то это будет уже мистика какая-то
Игнат СуховУченик (102) 5 месяцев назад
Помогло добавление символьных ссылок во всех стандартных директориях, используемых для хранения libruby.so.2.3 . Выяснить к какой именно из директорий обращается nginx, не удалось, прикладываю пути:
 /usr/local/lib/libruby.so.2.3  

/usr/lib/libruby.so.2.3

/lib/x86_64-linux-gnu/libruby.so.2.3

/usr/lib/x86_64-linux-gnu/libruby.so.2.3

/usr/local/rvm/rubies/ruby-2.3.8/lib/libruby.so.2.3

/usr/local/rvm/src/ruby-2.3.8/libruby.so.2.3

/opt/ruby/lib/libruby.so.2.3

/usr/local/lib64/libruby.so.2.3

/usr/lib64/libruby.so.2.3

/lib64/libruby.so.2.3
P.S Использую эту ветку для ответа на свой вопрос, но буду рад, если кто-то захочет выяснить, из какой именно из этих директорий nginx подтягивает либу.
Остальные ответы
Похожие вопросы