rabbitmq / erlang-debian-package

Fork of the official Debian package for Erlang
https://launchpad.net/~rabbitmq/+archive/ubuntu/rabbitmq-erlang
Apache License 2.0
13 stars 10 forks source link

erlang-nox does not pin dependency versions #19

Closed iandotkelly closed 5 years ago

iandotkelly commented 5 years ago

Since this morning, installations of erlang-nox=1:21.3.7-1 appear to be installing a number of packages versioned 1:22.0.

This is breaking our installation of RabbitMQ 3.7.10 on Travis. Installation logs below...

Let me know if you have questions.

$ sudo apt-get update
Hit:1 http://apt.postgresql.org/pub/repos/apt xenial-pgdg InRelease
Hit:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial InRelease
Hit:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:4 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial-backports InRelease
Hit:5 http://security.ubuntu.com/ubuntu xenial-security InRelease
Ign:6 https://dl.bintray.com/rabbitmq-erlang/debian xenial InRelease
Ign:7 https://dl.bintray.com/rabbitmq/debian xenial InRelease
Get:8 https://dl.bintray.com/rabbitmq-erlang/debian xenial Release [12.6 kB]
Get:9 https://dl.bintray.com/rabbitmq/debian xenial Release [66.8 kB]
Get:10 https://dl.bintray.com/rabbitmq-erlang/debian xenial Release.gpg [821 B]
Get:11 https://dl.bintray.com/rabbitmq/debian xenial Release.gpg [821 B]
Get:12 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 Packages [192 kB]
Get:13 https://dl.bintray.com/rabbitmq/debian xenial/main amd64 Packages [2,397 B]
Get:14 https://dl.bintray.com/rabbitmq/debian xenial/main i386 Packages [2,397 B]
Fetched 278 kB in 1s (253 kB/s)
Reading package lists...
before_install.2
16.15s$ sudo apt-get install erlang-nox=1:21.3.7-1
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  erlang-asn1 erlang-base erlang-crypto erlang-diameter erlang-edoc
  erlang-eldap erlang-erl-docgen erlang-eunit erlang-ftp erlang-inets
  erlang-mnesia erlang-odbc erlang-os-mon erlang-parsetools erlang-public-key
  erlang-runtime-tools erlang-snmp erlang-ssh erlang-ssl erlang-syntax-tools
  erlang-tftp erlang-tools erlang-xmerl libodbc1
Suggested packages:
  erlang erlang-manpages erlang-doc xsltproc fop libmyodbc odbc-postgresql
  tdsodbc unixodbc-bin
Recommended packages:
  libsctp1
The following packages will be REMOVED:
  erlang-base-hipe erlang-webtool
The following NEW packages will be installed:
  erlang-base erlang-diameter erlang-edoc erlang-eldap erlang-erl-docgen
  erlang-ftp erlang-nox erlang-odbc erlang-parsetools erlang-ssh erlang-tftp
  libodbc1
The following packages will be upgraded:
  erlang-asn1 erlang-crypto erlang-eunit erlang-inets erlang-mnesia
  erlang-os-mon erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssl
  erlang-syntax-tools erlang-tools erlang-xmerl
13 upgraded, 12 newly installed, 2 to remove and 92 not upgraded.
Need to get 18.7 MB of archives.
After this operation, 1,729 kB of additional disk space will be used.
Get:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial/main amd64 libodbc1 amd64 2.3.1-4.1 [180 kB]
Get:2 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-xmerl amd64 1:22.0-1 [992 kB]
Get:3 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-tools amd64 1:22.0-1 [537 kB]
Get:4 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-inets amd64 1:22.0-1 [617 kB]
Get:5 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-ssl amd64 1:22.0-1 [1,087 kB]
Get:6 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-public-key amd64 1:22.0-1 [606 kB]
Get:7 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-asn1 amd64 1:22.0-1 [753 kB]
Get:8 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-os-mon amd64 1:22.0-1 [122 kB]
Get:9 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-snmp amd64 1:22.0-1 [1,564 kB]
Get:10 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-crypto amd64 1:22.0-1 [172 kB]
Get:11 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-ftp amd64 1:22.0-1 [110 kB]
Get:12 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-tftp amd64 1:22.0-1 [126 kB]
Get:13 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-runtime-tools amd64 1:22.0-1 [224 kB]
Get:14 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-mnesia amd64 1:22.0-1 [759 kB]
Get:15 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-syntax-tools amd64 1:22.0-1 [386 kB]
Get:16 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-eunit amd64 1:22.0-1 [175 kB]
Get:17 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-base amd64 1:22.0-1 [8,018 kB]
Get:18 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-diameter amd64 1:22.0-1 [691 kB]
Get:19 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-edoc amd64 1:22.0-1 [322 kB]
Get:20 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-eldap amd64 1:22.0-1 [141 kB]
Get:21 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-erl-docgen amd64 1:22.0-1 [164 kB]
Get:22 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-odbc amd64 1:22.0-1 [90.1 kB]
Get:23 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-parsetools amd64 1:22.0-1 [192 kB]
Get:24 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-ssh amd64 1:22.0-1 [667 kB]
Get:25 https://dl.bintray.com/rabbitmq-erlang/debian xenial/erlang amd64 erlang-nox all 1:21.3.7-1 [37.3 kB]
Fetched 18.7 MB in 4s (3,778 kB/s)
(Reading database ... 124189 files and directories currently installed.)
Preparing to unpack .../erlang-xmerl_1%3a22.0-1_amd64.deb ...
Unpacking erlang-xmerl (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-tools_1%3a22.0-1_amd64.deb ...
Unpacking erlang-tools (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
(Reading database ... 124190 files and directories currently installed.)
Removing erlang-webtool (1:18.3-dfsg-1ubuntu3.1) ...
Processing triggers for man-db (2.7.5-1) ...
(Reading database ... 124166 files and directories currently installed.)
Preparing to unpack .../erlang-inets_1%3a22.0-1_amd64.deb ...
Unpacking erlang-inets (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-ssl_1%3a22.0-1_amd64.deb ...
Unpacking erlang-ssl (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-public-key_1%3a22.0-1_amd64.deb ...
Unpacking erlang-public-key (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-asn1_1%3a22.0-1_amd64.deb ...
Unpacking erlang-asn1 (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-os-mon_1%3a22.0-1_amd64.deb ...
Unpacking erlang-os-mon (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-snmp_1%3a22.0-1_amd64.deb ...
Unpacking erlang-snmp (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-crypto_1%3a22.0-1_amd64.deb ...
Unpacking erlang-crypto (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Selecting previously unselected package erlang-ftp.
Preparing to unpack .../erlang-ftp_1%3a22.0-1_amd64.deb ...
Unpacking erlang-ftp (1:22.0-1) ...
Selecting previously unselected package erlang-tftp.
Preparing to unpack .../erlang-tftp_1%3a22.0-1_amd64.deb ...
Unpacking erlang-tftp (1:22.0-1) ...
Preparing to unpack .../erlang-runtime-tools_1%3a22.0-1_amd64.deb ...
Unpacking erlang-runtime-tools (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-mnesia_1%3a22.0-1_amd64.deb ...
Unpacking erlang-mnesia (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-syntax-tools_1%3a22.0-1_amd64.deb ...
Unpacking erlang-syntax-tools (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Preparing to unpack .../erlang-eunit_1%3a22.0-1_amd64.deb ...
Unpacking erlang-eunit (1:22.0-1) over (1:18.3-dfsg-1ubuntu3.1) ...
Processing triggers for man-db (2.7.5-1) ...
dpkg: erlang-base-hipe: dependency problems, but removing anyway as you requested:
 erlang-ftp depends on erlang-base (= 1:22.0-1) | erlang-base-hipe (= 1:22.0-1); however:
  Package erlang-base is not installed.
  Package erlang-base-hipe is to be removed.
 erlang-syntax-tools depends on erlang-base (= 1:22.0-1) | erlang-base-hipe (= 1:22.0-1); however:
  Package erlang-base is not installed.
  Package erlang-base-hipe is to be removed.
 erlang-runtime-tools depends on erlang-base (= 1:22.0-1) | erlang-base-hipe (= 1:22.0-1); however:
  Package erlang-base is not installed.
  Package erlang-base-hipe is to be removed.
 couchdb-bin depends on erlang-abi-17.0; however:
  Package erlang-abi-17.0 is not installed.
  Package erlang-base-hipe which provides erlang-abi-17.0 is to be removed.
 couchdb-bin depends on erlang-base (>= 1:18.2-dfsg) | erlang-base-hipe (>= 1:18.2-dfsg); however:
  Package erlang-base is not installed.
  Package erlang-base-hipe is to be removed.
 erlang-tools depends on erlang-base (= 1:22.0-1
(Reading database ... 124194 files and directories currently installed.)
Removing erlang-base-hipe (1:18.3-dfsg-1ubuntu3.1) ...
Searching for services which depend on erlang and should be stopped...none found.
Killing epmd...it is not running.
Processing triggers for man-db (2.7.5-1) ...
Selecting previously unselected package erlang-base.
(Reading database ... 123650 files and directories currently installed.)
Preparing to unpack .../erlang-base_1%3a22.0-1_amd64.deb ...
Unpacking erlang-base (1:22.0-1) ...
Selecting previously unselected package erlang-diameter.
Preparing to unpack .../erlang-diameter_1%3a22.0-1_amd64.deb ...
Unpacking erlang-diameter (1:22.0-1) ...
Selecting previously unselected package erlang-edoc.
Preparing to unpack .../erlang-edoc_1%3a22.0-1_amd64.deb ...
Unpacking erlang-edoc (1:22.0-1) ...
Selecting previously unselected package erlang-eldap.
Preparing to unpack .../erlang-eldap_1%3a22.0-1_amd64.deb ...
Unpacking erlang-eldap (1:22.0-1) ...
Selecting previously unselected package erlang-erl-docgen.
Preparing to unpack .../erlang-erl-docgen_1%3a22.0-1_amd64.deb ...
Unpacking erlang-erl-docgen (1:22.0-1) ...
Selecting previously unselected package libodbc1:amd64.
Preparing to unpack .../libodbc1_2.3.1-4.1_amd64.deb ...
Unpacking libodbc1:amd64 (2.3.1-4.1) ...
Selecting previously unselected package erlang-odbc.
Preparing to unpack .../erlang-odbc_1%3a22.0-1_amd64.deb ...
Unpacking erlang-odbc (1:22.0-1) ...
Selecting previously unselected package erlang-parsetools.
Preparing to unpack .../erlang-parsetools_1%3a22.0-1_amd64.deb ...
Unpacking erlang-parsetools (1:22.0-1) ...
Selecting previously unselected package erlang-ssh.
Preparing to unpack .../erlang-ssh_1%3a22.0-1_amd64.deb ...
Unpacking erlang-ssh (1:22.0-1) ...
Selecting previously unselected package erlang-nox.
Preparing to unpack .../erlang-nox_1%3a21.3.7-1_all.deb ...
Unpacking erlang-nox (1:21.3.7-1) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Setting up erlang-base (1:22.0-1) ...
Searching for services which depend on erlang and should be started... none found.
Setting up erlang-xmerl (1:22.0-1) ...
Setting up erlang-mnesia (1:22.0-1) ...
Setting up erlang-runtime-tools (1:22.0-1) ...
Setting up erlang-tools (1:22.0-1) ...
Setting up erlang-crypto (1:22.0-1) ...
Setting up erlang-asn1 (1:22.0-1) ...
Setting up erlang-public-key (1:22.0-1) ...
Setting up erlang-ssl (1:22.0-1) ...
Setting up erlang-ftp (1:22.0-1) ...
Setting up erlang-tftp (1:22.0-1) ...
Setting up erlang-inets (1:22.0-1) ...
Setting up erlang-snmp (1:22.0-1) ...
Setting up erlang-os-mon (1:22.0-1) ...
Setting up erlang-syntax-tools (1:22.0-1) ...
Setting up erlang-eunit (1:22.0-1) ...
Setting up erlang-diameter (1:22.0-1) ...
Setting up erlang-edoc (1:22.0-1) ...
Setting up erlang-eldap (1:22.0-1) ...
Setting up erlang-erl-docgen (1:22.0-1) ...
Setting up libodbc1:amd64 (2.3.1-4.1) ...
Setting up erlang-odbc (1:22.0-1) ...
Setting up erlang-parsetools (1:22.0-1) ...
Setting up erlang-ssh (1:22.0-1) ...
Setting up erlang-nox (1:21.3.7-1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
1.00s$ sudo apt-get install rabbitmq-server=3.7.10-1
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:
 rabbitmq-server : Depends: erlang-base (< 1:22) but 1:22.0-1 is to be installed or
                            erlang-base-hipe (< 1:22) but it is not going to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-crypto (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-eldap (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-inets (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-mnesia (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-os-mon (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-parsetools (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-public-key (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-runtime-tools (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-ssl (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-syntax-tools (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-tools (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
                   Depends: erlang-xmerl (< 1:22) but 1:22.0-1 is to be installed or
                            esl-erlang (< 1:22) but it is not installable
E: Unable to correct problems, you have held broken packages.
The command "sudo apt-get install rabbitmq-server=3.7.10-1" failed and exited with 100 during .
michaelklishin commented 5 years ago

erlang-nox does not pin its version dependencies and should be avoided in repositories that provide multiple versions.

AFAIK this is not something specific to this package. erlang-nox in Debian Buster doesn't pin its dependencies either but since standard repos provide a single version of all erlang-* packages, it works out.

Use apt version pinning or do what our Chef cookbook does (that is, avoid erlang-nox).

michaelklishin commented 5 years ago

We likely won't address this because this package tries to deviate as little as possible from the standard Debian Erlang packages.

iandotkelly commented 5 years ago

Understood

michaelklishin commented 5 years ago

@dumbbell FYI.

iandotkelly commented 5 years ago

Actually I was able to fix it by changing:

- sourceline: deb https://dl.bintray.com/rabbitmq-erlang/debian xenial erlang

to

- sourceline: deb https://dl.bintray.com/rabbitmq-erlang/debian xenial erlang-21.x
michaelklishin commented 5 years ago

@iandotkelly limiting via version series component is also an option 👍

vikash310 commented 5 years ago

This worked for me. Thanks @iandotkelly


echo "deb https://dl.bintray.com/rabbitmq-erlang/debian xenial erlang-21.x" | sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list```