Open rbucchi opened 8 years ago
Hi,
I have the same issue and it's because of the way erlang-nox
package is build:
This package is a dummy package which will install all Erlang/OTP
applications which do not require X Window System to run
It only ensures packages are installed but there is no dependency about the version number:
Depends: erlang-base | erlang-base-hipe, erlang-asn1, erlang-corba, erlang-crypto, erlang-diameter, erlang-edoc, erlang-eldap, erlang-erl-docgen, erlang-eunit, erlang-ic, erlang-inets, erlang-inviso, erlang-mnesia, erlang-odbc, erlang-os-mon, erlang-parsetools, erlang-percept, erlang-public-key, erlang-runtime-tools, erlang-snmp, erlang-ssh, erlang-ssl, erlang-syntax-tools, erlang-tools, erlang-xmerl
So basically, during the first install the dependencies might be ok (not even sure) but after that, if you try to upgrade the package it has not impact on the version of erlang-base, etc. So it's quite useless, in my opinion.
Basically, we have 2 options here:
erlang-nox
package needs to specify the version for its dependencieserlang-nox
any more for Ubuntu/Debian and specify all the packages manuallyI imagine a lot of people are going to come here with similar issue now that erlang-nox 21.0 was released, with breaking changes to rabbitmq-server. Currently the only workaround seems to stop using this module and stick with distro packages, or pinning all the packages manually, like suggested over me.
Plus, in some cases distro packages are not fully supported by some software: https://www.rabbitmq.com/which-erlang.html
I did a temp workaround:
class profile::erlang (
$key = '434975BD900CCBE4F7EE1B1ED208507CA14F4FCA',
$key_source = 'http://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc',
$package_name = 'erlang-base',
$location = 'http://packages.erlang-solutions.com/ubuntu',
$repos = 'contrib',
$version = 'present'
) {
# This crap because of that https://github.com/garethr/garethr-erlang/issues/26
# and https://www.rabbitmq.com/which-erlang.html
# and Erlang Solutions (not able to build deb packages in a right way)
$pkgs_a = [
'erlang-ic', 'erlang-odbc', 'erlang-eunit', 'erlang-parsetools',
'erlang-syntax-tools', 'erlang-mnesia', 'erlang-xmerl', 'erlang-crypto'
]
$pkgs_b = [ 'erlang-asn1', 'erlang-runtime-tools' ]
$pkgs_c = [ 'erlang-inviso', 'erlang-public-key', 'erlang-snmp' ]
$pkgs_d = [ 'erlang-ssh', 'erlang-ssl', 'erlang-os-mon' ]
$pkgs_e = [ 'erlang-diameter', 'erlang-eldap', 'erlang-inets' ]
$pkgs_f = [
'erlang-corba',
'erlang-edoc',
'erlang-percept',
'erlang-tools'
]
Package {
ensure => $version
}
package { $pkgs_a:
require => Package[$package_name]
} ->
package { $pkgs_b: } ->
package { $pkgs_c: } ->
package { $pkgs_d: } ->
package { $pkgs_e: } ->
package { $pkgs_f: } ->
package { 'erlang-erl-docgen': } ->
package { 'erlang-nox': } # RMQ Server Depends on this package
apt::source { 'erlang':
ensure => present,
location => $location,
release => $::lsbdistcodename,
repos => $repos,
include => { 'src' => false},
key => {
'id' => $key,
'server' => 'hkp://keyserver.ubuntu.com:80',
'source' => $key_source
}
}
apt::pin { 'erlang':
priority => 600,
packages => 'erlang-*',
origin => 'packages.erlang-solutions.com',
require => Apt::Source['erlang'],
} ->
package { $package_name: ensure => $version, }
}```
I'm trying to fix a specific erlang version through the 'version' parameter, but that's the result:
Just erlang-nox package is version-fixed. Shouldn't be the other versions 1.16... as well?