-
Notifications
You must be signed in to change notification settings - Fork 118
Description
Gathering of information (the whole story)
I'm in the process of moving servers from Ubuntu 16 to Ubuntu 18.
On Ubuntu 16, Passenger was providing both nginx-extras
and passenger
together.
Readjusting for Ubuntu 18 (following the official guide for Ubuntu 18), I read:
At this point we assume that you already have Nginx installed from your system repository. If not, you should install Nginx with the following command
sudo-apt-get install nginx
If we read the NGINX installation documentation for Ubuntu, we can read (emphasis mine):
The package can be installed from:
- A default Ubuntu repository. This is the quickest way, but generally the provided package is outdated.
- The official repo at nginx.org. You have to set up the apt-get repository the first time, but after that the provided package is always up to date.
NGINX is here explicitly recommending to use their official repo and not the default Ubuntu repository (the documentation for that can be found here).
If we use the official NGINX repository to install nginx
, and then follow the Passenger guide, we'll get that error installing ibnginx-mod-http-passenger=1:6.0.4-1~bionic1
:
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
nginx : Conflicts: nginx-common but 1.14.0-0ubuntu1.7 is to be installed
Conflicts: nginx-common:i386
In the Passenger 6.0.3 release notes, it is written:
[Nginx] Bumps the preferred Nginx version to 1.17.3 (previously 1.15.8).
This point has been addressed a bit at phusion/passenger#2122 (comment), and the answer at phusion/passenger#2122 (comment) indicates:
if you're using a non system nginx, then you'll want to use these instructions to compile the passenger dynamic module against your nginx sources: https://www.phusionpassenger.com/library/install/nginx/install_as_nginx_module.html
My opinion
- Documentation should very clearly state (if I'm correct!) that using NGINX provided repository won't work (if that's indeed confirmed and there is no workaround!). Going through the various issues, a number of people are tripped out by this.
- While I believe Ubuntu nginx
1.14.0
is inmain
and therefore should have security fixes, I think it's a bit sad to install by default such an outdated version. - Installing the dynamic module (the workaround for this, documented in https://www.phusionpassenger.com/library/install/nginx/install_as_nginx_module.html) is more complicated than what the situation was for Ubuntu xenial.
- It would be great to support the NGINX repository by default, without having to use a dynamic module (but I understand that there is probably a lot of work to get this, otherwise you would have done it!)
Note that I'm not requesting/being entitled to anything (I'm a OSS maintainer myself), merely documenting my surprise.
I've been using Passenger happily since 2008 (I gave a donation back then), but the upgrade from Ubuntu xenial to Ubuntu bionic is more work than my clients would have expected. We are considering migrating to Puma instead, which makes me a bit sad.
Again, not requesting anything - just documenting what I thought would be easier, in hope it will help others, and maybe improve the documentation on that part.