phusion / passenger

A fast and robust web server and application server for Ruby, Python and Node.js
https://www.phusionpassenger.com/
MIT License
5k stars 547 forks source link

Cannot install passenger-6.0.20-1.el9.x86_64.rpm on CentOS 9 Stream with Ruby 3.3 #2529

Closed paul-palmer closed 6 months ago

paul-palmer commented 6 months ago

Please follow the steps below if you have found an issue with Passenger, or would like to request a feature.

Post to Stack Overflow instead if you are not sure, or if you have a question about your configuration.


Issue report

Cannot install passenger-6.0.20-1.el9.x86_64.rpm on CentOS9 stream with Ruby 3.3 installed from the CentOS repos. The issue appears to be a dependency mismatch between what CentOS Ruby packages install and what the passenger package expects.

Are you sure this is a bug in Passenger? Please read our troubleshooting and debugging guides first: https://www.phusionpassenger.com/library/admin/troubleshooting/ https://www.phusionpassenger.com/library/admin/

Please try with the newest version of Passenger to avoid issues that have already been fixed

Question 1: What is the problem?

Be as detailed as possible in your descriptions, include any logs and stack traces (don't just cut/paste the error, provide some logging before that too).

(if you are requesting a feature instead of reporting an issue, describe here what you have in mind and how it would help you)

Your answer:

The expected behavior is a successful installation. What actually happens is that the installation fails because as no CentOS package with Ruby 3.3 installed satisfies the dependency on libruby.so.3.0.

"dnf install passenger" reports:

Problem: package passenger-6.0.20-1.el9.x86_64 from passenger requires libruby.so.3.0()(64bit), but none of the providers can be installed.

The root of the problem seems to be that installing Ruby 3.3, installs ruby-libs-3.3.0-1.module_el9+862+220991ec.x86_64 which installs /usr/lib64/libruby.so.3.3, and /usr/lib64/libruby.so.3.3.0 which does not satisfy the dependency.

Question 2: Passenger version and integration mode:

Your answer: passenger-6.0.20-1.el9.x86_64 from https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo

Question 3: OS or Linux distro, platform (including version):

Your answer: CentOS 9 Stream

Question 4: Passenger installation method:

Your answer: [ ] RubyGems + Gemfile [ ] RubyGems, no Gemfile [ ] Phusion APT repo [x] Phusion YUM repo [ ] OS X Homebrew [ ] source tarball [ ] Other, please specify:

Question 5: Your app's programming language (including any version managers) and framework (including versions):

Your answer:

Ruby 3.3 installed from CentOS repos:

dnf module -y reset ruby
dnf module -y enable ruby:3.3
dnf install ruby

Question 6: Are you using a PaaS and/or containerization? If so which one?

Your answer: No. Running a CentOS VM on ESXi.

Question 7: Anything else about your setup that we should know?

Your answer: None that I can think of.


We strive for quality and appreciate you taking the time to submit a report! Please note that if you want guaranteed response times and priority issue support we encourage you to join our enterprise customer base. They also provide us with the means to continue our high level of open source support!

Raidm404 commented 6 months ago

The package maintainers build the RPMS against the default OS-provided version of Ruby. The RHEL9 clones have ruby 3.0 . You should install the default runy and the passenger. Then install your custom ruby 3,3 on another location (/opt/ruby33) , then use that ruby in your passenger apps. Another solution is to build a passenger RPM yourself for Ruby 3.3. I have done this and tested it. It works fine.

paul-palmer commented 6 months ago

That you for clarifying.