sahara-image-elements/elements/hadoop-mapr/install.d/44-mapr-eco-repository

88 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
set -eux
echo "START: installing MapR ecosystem repository"
MAPR_REPO_DIR=/opt/mapr-repository/ecosystem
DISTRO=$(lsb_release -is || :)
RPM_REPO=${DIB_MAPR_ECO_RPM_REPO:-}
DEB_REPO=${DIB_MAPR_ECO_DEB_REPO:-}
if [ "$DISTRO" = "Ubuntu" ]; then
if [ "$DIB_MAPR_VERSION" = "3.1.1" ]; then
MAPR_REPO_URL=${DIB_MAPR_ECO_DEB_REPO:-"http://package.mapr.com/releases/ecosystem/ubuntu/"}
elif [ "$DIB_MAPR_VERSION" = "4.0.1" ]; then
MAPR_REPO_URL=${DIB_MAPR_ECO_DEB_REPO:-"http://package.mapr.com/releases/ecosystem-4.x/ubuntu/"}
fi
elif [ "$DISTRO" = 'CentOS' -o "$DISTRO" = 'RedHatEnterpriseServer' ]; then
if [ "$DIB_MAPR_VERSION" = "3.1.1" ]; then
MAPR_REPO_URL=${DIB_MAPR_ECO_RPM_REPO:-"http://package.mapr.com/releases/ecosystem/redhat/"}
elif [ "$DIB_MAPR_VERSION" = "4.0.1" ]; then
MAPR_REPO_URL=${DIB_MAPR_ECO_RPM_REPO:-"http://package.mapr.com/releases/ecosystem-4.x/redhat/"}
fi
else
echo "Unknown distribution"
exit 1
fi
echo "Downloading MapR repository archive"
if [ -z ${DEB_REPO} -o -z ${RPM_REPO} ]; then
LATEST_ARCHIVE=$(curl -s ${MAPR_REPO_URL} | grep -Po '(?<=<a href=")(mapr-ecosystem.*?\.tgz)(?<!">)' | uniq | sort | tail -n 1)
if [ -z ${LATEST_ARCHIVE} ]; then
echo "No repository archive found"
exit 1
fi
MAPR_REPO_URL=${MAPR_REPO_URL}/${LATEST_ARCHIVE}
fi
mkdir -p ${MAPR_REPO_DIR}
sudo curl ${MAPR_REPO_URL} -o ${MAPR_REPO_DIR}/mapr-ecosystem.tgz
if [ $? != 0 ]; then
echo "MapR repository archive download failed"
exit 1
fi
echo "Unpacking MapR repository archive"
tar -zxf ${MAPR_REPO_DIR}/mapr-ecosystem.tgz -C ${MAPR_REPO_DIR}
echo "Removing MapR repository archive"
rm -f ${MAPR_REPO_DIR}/mapr-ecosystem.tgz
echo "Removing old packages"
SCRIPT_FILE="/tmp/versions.py"
SPEC_FILE="/opt/mapr-repository/version-spec"
python ${SCRIPT_FILE} --path ${MAPR_REPO_DIR} --spec-file ${SPEC_FILE} | xargs sudo rm -f || echo "Operation failed"
if [ "$DISTRO" = "Ubuntu" ]; then
mkdir -p "${MAPR_REPO_DIR}"/dists/binary/optional/binary-amd64
cd ${MAPR_REPO_DIR}
dpkg-scanpackages -m . /dev/null | gzip -9c > dists/binary/optional/binary-amd64/Packages.gz
elif [ "$DISTRO" = 'CentOS' -o "$DISTRO" = 'RedHatEnterpriseServer' ]; then
createrepo "${MAPR_REPO_DIR}"
fi
echo "Adding MapR repository"
if [ "$DISTRO" = "Ubuntu" ]; then
cat >> /etc/apt/sources.list.d/maprtech.list << EOF
deb [arch=amd64] file://${MAPR_REPO_DIR} binary optional
EOF
elif [ "$DISTRO" = 'CentOS' -o "$DISTRO" = 'RedHatEnterpriseServer' ]; then
cat >> /etc/yum.repos.d/maprtech.repo << EOF
[mapr-ecosystem]
name=MapR Technologies
baseurl=file://${MAPR_REPO_DIR}
enabled=1
gpgcheck=0
protect=1
EOF
fi
echo "END: installing MapR ecosystem repository"