Public bug reported:

Hi,

First of all, thank you for running and maintaining Ubuntu, its a very
valuable system and community and probably tons of work.

I ran into a strange issue when attempting to install nodejs and npm on
Ubuntu 22.04.1 LTS (amd64), the dependency resolution appears to be
illogical. In particular, the output of command #5 below doesn´t appear
to make any sense: why would `sudo apt install
nodejs=12.22.9~dfsg-1ubuntu3.4` attempt to install libnode72
`12.22.12~dfsg-1~deb11u4` which is incompatible instead of
`12.22.9~dfsg-1ubuntu3.4` which is in the dependency chain?


Manually installing `sudo apt install libnode72=12.22.9~dfsg-1ubuntu3.4`
followed by `sudo apt install nodejs=12.22.9~dfsg-1ubuntu3.4`
does appear to complete without errors, therefore the metadata encoded in the 
packages is correct.


When I then try to install
`sudo apt install npm`
I run into the same issue:

nodejs : Depends: libnode72 (= 12.22.9~dfsg-1ubuntu3.4) but
12.22.12~dfsg-1~deb11u4 is to be installed

It appears like the dependency resolver is not behaving correctly.

I am not sure how actionable this is, perhaps there is something wrong
with my computer. But it does not behave in the way that a normal user
would expect, so just posting this in case others might have run into
something similar.


Some additional links and commandline output which might assist in 
troubleshooting and for future reference:

Package: nodejs (12.22.9~dfsg-1ubuntu3.4 and others)
https://packages.ubuntu.com/jammy/nodejs

depends on
Package: libnode72 (12.22.9~dfsg-1ubuntu3.4 and others)
https://packages.ubuntu.com/jammy/libnode72

and suggests
Package: npm (8.5.1~ds-1)
https://packages.ubuntu.com/jammy/npm


I apparently have both Ubuntu and Debian repos configured in 
`/etc/apt/sources.list`:

```
# Ubuntu 22.04.1 LTS
deb http://us.archive.ubuntu.com/ubuntu/ jammy universe
deb http://us.archive.ubuntu.com/ubuntu/ jammy-updates universe

# Debian Bullseye
deb http://deb.debian.org/debian bullseye main contrib universe multiverse 
non-free
deb http://deb.debian.org/debian bullseye-updates main contrib universe 
multiverse non-free
```


However,
`sudo apt -o Debug::pkgProblemResolver=yes upgrade`
does not show any conflicts:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Entering ResolveByKeep 10%
  Dependencies are not satisfied for grub-efi-amd64-signed:amd64 < 
1.187.6+2.06-2ubuntu14.4 @ii mK Ib >
Keeping package grub-efi-amd64-signed:amd64
  Dependencies are not satisfied for grub-efi-amd64-signed:amd64 < 
1.187.6+2.06-2ubuntu14.4 @ii mK Ib >
Package grub-efi-amd64-signed:amd64 grub-efi-amd64-signed:amd64 Depends on 
grub-efi-amd64-bin:amd64 < 2.06-2ubuntu14.4 -> 2.06-3~deb11u6 @ii umU > (= 
2.06-2ubuntu14.4)
  Keeping Package grub-efi-amd64-bin:amd64 due to Depends
Calculating upgrade... Done


For reference, I attempted to run the following commands:

# 1.
$ sudo apt install npm
```
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
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:
 npm : Depends: node-cacache but it is not going to be installed
       Depends: node-gyp but it is not going to be installed
       Depends: node-mkdirp but it is not going to be installed
       Depends: node-nopt but it is not going to be installed
       Depends: node-tar but it is not going to be installed
       Depends: node-which but it is not going to be installed
       Depends: nodejs:any (>= 10)
       Recommends: node-tap but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
```


# 2.
$ apt-cache madison nodejs
    nodejs | 12.22.12~dfsg-1~deb11u4 | http://deb.debian.org/debian 
bullseye/main amd64 Packages
    nodejs | 12.22.9~dfsg-1ubuntu3.4 | http://us.archive.ubuntu.com/ubuntu 
jammy-updates/universe amd64 Packages
    nodejs | 12.22.9~dfsg-1ubuntu3.4 | http://security.ubuntu.com/ubuntu 
jammy-security/universe amd64 Packages
    nodejs | 12.22.9~dfsg-1ubuntu3 | http://us.archive.ubuntu.com/ubuntu 
jammy/universe amd64 Packages


# 3.
$ sudo apt install nodejs=12.22.9~dfsg-1ubuntu3.4
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
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:
 nodejs : Depends: libnode72 (= 12.22.9~dfsg-1ubuntu3.4) but 
12.22.12~dfsg-1~deb11u4 is to be installed
E: Unable to correct problems, you have held broken packages.


# 4.
$ sudo apt remove libnode72
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  libnode72
0 upgraded, 0 newly installed, 1 to remove and 342 not upgraded.
After this operation, 36.6 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 408682 files and directories currently installed.)
Removing libnode72:amd64 (12.22.12~dfsg-1~deb11u4) ...
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...


# 5.
$ sudo apt install nodejs=12.22.9~dfsg-1ubuntu3.4
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
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:
 nodejs : Depends: libnode72 (= 12.22.9~dfsg-1ubuntu3.4) but 
12.22.12~dfsg-1~deb11u4 is to be installed
E: Unable to correct problems, you have held broken packages.


# 6.
$ sudo apt install libnode72=12.22.9~dfsg-1ubuntu3.4
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  libnode72
0 upgraded, 1 newly installed, 0 to remove and 342 not upgraded.
Need to get 10.8 MB of archives.
After this operation, 41.2 MB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 
libnode72 amd64 12.22.9~dfsg-1ubuntu3.4 [10.8 MB]
Fetched 10.8 MB in 1s (9,062 kB/s) 
Selecting previously unselected package libnode72:amd64.
(Reading database ... 408676 files and directories currently installed.)
Preparing to unpack .../libnode72_12.22.9~dfsg-1ubuntu3.4_amd64.deb ...
Unpacking libnode72:amd64 (12.22.9~dfsg-1ubuntu3.4) ...
Setting up libnode72:amd64 (12.22.9~dfsg-1ubuntu3.4) ...
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...


# 7.
$ sudo apt install nodejs=12.22.9~dfsg-1ubuntu3.4
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  npm
The following NEW packages will be installed:
  nodejs
0 upgraded, 1 newly installed, 0 to remove and 343 not upgraded.
Need to get 122 kB of archives.
After this operation, 929 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 nodejs 
amd64 12.22.9~dfsg-1ubuntu3.4 [122 kB]
Fetched 122 kB in 0s (265 kB/s)
Selecting previously unselected package nodejs.
(Reading database ... 408681 files and directories currently installed.)
Preparing to unpack .../nodejs_12.22.9~dfsg-1ubuntu3.4_amd64.deb ...
Unpacking nodejs (12.22.9~dfsg-1ubuntu3.4) ...
Setting up nodejs (12.22.9~dfsg-1ubuntu3.4) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto 
mode
Processing triggers for man-db (2.10.2-1) ...


# 8.
$ sudo apt install npm
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
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:
 nodejs : Depends: libnode72 (= 12.22.9~dfsg-1ubuntu3.4) but 
12.22.12~dfsg-1~deb11u4 is to be installed
E: Unable to correct problems, you have held broken packages.


# 9.
$ sudo apt show nodejs
Package: nodejs
Version: 12.22.12~dfsg-1~deb11u4
Priority: optional
Section: web
Maintainer: Debian Javascript Maintainers 
<pkg-javascript-de...@alioth-lists.debian.net>
Installed-Size: 939 kB
Provides: node-types-node (= 12.20.55~12.22.12~dfsg-1~deb11u4)
Depends: libc6 (>= 2.2.5), libnode72 (= 12.22.12~dfsg-1~deb11u4)
Recommends: ca-certificates, nodejs-doc
Suggests: npm
Conflicts: nodejs-legacy
Breaks: node-babel-runtime (<< 7), node-typescript-types (<< 20210110~)
Replaces: nodejs-legacy
Homepage: https://nodejs.org/
Tag: devel::interpreter, devel::lang:ecmascript, devel::runtime, devel::web,
 implemented-in::c++, implemented-in::ecmascript,
 interface::commandline, interface::shell, protocol::dns,
 protocol::http, protocol::tcp, role::program, scope::application,
 works-with-format::json
Download-Size: 148 kB
APT-Sources: http://deb.debian.org/debian bullseye/main amd64 Packages
Description: evented I/O for V8 javascript - runtime executable
 Node.js is a platform built on Chrome's JavaScript runtime for easily
 building fast, scalable network applications. Node.js uses an
 event-driven, non-blocking I/O model that makes it lightweight and
 efficient, perfect for data-intensive real-time applications that run
 across distributed devices.
 .
 Node.js is bundled with several useful libraries to handle server
 tasks:
 .
 System, Events, Standard I/O, Modules, Timers, Child Processes, POSIX,
 HTTP, Multipart Parsing, TCP, DNS, Assert, Path, URL, Query Strings.

N: There are 2 additional records. Please use the '-a' switch to see
them.


# 10.
$ sudo apt install npm=8.5.1~ds-1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
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:
 nodejs : Depends: libnode72 (= 12.22.9~dfsg-1ubuntu3.4) but 
12.22.12~dfsg-1~deb11u4 is to be installed
E: Unable to correct problems, you have held broken packages.


# 11.
$ apt-cache madison libnode72
 libnode72 | 12.22.12~dfsg-1~deb11u4 | http://deb.debian.org/debian 
bullseye/main amd64 Packages
 libnode72 | 12.22.9~dfsg-1ubuntu3.4 | http://us.archive.ubuntu.com/ubuntu 
jammy-updates/universe amd64 Packages
 libnode72 | 12.22.9~dfsg-1ubuntu3.4 | http://security.ubuntu.com/ubuntu 
jammy-security/universe amd64 Packages
 libnode72 | 12.22.9~dfsg-1ubuntu3 | http://us.archive.ubuntu.com/ubuntu 
jammy/universe amd64 Packages

$ apt-cache madison nodejs
    nodejs | 12.22.12~dfsg-1~deb11u4 | http://deb.debian.org/debian 
bullseye/main amd64 Packages
    nodejs | 12.22.9~dfsg-1ubuntu3.4 | http://us.archive.ubuntu.com/ubuntu 
jammy-updates/universe amd64 Packages
    nodejs | 12.22.9~dfsg-1ubuntu3.4 | http://security.ubuntu.com/ubuntu 
jammy-security/universe amd64 Packages
    nodejs | 12.22.9~dfsg-1ubuntu3 | http://us.archive.ubuntu.com/ubuntu 
jammy/universe amd64 Packages

$ apt-cache madison npm
       npm | 8.5.1~ds-1 | http://us.archive.ubuntu.com/ubuntu jammy/universe 
amd64 Packages
       npm | 8.5.1~ds-1 | http://us.archive.ubuntu.com/ubuntu jammy/universe 
i386 Packages
       npm | 7.5.2+ds-2 | http://deb.debian.org/debian bullseye/main amd64 
Packages
       npm | 7.5.2+ds-2 | http://deb.debian.org/debian bullseye/main i386 
Packages

** Affects: nodejs (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: jammy unmetdeps

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2056653

Title:
  Illogical dependency resolution: nodejs=12.22.9~dfsg-1ubuntu3.4
  attempts to install libnode72 12.22.12~dfsg-1~deb11u4 instead of
  12.22.9~dfsg-1ubuntu3.4

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nodejs/+bug/2056653/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to