From 5ce39f0d8e2ebc5d76f6badcd101cc4e0136eb9f Mon Sep 17 00:00:00 2001 From: Craig Allwardt Date: Wed, 10 Jun 2020 23:24:24 -0400 Subject: [PATCH 1/4] Modified rabbit_dependencies to get pinned version of erlang for debian based dists. --- scripts/rabbit_dependencies.sh | 63 ++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 19 deletions(-) diff --git a/scripts/rabbit_dependencies.sh b/scripts/rabbit_dependencies.sh index 8b7c286cf2..afdc7dfbbe 100755 --- a/scripts/rabbit_dependencies.sh +++ b/scripts/rabbit_dependencies.sh @@ -25,11 +25,11 @@ Valid centos versions: 6, 7, 8 function install_on_centos { - if [ "$DIST" == "6" ]; then + if [[ "$DIST" == "6" ]]; then erlang_url='https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/6' - elif [ "$DIST" == "7" ]; then + elif [[ "$DIST" == "7" ]]; then erlang_url='https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/7' - elif [ "$DIST" == "8" ]; then + elif [[ "$DIST" == "8" ]]; then erlang_url='https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/8' else printf "Invalid centos version. 6, 7, and 8 are the only compatible versions\n" @@ -45,60 +45,85 @@ gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=1" - if [ ! -f "/etc/yum.repos.d/rabbitmq-erlang.repo" ]; then - echo "$repo" | $prefix tee -a /etc/yum.repos.d/rabbitmq-erlang.repo + if [[ ! -f "/etc/yum.repos.d/rabbitmq-erlang.repo" ]]; then + echo "$repo" | ${prefix} tee -a /etc/yum.repos.d/rabbitmq-erlang.repo exit_on_error else echo "\nrepo file /etc/yum.repos.d/rabbitmq-erlang.repo already exists\n" fi - $prefix yum install erlang + ${prefix} yum install erlang exit_on_error } function install_on_debian { FOUND=0 for item in ${list[@]}; do - if [ "$DIST" == "$item" ]; then + if [[ "$DIST" == "$item" ]]; then FOUND=1 break fi done - if [ "$FOUND" != "1" ]; then + if [[ "$FOUND" != "1" ]]; then echo "Invalid distribution found" print_usage fi echo "installing ERLANG" - $prefix apt-get install apt-transport-https libwxbase3.0-0v5 libwxgtk3.0-0v5 libsctp1 build-essential python-dev openssl libssl-dev libevent-dev git - $prefix apt-get purge -yf erlang* + ${prefix} apt-get install apt-transport-https libwxbase3.0-0v5 libwxgtk3.0-0v5 libsctp1 build-essential python-dev openssl libssl-dev libevent-dev git + ${prefix} apt-get purge -yf erlang* # Add the signing key wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add - - if [ ! -f "/etc/apt/sources.list.d/erlang.solutions.list" ]; then + if [[ ! -f "/etc/apt/sources.list.d/erlang.solutions.list" ]]; then echo "deb https://packages.erlang-solutions.com/ubuntu $DIST contrib" | sudo tee /etc/apt/sources.list.d/erlang.solutions.list fi - $prefix apt-get update - $prefix apt-get install -yf - $prefix apt-get install -y erlang-base erlang-diameter erlang-eldap erlang-ssl erlang-crypto erlang-asn1 erlang-public-key - $prefix apt-get install -y erlang-nox + version="1:22.1.8.1-1" + ${prefix} apt-get update + ${prefix} apt-get install -yf + ${prefix} apt-get install -y "erlang-asn1=$version" \ + "erlang-base=$version" \ + "erlang-crypto=$version" \ + "erlang-diameter=$version" \ + "erlang-edoc=$version" \ + "erlang-eldap=$version" \ + "erlang-erl-docgen=$version" \ + "erlang-eunit=$version" \ + "erlang-ic=$version" \ + "erlang-inets=$version" \ + "erlang-inviso=$version" \ + "erlang-mnesia=$version" \ + "erlang-odbc=$version" \ + "erlang-os-mon=$version" \ + "erlang-parsetools=$version" \ + "erlang-percept=$version" \ + "erlang-public-key=$version" \ + "erlang-runtime-tools=$version" \ + "erlang-snmp=$version" \ + "erlang-ssh=$version" \ + "erlang-ssl=$version" \ + "erlang-syntax-tools=$version" \ + "erlang-tools=$version" \ + "erlang-xmerl=$version" + + ${prefix} apt-get install -y "erlang-nox=$version" } os_name="$1" DIST="$2" user=`whoami` -if [ $user == 'root' ]; then +if [[ ${user} == 'root' ]]; then prefix="" else prefix="sudo" fi -$prefix pwd > /dev/null +${prefix} pwd > /dev/null -if [ "$os_name" == "debian" ]; then +if [[ "$os_name" == "debian" ]]; then install_on_debian -elif [ "$os_name" == "centos" ]; then +elif [[ "$os_name" == "centos" ]]; then install_on_centos else printf "For operating system/distributions not supported by this script, please install Erlang manually with the \ From b00432a90f5dd6b0648579346b06b58cc49a7c72 Mon Sep 17 00:00:00 2001 From: Craig <3979063+craig8@users.noreply.github.com> Date: Thu, 11 Jun 2020 14:50:49 -0700 Subject: [PATCH 2/4] Update bootstrap.py Pin to 0.30 wheel rather than ~= --- bootstrap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap.py b/bootstrap.py index 5141013021..04e30a2249 100644 --- a/bootstrap.py +++ b/bootstrap.py @@ -132,7 +132,7 @@ def update(operation, verbose=None, upgrade=False, offline=False, optional_requi # We must install wheel first to eliminate a bunch of scary looking # errors at first install. # TODO Look towards fixing the packaging so that it works with 0.31 - pip('install', ['wheel~=0.30'], verbose, True, offline=offline) + pip('install', ['wheel==0.30'], verbose, True, offline=offline) # Build option_requirements separately to pass install options build_option = '--build-option' if wheeling else '--install-option' From 76f7c6243653ce9867f48598a564842cb62093f2 Mon Sep 17 00:00:00 2001 From: Ben LaRoque Date: Thu, 11 Jun 2020 17:02:22 -0700 Subject: [PATCH 3/4] erlang version specified for raspbian differs from x86 distros --- scripts/rabbit_dependencies.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/rabbit_dependencies.sh b/scripts/rabbit_dependencies.sh index afdc7dfbbe..338cdcd818 100755 --- a/scripts/rabbit_dependencies.sh +++ b/scripts/rabbit_dependencies.sh @@ -79,7 +79,7 @@ function install_on_debian { echo "deb https://packages.erlang-solutions.com/ubuntu $DIST contrib" | sudo tee /etc/apt/sources.list.d/erlang.solutions.list fi - version="1:22.1.8.1-1" + version=${erlang_package_version} ${prefix} apt-get update ${prefix} apt-get install -yf ${prefix} apt-get install -y "erlang-asn1=$version" \ @@ -122,6 +122,10 @@ fi ${prefix} pwd > /dev/null if [[ "$os_name" == "debian" ]]; then + erlang_package_version="1:22.1.8.1-1" + install_on_debian +elif [[ "$os_name" == "raspbian" ]]; then + erlang_package_version="1:21.2.6+dfsg-1" install_on_debian elif [[ "$os_name" == "centos" ]]; then install_on_centos From dba3f62f1e0ec571121882f297931e6b0aea8cea Mon Sep 17 00:00:00 2001 From: Ben LaRoque Date: Thu, 11 Jun 2020 17:16:37 -0700 Subject: [PATCH 4/4] fixed readme section heading --- README.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 5166bd1eca..05a034f8ab 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ You can deactivate the environment at any time by running `deactivate`. For RabbitMQ based VOLTTRON, some of the RabbitMQ specific software packages have to be installed. -###### On Debian based systems (other than Raspbian) and CentOS 6/7 +###### On Debian based systems and CentOS 6/7 If you are running an Debian or CentOS system, you can install the RabbitMQ dependencies by running the rabbit dependencies script, passing in the OS name and appropriate distribution as parameters. The following are supported: @@ -85,20 +85,14 @@ If you are running an Debian or CentOS system, you can install the RabbitMQ depe - `debian stretch` (for Debian Stretch) -Example command: +- `debian buster` (for Debian Buster) -```sh -./scripts/rabbit_dependencies.sh debian xenial -``` +- `raspbian buster` (for Raspbian/Raspberry Pi OS buster) -###### On Raspbian buster - -To get the rabbmq dependencies, install the system rabbitmq-server package, and disable the system daemon with the following commands: +Example command: ```sh -sudo apt-get install rabbitmq-server -sudo systemctl stop rabbitmq-server -sudo systemctl disable rabbitmq-server +./scripts/rabbit_dependencies.sh debian xenial ``` ###### Alternatively