96 lines
2.8 KiB
Bash
Executable File
96 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
echo "START: installing MapR ecosystem repository"
|
|
|
|
MAPR_REPO_DIR=/opt/mapr-repository/ecosystem
|
|
|
|
RPM_REPO=${DIB_MAPR_ECO_RPM_REPO:-}
|
|
DEB_REPO=${DIB_MAPR_ECO_DEB_REPO:-}
|
|
|
|
if [ "$DISTRO_NAME" = "ubuntu" ]; then
|
|
case "$DIB_MAPR_VERSION" in
|
|
"3.1.1")
|
|
MAPR_REPO_URL=${DIB_MAPR_ECO_DEB_REPO:-"http://package.mapr.com/releases/ecosystem/ubuntu/"}
|
|
;;
|
|
"4.0.1" | "4.0.2")
|
|
MAPR_REPO_URL=${DIB_MAPR_ECO_DEB_REPO:-"http://package.mapr.com/releases/ecosystem-4.x/ubuntu/"}
|
|
;;
|
|
esac
|
|
elif [ "$DISTRO_NAME" = "centos" -o "$DISTRO_NAME" = "rhel" ]; then
|
|
case "$DIB_MAPR_VERSION" in
|
|
"3.1.1")
|
|
MAPR_REPO_URL=${DIB_MAPR_ECO_RPM_REPO:-"http://package.mapr.com/releases/ecosystem/redhat/"}
|
|
;;
|
|
"4.0.1" | "4.0.2")
|
|
MAPR_REPO_URL=${DIB_MAPR_ECO_RPM_REPO:-"http://package.mapr.com/releases/ecosystem-4.x/redhat/"}
|
|
;;
|
|
esac
|
|
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_NAME" = "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_NAME" = "centos" -o "$DISTRO_NAME" = "rhel" ]; then
|
|
createrepo "${MAPR_REPO_DIR}"
|
|
fi
|
|
|
|
echo "Adding MapR repository"
|
|
if [ "$DISTRO_NAME" = "ubuntu" ]; then
|
|
cat >> /etc/apt/sources.list.d/maprtech.list << EOF
|
|
deb [arch=amd64] file://${MAPR_REPO_DIR} binary optional
|
|
EOF
|
|
|
|
elif [ "$DISTRO_NAME" = "centos" -o "$DISTRO_NAME" = "rhel" ]; 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"
|
|
|