apache / apache/arrow

[Packaging] apt install with explicit version fails due to dependency version mismatch

Open
#39,907 3 comments 1 reaction 0 assignees View on GitHub
Component: Packaging Type: bug
Dominant language
C++
Stars
17.1k
Forks
4.3k
Avg merge
3d 13h
Merged PRs (30d)
88

Description

### Describe the bug, including details regarding any error messages, version, and platform.

Installing, on Ubuntu, with explicit version specified, e.g. `apt install -y -V libarrow-dataset-dev=14.0.1-1` fails, with errors like:
```
root@cd210974a97c:/# apt install -y -V libarrow-dataset-dev=14.0.1-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:
libarrow-dataset-dev : Depends: libarrow-acero-dev (= 14.0.1-1) but 15.0.0-1 is to be installed
Depends: libparquet-dev (= 14.0.1-1) but 15.0.0-1 is to be installed
E: Unable to correct problems, you have held broken packages.
```

If I, manually, first install `libparquet-dev=14.0.1-1` and `libarrow-acero-dev=14.0.1-1` (in that order), the installation of `libarrow-dataset-dev=14.0.1-1` succeeds.

So, it seems the apt packages does not contain precise enough version information in their dependency information.

This is mostly following the "Debian GNU/Linux and Ubuntu" instructions for [version 14](https://web.archive.org/web/20231128164654/https://arrow.apache.org/install/) but the instructions for the [current version](https://arrow.apache.org/install/) 15 is similar:
```
$ docker run --interactive --tty --rm ubuntu:22.04
root@cd210974a97c:/# uname -a
Linux cd210974a97c 6.6.12-linuxkit #1 SMP PREEMPT_DYNAMIC Fri Jan 19 12:50:23 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
root@cd210974a97c:/# apt update
...
root@cd210974a97c:/# apt install -y -V ca-certificates lsb-release wget
...
root@cd210974a97c:/# lsb_release --id --short
Ubuntu
root@cd210974a97c:/# lsb_release --codename --short
jammy
root@cd210974a97c:/# wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
...
root@cd210974a97c:/# apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
...
root@cd210974a97c:/# apt update
...
root@cd210974a97c:/# apt install -y -V libarrow-dev=14.0.1-1
...
root@cd210974a97c:/# apt install -y -V libarrow-dataset-dev=14.0.1-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:
libarrow-dataset-dev : Depends: libarrow-acero-dev (= 14.0.1-1) but 15.0.0-1 is to be installed
Depends: libparquet-dev (= 14.0.1-1) but 15.0.0-1 is to be installed
E: Unable to correct problems, you have held broken packages.
root@cd210974a97c:/# apt install -y -V libarrow-acero-dev=14.0.1-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:
libarrow-acero-dev : Depends: libparquet-dev (= 14.0.1-1) but 15.0.0-1 is to be installed
E: Unable to correct problems, you have held broken packages.
root@cd210974a97c:/# apt install -y -V libparquet-dev=14.0.1-1
...
root@cd210974a97c:/# apt install -y -V libarrow-acero-dev=14.0.1-1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libarrow-acero1400 (14.0.1-1)
The following NEW packages will be installed:
libarrow-acero-dev (14.0.1-1)
libarrow-acero1400 (14.0.1-1)
0 upgraded, 2 newly installed, 0 to remove and 10 not upgraded.
Need to get 1089 kB of archives.
After this operation, 6101 kB of additional disk space will be used.
Get:1 https://apache.jfrog.io/artifactory/arrow/ubuntu jammy/main amd64 libarrow-acero1400 amd64 14.0.1-1 [423 kB]
Get:2 https://apache.jfrog.io/artifactory/arrow/ubuntu jammy/main amd64 libarrow-acero-dev amd64 14.0.1-1 [665 kB]
Fetched 1089 kB in 4s (253 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libarrow-acero1400:amd64.
(Reading database ... 15259 files and directories currently installed.)
Preparing to unpack .../libarrow-acero1400_14.0.1-1_amd64.deb ...
Unpacking libarrow-acero1400:amd64 (14.0.1-1) ...
Selecting previously unselected package libarrow-acero-dev:amd64.
Preparing to unpack .../libarrow-acero-dev_14.0.1-1_amd64.deb ...
Unpacking libarrow-acero-dev:amd64 (14.0.1-1) ...
Setting up libarrow-acero1400:amd64 (14.0.1-1) ...
Setting up libarrow-acero-dev:amd64 (14.0.1-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
root@cd210974a97c:/# apt install -y -V libarrow-dataset-dev=14.0.1-1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libarrow-dataset1400 (14.0.1-1)
The following NEW packages will be installed:
libarrow-dataset-dev (14.0.1-1)
libarrow-dataset1400 (14.0.1-1)
0 upgraded, 2 newly installed, 0 to remove and 11 not upgraded.
Need to get 1125 kB of archives.
After this operation, 7496 kB of additional disk space will be used.
Get:1 https://apache.jfrog.io/artifactory/arrow/ubuntu jammy/main amd64 libarrow-dataset1400 amd64 14.0.1-1 [441 kB]
Get:2 https://apache.jfrog.io/artifactory/arrow/ubuntu jammy/main amd64 libarrow-dataset-dev amd64 14.0.1-1 [683 kB]
Fetched 1125 kB in 3s (330 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libarrow-dataset1400:amd64.
(Reading database ... 15275 files and directories currently installed.)
Preparing to unpack .../libarrow-dataset1400_14.0.1-1_amd64.deb ...
Unpacking libarrow-dataset1400:amd64 (14.0.1-1) ...
Selecting previously unselected package libarrow-dataset-dev:amd64.
Preparing to unpack .../libarrow-dataset-dev_14.0.1-1_amd64.deb ...
Unpacking libarrow-dataset-dev:amd64 (14.0.1-1) ...
Setting up libarrow-dataset1400:amd64 (14.0.1-1) ...
Setting up libarrow-dataset-dev:amd64 (14.0.1-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
root@cd210974a97c:/#
```

See the attached full transcript.

[arrow_14_install_problems.txt](https://github.com/apache/arrow/files/14136994/arrow_14_install_problems.txt)

### Component(s)

Packaging

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.