End-of-life and node.js LTS

If I install LTS nodejs, what happen when the end-of-life is reached? Does the package just disappear from the community repository? Does the user have to manually uninstall it and install a new LTS?

community/nodejs-lts-gallium 16.14.2-1
Evented I/O for V8 javascript (LTS release: Gallium)

I’m trying hard to not pollute my base machine from other package managers and sticking with the repositories, and the aur if absolutely necessary.

As I was reading the arch wiki for node.js, it mentioned nvm. I’m not sure I would need that, but I did notice that archlinux nvm is installed in the AUR, and on Manjaro it is a community package. Yeah :slight_smile: I’m reviewing Antora. The requirements are node.js, it doesn’t say anything else. I’m hoping that is all it needs and doesn’t require npm and other non-pacman packages down the line.

If there is a new LTS version of node.js by that time, then the new one will simply replace the old one.

Most probably, yes. Just like with versioned manjaro kernels.

Then why not install “unversioned” nodejs package?

If “unversioned” means not LTS, I should have said the requirement is a LTS nodejs. I just did a pacman -Ss nodejs to see what was available, and there were 3 LTS packages, 12…, 14…, and 16… There is a 17, but the description is not LTS and the nodejs webpage doesn’t show it as a LTS. From the snippet below, it seems odd versions never become LTS. Interesting, the nodejs webpage doesn’t show v12 at all.


After six months, odd-numbered releases (9, 11, etc.) become unsupported, and even-numbered releases (10, 12, etc.) move to Active LTS status and are ready for general use. LTS release status is “long-term support”, which typically guarantees that critical bugs will be fixed for a total of 30 months. Production applications should only use Active LTS or Maintenance LTS releases.

Since the package name will be different, will I be prompted to replace package nodejs-lts-gallium with nodejs-lts-NewName? I know this is far in the future 4/2024, but I like to understand :slight_smile:

Hmm, if the package name is different, then it will most likely require manually installing the new package, and then this in turn will prompt you to replace the old one.

No, it means it doesn’t have a version in its name - usually that means it’s the latest available version, LTS or not.

Looking at their page and how their LTS releases work, that would be one weird requirement IMHO. AUR package says “nodejs” without any version. Also, why not just try it - it takes you less than a minute to install a package, check if it works, and remove it if it doesn’t.

No. This is your job, just like with kernels for example. You can see plenty of posts with people having errors because they have some old packages (or kernels) installed.
Also, as you can see, there are 3 different nodejs LTS versions in repo. So if you install oldest one, should you get prompted each time to install newer?
I mean, it’s doable, but package maintainer has to add “replaces=” into new PKGBUILD and force people to replace it.

From what I see in the repositories, there are multiple old versions of nodejs LTS packages (nodejs-lts-gallium version 16, nodejs-lts-fermium version 14, nodejs-lts-erbium version 12). The one you installed will probably stay in the repos when the next one releases.

As your LTS package provides nodejs, when the next LTS releases (following the pattern I see, the current version 18 should become the new LTS?), you should simply install it and it will replace your current one (if the new next LTS package is properly configured to provide nodejs too, which it should).