Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu non-LTS non-support #1662

Closed
oerdnj opened this issue Oct 14, 2021 · 40 comments
Closed

Ubuntu non-LTS non-support #1662

oerdnj opened this issue Oct 14, 2021 · 40 comments

Comments

@oerdnj
Copy link
Owner

oerdnj commented Oct 14, 2021

After some thought, these repositories will not support the non-LTS Ubuntu versions. It requires an extra effort to add all the packages to the new Ubuntu release, and it does consume computing cycles every time there's a new PHP (or any other package updates).

The release cycle on non-LTS Ubuntu release is just 9 months this feels like a waste of just everything. There also doesn't seem to be a very high demand for these packages - only a handful of people wrote here, to mail or on Twitter asking for Ubuntu Impish support.

Ubuntu 21.10 Impish Indri will be the last non-LTS release supported.

@cegparamesh
Copy link

Dear @oerdnj, First, a sincere thanks for your PPAs.

I am having a dependency issue after upgrading to Impish:
php7.3-common seems to depend on libpcre2-dev

Setting up php-common (2:84+ubuntu21.04.1+deb.sury.org+1) ...
dpkg: dependency problems prevent configuration of libpcre2-dev:amd64:
 libpcre2-dev:amd64 depends on libpcre2-posix2 (= 10.38-2+ubuntu21.04.1+deb.sury.org+1); however:
  Package libpcre2-posix2:amd64 is not installed.

When I try to install libpcre2-posix2 though, it conflicts with another dependency that is already installed:

Preparing to unpack .../libpcre2-posix2_10.38-2+ubuntu21.04.1+deb.sury.org+1_amd64.deb ...
Unpacking libpcre2-posix2:amd64 (10.38-2+ubuntu21.04.1+deb.sury.org+1) ...
dpkg: error processing archive /var/cache/apt/archives/libpcre2-posix2_10.38-2+ubuntu21.04.1+deb.sury.org+1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/libpcre2-posix.so.3', which is also in package libpcre2-posix3:amd64 10.37-0ubuntu2

Can you please suggest a solution? Thanks much!

@oerdnj
Copy link
Owner Author

oerdnj commented Oct 15, 2021

You are using Ubuntu 21.04 packages on Ubuntu 21.10, and reporting this to the issue that says that I will most probably not create packages for Ubuntu 21.10. What exactly did you expect to happen?

@cegparamesh
Copy link

Now I understand what you meant in your first post :) I was thinking it could be somewhat backwards compatible.
So basically we cannot use the PPAs in 21.10 and have to be in 21.04 or the next version. Thanks!

@jacobseated
Copy link

21.10 is severely messed up, and that is not just with the official php8.0 packages, but also with other packages.

One way to avoid this would be to run servers + PHP in a VM instead of from the main OS. That's likely the route I will take moving forward..

@baldhead
Copy link

Make sense, though I guess a lot of people will be disappointed - including me :) Always appreciated your awesome work. Will you update this topic if you will do this version - if not, I'll revert my OS to 21.04 (which also has a 9 months EOL cycle) Thanks and either way ... looking forward to the 22.04 version then!

@jacobseated
Copy link

As a temporary solution, at least for my web-projects, I will just install 21.04 in a VM and share my www or web directory with the VM.

It looks like downgrading without re-installing can be a complicated process :-P

@oerdnj
Copy link
Owner Author

oerdnj commented Oct 16, 2021

Here's a question to start a discussion.

What is the particular use case that makes you run the latest Ubuntu release as a web server.

I can understand the desktop as development machine where you want to run the latest desktop environment and all the PHP versions.

@jacobseated
Copy link

Possibly because I have a Ryzen laptop with poor hardware support, and I am desperately waiting for better support for AMD graphics in VirtualBox.

I can not run hardware accelerated software in my Windows VM currently, and I suspect the issue may be Kernel related. I have also had different issues in the past that was resolved by updating the Kernel.

And, it seems we now need signed Ubuntu Kernels because of modern bios configurations. Possibly this is related to secure boot or something — and Kernels are only signed on official releases afaik

But, other then that, I actually prefer to run the latest software on my main system, and then Snaps or Appimages when available. Interestingly, FFMpeg also broke, so I had to compile a standalone to get video conversion working, but that was in the beta, and I have not checked if the dependencies has been fixed in the final 21.10 release.

I wanted to try and move my servers to a VM for some time, and now I finally got shared folders working; I figure, why not give it a try for now, because it seem to enable me to test the latest software more freely :-)

@Ayesh
Copy link

Ayesh commented Oct 17, 2021

What is the particular use case that makes you run the latest Ubuntu release as a web server.

I've been hopping between non-LTS versions to get some new features in apache2 and libcurl. A few years back, Apache 2.4.18 added proper HTTP/2 support, and it took a few Ubuntu releases to make it to official Ubuntu repos.
I also relied on some newer features in libcurl, and hopping to the latest non-LTS version made it easier to get them instead of compiling libcurl and all packages that depend on it myself.

That said, I completely understand the massive work it takes to add 21.10 and other new targets with short lifespans. Thank you! I don't know how many of us use the latest non-LTS versions on production servers, but it certainly seems like a minority.

@oerdnj
Copy link
Owner Author

oerdnj commented Oct 17, 2021

For apache2, there's ppa:ondrej/apache2 and for nginx, there are ppa:ondrej/nginx and ppa:ondrej/nginx-mainline.

@stadja
Copy link

stadja commented Oct 18, 2021

I do understand that it is a lot of work to make all what to be done for a short spanned version.
Do you have a recommendation for another PPA than yours to be used with impish ?

That would be really really really helpful :)

And thank you for your awesome work.

@oerdnj
Copy link
Owner Author

oerdnj commented Oct 18, 2021

I didn't say I am not going to do that. But I would like to have a discussion if and how it's useful apart from "I have to run the latest Ubuntu" use case. Especially, when we are talking about the production environments.

@stadja
Copy link

stadja commented Oct 18, 2021

Well in my case it is kind of a silly reason and it's not for a production server, but for my dev machine.

I am a freelance. And I have many different clients with many different server specs: i can't have a différent VM for all my clients.
One of my client is stuck with PHP7.4 right now and can't upgrade to PHP8.*

On my dev machine, a long time ago, I really don't know why, I switched my do-release-upgrade from "lts" to "normal" (i know, it's bad.)
And this weekend, I was not thinking about it and made the upgrade from 21.04 to 21.10... and know, I can't dev for my client because I don't have the right PHP)

I made plenty of mistake (lts to normal and upgrade without thinking), that is why I am looking for a way to be able to keep working for this client.... the other way will be te reinstall a lts ubuntu on my machine. But I kind of fear this prospect (will I lose a lot of time ? will I lose some strange configurations I did 5 years ago ? that kind of things)

@oerdnj
Copy link
Owner Author

oerdnj commented Oct 18, 2021

I would suggest you use docker or podman (or even just simple chroot) to have a matching environment to what your client uses. That would solve your problem and at the same time improve compatibility with the production environment.

@oerdnj
Copy link
Owner Author

oerdnj commented Oct 18, 2021

FTR for my $dayjob I have a beefier machine in the "basement" with Proxmox installed and have multiple operating systems and versions in separate VMs for testing compatibility when there's a problem in the CI.

I found out that long-term it's better to separate the development environment from the "desktop" machine, because they usually have different lifecycles.

@jonathanbossenger
Copy link

@oerdnj I completely respect your decision. Is this something that someone else could do, if they were interested in contributing? Or would handing that over also be a considerable amount of your time and resources?

@jacobseated
Copy link

I also agree it's probably not worth the effort.

In my case, my production environment is of course running LTS, so it's really just my own problem that I haven't setup a proper dev environment on my laptop that's separated from my personal stuff.

Today I just noticed the specific dependency issue, in my situation, seems to have been resolved in the official repositories, so I am now able to install php8.0-gd — but I realize it is probably best to continue using a VM for my dev-environment, so it does not really matter to me at this point.

@stadja
Copy link

stadja commented Oct 20, 2021

So, as right now I am stuck with Impish and I really needed a php 7.4 working, this is what I did:

I added the repo

sudo add-apt-repository ppa:ondrej/php

edited the sources.list.d

sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-php-impish.list

I changed the impish main to hirsute main and now it's okay, I can install and use my php7.4

sudo apt-get install php7.4 php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-mysql php7.4-mbstring  php7.4-zip php7.4-fpm php7.4-intl php7.4-simplexml
sudo a2dismod php8.0
sudo a2enmod php7.4
sudo update-alternatives --set php /usr/bin/php7.4
sudo update-alternatives --set phar /usr/bin/phar7.4
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4

I hope it helps someone somewhere :)

(next time I won't upgrade that thoughtlessly... you can think that 15 years using linux teaches you that ... but nop)

@NicoHaase
Copy link

I am a freelance. And I have many different clients with many different server specs: i can't have a différent VM for all my clients. One of my client is stuck with PHP7.4 right now and can't upgrade to PHP8.*

Then simply use some Docker based stuff like https://github.com/drud/ddev that helps you to use different PHP versions per project in a very simple manner

@jacobseated
Copy link

jacobseated commented Oct 21, 2021

Then simply use some Docker based stuff like https://github.com/drud/ddev that helps you to use different PHP versions per project in a very simple manner

Exactly. I am not too familiar with docker, so I simply installed the LTS in a VM and then installed multiple PHP versions via ppa:ondrej/php — we just got to link them in the Apache configuration and enable the individual configuration files. I just love the convenience of Apache :-P

Typically I use the latest PHP-FPM with fcgi as a global configuration, and then I override the default on a per VHOST basis as needed. E.g. Inside the VirtualHost blocks, but outside of Directory blocks:
include /etc/apache2/conf-available/php7.4-fpm.conf

Of course, php7.4-fpm should not be enabled via "a2enconf", but rather by manually loading it for the VHOST that needs it. Hope that makes sense to some. Have no idea about nginx unfortunately, because I have not used that for a long time.

The latest PHP version can then be enabled with sudo a2enconf php8.0-fpm, which will be the global default PHP version.

The cool thing I found out is that I can just share my host's /var/www/ folder with the VirtualBox, and than add Apache (the www-data user) to the vboxsf group, which then allows me to run headless and still edit files from my host. So, the clients DocumentRoot becomes /media/sf_www/ (but that's fine with me).

@oerdnj oerdnj pinned this issue Oct 24, 2021
@nemihome
Copy link

nemihome commented Oct 25, 2021

What is the particular use case that makes you run the latest Ubuntu release as a web server.

In my case: Im using an Oroid H2+ which has limited CPU power per Core. This is used as test environment, NAS, Backup, pivate Nextcloud, DLNA, Kodi and other topics. Due to several Samba improvements (RSS, raster encryption) I would like to add latest Samba version. I built Samba form scratch but there wo so many dependencies that I devided than an upgrade would maybe a better alternative. So I rolled back and upgraded to Impish. Ok, now Samba is running but Apache don't (there is not even an error message which makes sense - it is just running in timeout since upgrade). So maybe I will wait till 22.04 now without test environment for Webserver. There is also an issue with Nginx with Pagespeed and dependencies ( apache/incubator-pagespeed-mod#2083 ). But seems to be most developers are not really interested in the versions between LTS. Which makes them pretty useless in my opinion.

Will that effect also LTS in long term? Because if less testing is done with non LTS in my opinion you have to skipp the first point release of LTS also, because testing will be done on LTS more and more.

Why I don't use docker? Well, if you use a small unit with limited ressources Docker is really bad because it slows everything down even more. I made e.g. a test with elasticsearch and docker is so slow compared to a non docker environment, that I choose the way without docker (which is more complex, because there are less guides).

Anyway thanks for your work. I should have noticed that before I upgraded in this case I maybe haven't.

@Muffinman
Copy link

I just updated my work development machine to 21.10 without checking all these packages were available (my bad).

These packages don't just get used on servers :)

For me it seems that the hirsute ones still work fine though, I just hope that continues until the next release!

@oerdnj
Copy link
Owner Author

oerdnj commented Oct 26, 2021

FTR so far only like 5-6 people wrote here or into email asking for Ubuntu 21.10 support.

@swiffer
Copy link

swiffer commented Oct 26, 2021

interested as well - but also just running some smaller personal pages on a home server that i upgraded to the latest ubuntu release for newer kernel/packages. would be nice to have 8.1 for testing purpose.

@gjm
Copy link

gjm commented Oct 28, 2021

@oerdnj

I'm interested in 21.10 support too. I need to handle codebases in PHP 8 and 5.6 (:cry:) and need have them both installed. I know there are alternatives but my workflow as of many years depends on having both versions available simultaneously.

Thanks for your work!

@loxK
Copy link

loxK commented Nov 2, 2021

@oerdnj I'm interested as well. For some PHP extensions and for switching between 5.6, 7.4 and 8.0 on my development workstation that I like keeping on the edge regarding Ubuntu versions. I am worried that it is such a hard work for you ...

The most annoying is bringing that issue in between two rolling releases, but if you can keep the hard work until next LTS and then decide to only support LTS release, I must admit that I personally would be very thankful ...

@oerdnj
Copy link
Owner Author

oerdnj commented Nov 4, 2021

FTR I will do the Ubuntu 21.10 as the last non-LTS release and after Ubuntu 22.04, only LTS releases will be supported by this repository.

@oerdnj oerdnj changed the title Ubuntu 21.10 (Impish Indri) support Ubuntu non-LTS non-support Nov 4, 2021
@Ayesh
Copy link

Ayesh commented Nov 9, 2021

I upgraded to 21.10, and will be staying with 22.04 LTS. Thank you @oerdnj for providing a smooth path to 22.04.

Repository owner deleted a comment from enderandrew Nov 12, 2021
Repository owner deleted a comment from Muffinman Nov 12, 2021
@domis86
Copy link

domis86 commented Nov 12, 2021

@loxK @gjm @jacobseated @stadja Please dont torture yourself and just use docker to manage multiple projects on same machine - then each such project you can have separate OS version, php version, apache version etc :)

Alternatively, as was also mentioned: VM. Like Vagrant+Virtualbox etc.

Additional bonus which you get from above approaches is that you can always simply "delete" your docker container (or VM) and rebuild it from scratch - without affecting your computer. Is a lot less pain when for example you need to upgrade something (Ubuntu version etc) in one of your projects.

@hswong3i
Copy link

@oerdnj Thank you very much for maintenance this very useful PHP repo for many years, and I had been using it for my Ansible Role and Docker image for few years, too:

Also sharing some though when maintenance my repo (https://build.opensuse.org/project/show/home:alvistack) for latest Ansible / Kubernetes / CRI-O / Podman / etc:

  • For LTS release I keep a N / N -1 policy
    • e.g. Ubuntu 20.04 / 18.04, CentOS 8 / 7, openSUSE Leap 15.3 / 15.2
  • For point release I keep sync with its EOL
    • e.g. Only support Ubuntu 21.10 / 21.04 (to be remove on 2022-01)
    • Remove Ubuntu 20.10 support (EOL since 2021-07)
  • For rolling release I simply keep it as technical preview (i.e. allow failure)
    • e.g. Debian Testing, Fedora Rawhide, openSUSE Tumbleweed
    • Keeping it active so whenever new point / LTS comes upgrade could be much simpler
  • For each package I keep multiple version with policy MAJOR x1 / MINOR x2 / PATCH x3
    • e.g. For podman I remove all v2.y.z release, just keep recent v3.3.z and v3.4.z releases

P.S. I saw that you need to manually maintenance https://packages.sury.org/ for Debian based packages which could be very time consuming; working with https://build.opensuse.org/ for all supported OS seems much simple then using Ubuntu PPA (for Ubuntu only):

  • It could support both Debian / Ubuntu within single repo
  • Support automatic rebuild triggered by corresponding dependencies got upgraded
  • I simply do a quick local build with my Ubuntu 21.10, once it looks good and pushed to OBS, OBS will handle all OS build for me at once
  • If I need to debug the packaging, I could also have an isolated local build environment for Debian 10 / 11 / Ubuntu 18.04 / 20.04 / 21.04 / etc, on top of my daily used Ubuntu 21.10

Again, thank you very much for maintenance this repo ;-)

@Jimbolino
Copy link

For me the pressure to use these packages increases when the following conditions are met:

  • The latest ubuntu LTS is getting too old to daily drive
  • The new ubuntu LTS is shipping soon with a new version of PHP

Since PHP releases +- once a year, and ubuntu LTS once every 2 years. I predict that in 2 years, when ubuntu 23.10 is released the same discussing will arise :)

@jadeops
Copy link
Contributor

jadeops commented Sep 30, 2022

Any chance of supporting the Ubuntu 22.10 release (kinetic) ? beta is available now. How about supporting the versions only supported by PHP upstream? - https://www.php.net/supported-versions.php

I use Debian on all servers but use Xubuntu for desktop (dev machine). Debian is too stale for desktop use.

I am looking for

  • php8.1
  • php8.2(upcoming) to migrate code

If not, is there any cheatsheet/scripts to build this ourselves?

Repository owner deleted a comment from Etukakpan Oct 24, 2022
Repository owner deleted a comment from Jimbolino Oct 24, 2022
@oerdnj
Copy link
Owner Author

oerdnj commented Oct 24, 2022

Any chance of supporting the Ubuntu 22.10 release (kinetic) ? beta is available now. How about supporting the versions only supported by PHP upstream? - https://www.php.net/supported-versions.php

I use Debian on all servers but use Xubuntu for desktop (dev machine). Debian is too stale for desktop use.

I am looking for

  • php8.1
  • php8.2(upcoming) to migrate code

If not, is there any cheatsheet/scripts to build this ourselves?

Checkout the git repository, switch to debian/main/8.2 branch and run git-buildpackage - it will guide you through missing build-deps, etc…

@jefhar
Copy link

jefhar commented Feb 13, 2023

these repositories will not support the non-LTS Ubuntu versions.

Would it be asking too much for you add that to the README.md and the https://deb.sury.org/ page so that they are visible in more places that just this issue?

@str
Copy link

str commented May 12, 2023

What about a package management that does not depend on Ubuntu's version, like snaps or flatpack?

I do not like snaps, and have never tried flatpack, but testing the same project with multiple PHP versions with just changing a line in an .htaccess is soooo convenient, I'm about to downgrade from 23.04 to previous LTS. I'm THAT desperate.

I was thinking on finally jump to Debian, but I see the the Debian repo is not available for testing/rolling, right?

So, again... have you ever think of a package management that does not depend on Ubuntu's version, like snaps or flatpack?

@jacobseated
Copy link

jacobseated commented May 12, 2023 via email

@davidbuzz
Copy link

davidbuzz commented May 15, 2023

just throwing a note out that I've upgraded my multi-php dev box jammy to lunar[23.04] and find that continuing to use the jammy ppa's "works for me" with php7 and php8 on apache:

$ grep ondrej /etc/apt/sources.list.d/*.list
/etc/apt/sources.list.d/ondrej-ubuntu-apache2-kinetic.list:deb https://ppa.launchpadcontent.net/ondrej/apache2/ubuntu/ jammy main # disabled on upgrade to lunar
/etc/apt/sources.list.d/ondrej-ubuntu-php-kinetic.list:deb https://ppa.launchpadcontent.net/ondrej/php/ubuntu/ jammy main # disabled on upgrade to lunar
$ uname -a
Linux hostname 6.2.0-20-generic #20-Ubuntu SMP PREEMPT_DYNAMIC Thu Apr  6 07:48:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=23.04
DISTRIB_CODENAME=lunar
DISTRIB_DESCRIPTION="Ubuntu 23.04"
$ php7.4 --version
PHP 7.4.33 (cli) (built: Feb 14 2023 18:31:54) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Xdebug v3.1.6, Copyright (c) 2002-2022, by Derick Rethans
$ php8.0 --version
PHP 8.0.28 (cli) (built: Feb 14 2023 18:33:29) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.28, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.28, Copyright (c), by Zend Technologies
    with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans

not my first rodeo. :-)

@Firhan384
Copy link

i got error after install add-apt-repository ppa:ondrej/php
error :
The repository 'https://ppa.launchpadcontent.net/ondrej/php/ubuntu lunar Release' does not have a Release file.

uname -a
Linux firhan 6.2.0-20-generic #20-Ubuntu SMP PREEMPT_DYNAMIC Thu Apr 6 07:48:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=23.04
DISTRIB_CODENAME=lunar
DISTRIB_DESCRIPTION="Ubuntu 23.04"

@loxK
Copy link

loxK commented Jun 15, 2023

@Firhan384 read the first sentence of this issue:

After some thought, these repositories will not support the non-LTS Ubuntu versions.

@str
Copy link

str commented Jun 19, 2023

I'm about to downgrade from 23.04 to previous LTS. I'm THAT desperate.

And I ended downgrading to LTS, sadly 😭

@oerdnj oerdnj closed this as completed Mar 17, 2024
shanept added a commit to shanept/vccw2 that referenced this issue Apr 22, 2024
Ubuntu Noble is an LTS release. LTS releases should be preferred as
ppa:ondrej/php only supports LTS releases.

See oerdnj/deb.sury.org#1662 for more information.
shanept added a commit to shanept/vccw2 that referenced this issue Apr 22, 2024
Ubuntu Noble is an LTS release. LTS releases should be preferred as
ppa:ondrej/php only supports LTS releases.

See oerdnj/deb.sury.org#1662 for more information.
@oerdnj oerdnj mentioned this issue Dec 6, 2024
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests