Closed ghost closed 9 years ago
@a93ushakov HI, Can you give more informations? such as the log? you can run hyperd with -v=3 to get detail log.
Problem is in installer. I quickly add Linux Mint support to bash installer script.
install.sh
#!/bin/bash
# Description: This script is used to install hyper cli and hyperd
# Usage:
# install from remote
# wget -qO- https://hyper.sh/install | bash
# curl -sSL https://hyper.sh/install | bash
# install from local
# ./bootstrap.sh
BASE_DIR=$(cd "$(dirname "$0")"; pwd); cd ${BASE_DIR}
DEV_MODE=""; SLEEP_SEC=10; SUPPORT_XEN="";
if [ $# -eq 1 -a "$1" == "--dev" ];then
DEV_MODE="-dev"; SLEEP_SEC=3; echo "[test mode]"
fi
set -e
########## Variable ##########
CURRENT_USER="$(id -un 2>/dev/null || true)"
BOOTSTRAP_DIR="/tmp/hyper-bootstrap-${CURRENT_USER}"
########## Parameter ##########
S3_URL="http://hyper-install${DEV_MODE}.s3.amazonaws.com"
PKG_FILE="hyper-latest${DEV_MODE}.tgz"
UNTAR_DIR="hyper-pkg"
SUPPORT_EMAIL="support@hyper.sh"
########## Constant ##########
SUPPORT_DISTRO=(debian ubuntu fedora centos linuxmint)
LINUX_MINT_CODE=(rafaela rebecca qiana)
UBUNTU_CODE=(trusty utopic vivid)
DEBIAN_CODE=(jessie wheezy)
CENTOS_VER=(6 7)
FEDORA_VER=(20 21 22)
#Color Constant
RED=`tput setaf 1`
GREEN=`tput setaf 2`
YELLOW=`tput setaf 3`
BLUE=`tput setaf 4`
WHITE=`tput setaf 7`
LIGHT=`tput bold `
RESET=`tput sgr0`
#Error Message
ERR_ROOT_PRIVILEGE_REQUIRED=(10 "This install script need root privilege, please retry use 'sudo' or root user!")
ERR_NOT_SUPPORT_PLATFORM=(20 "Sorry, Hyper only support x86_64 platform!")
ERR_NOT_SUPPORT_DISTRO=(21 "Sorry, Hyper only support ubuntu/debian/fedora/centos/linuxmint(17.x) now!")
ERR_NOT_SUPPORT_DISTRO_VERSION=(22)
ERR_DOCKER_NOT_INSTALL=(30 "Please install docker 1.5+ first!")
ERR_DOCKER_LOW_VERSION=(31 "Need Docker version 1.5 at least!")
ERR_DOCKER_NOT_RUNNING=(32 "Docker daemon isn't running!")
ERR_DOCKER_GET_VER_FAILED=(33 "Can not get docker version!")
ERR_DOCKER_UNSUPPORTED_STORE_DRV=(34 "Only docker storage driver 'aufs' and 'devicemapper' are supported!")
ERR_QEMU_NOT_INSTALL=(40 "Please install Qemu 2.0+ first!")
ERR_QEMU_LOW_VERSION=(41 "Need Qemu version 2.0 at least!")
ERR_XEN_NOT_INSTALL=(50 "Please install xen 4.5+ first!")
ERR_XEN_GET_VER_FAILED=(51 "Can not get xen version, xen daemon isn't running!")
ERR_XEN_VER_LOW=(52 "Sorry, hyper only support xen 4.5+")
ERR_FETCH_INST_PKG_FAILED=(60 "Fetch install package failed, please retry!")
ERR_INST_PKG_MD5_ERROR=(61 "Checksum of install package error, please retry!")
ERR_UNTAR_PKG_FAILED=(62 "Untar install package failed!")
ERR_EXEC_INSTALL_FAILED=(70 "Install hyper failed!")
ERR_INSTALL_SERVICE_FAILED=(71 "Install hyperd as service failed!")
ERR_HYPER_NOT_FOUND=(72 "Can not find hyper and hyperd after setup!")
ERR_UNKNOWN_MSG_TYPE=98
ERR_UNKNOWN=99
########## Function Definition ##########
main() {
check_user
check_deps
check_hyper_before_install
if [[ -f install.sh ]] && [[ -d bin ]] && [[ -d boot ]] && [[ -d service ]];then
show_message debug "Install from local ${BASE_DIR}/"
BOOTSTRAP_DIR="${BASE_DIR}"
else
show_message debug "Install from remote"
fetch_hyper_package
fi
stop_running_hyperd
install_hyper
start_hyperd_service
exit 0
}
check_hyper_before_install() {
if (command_exist hyper hyperd);then
echo "${WHITE}"
cat <<COMMENT
Prompt: "hyper" appears to already installed, hyperd serive will be restart during install.
You may press Ctrl+C to abort this process.
COMMENT
echo -e -n "+ sleep ${SLEEP_SEC} seconds${RESET}"
n=${SLEEP_SEC}
until [ ${n} -le 0 ]; do
echo -n "." && n=$((n-1)) && sleep 1
done
echo
fi
}
check_user() {
BASH_C="bash -c"
if [ "${CURRENT_USER}" != "root" ];then
if (command_exist sudo);then
BASH_C="sudo -E bash -c"
else
show_message error "${ERR_ROOT_PRIVILEGE_REQUIRED[1]}" && exit ${ERR_ROOT_PRIVILEGE_REQUIRED[0]}
fi
show_message info "${WHITE}Hint: Hyper installer need root privilege\n"
${BASH_C} "echo -n"
fi
}
check_deps() {
show_message info "Check dependency "
check_deps_platform
check_deps_distro
check_deps_docker
if [ "${SUPPORT_XEN}" == "" ];then
check_deps_qemu
else
check_deps_xen
fi
check_deps_initsystem
show_message done " Done"
}
check_deps_platform() {
ARCH="$(uname -m)"
if [ "${ARCH}" != "x86_64" ];then
show_message error "${ERR_NOT_SUPPORT_PLATFORM[1]}" && exit ${ERR_NOT_SUPPORT_PLATFORM[0]}
fi
echo -n "."
}
check_deps_distro() {
LSB_DISTRO=""; LSB_VER=""; LSB_CODE=""
if (command_exist lsb_release);then
LSB_DISTRO="$(lsb_release -si)"
LSB_VER="$(lsb_release -sr)"
LSB_CODE="$(lsb_release -sc)"
fi
if [ -z "${LSB_DISTRO}" ];then
if [ -r /etc/lsb-release ];then
LSB_DISTRO="$(. /etc/lsb-release && echo "${DISTRIB_ID}")"
LSB_VER="$(. /etc/lsb-release && echo "${DISTRIB_RELEASE}")"
LSB_CODE="$(. /etc/lsb-release && echo "${DISTRIB_CODENAME}")"
elif [ -r /etc/os-release ];then
LSB_DISTRO="$(. /etc/os-release && echo "$ID")"
LSB_VER="$(. /etc/os-release && echo "$VERSION_ID")"
elif [ -r /etc/fedora-release ];then
LSB_DISTRO="fedora"
elif [ -r /etc/debian_version ];then
LSB_DISTRO="Debian"
LSB_VER="$(cat /etc/debian_version)"
elif [ -r /etc/centos-release ];then
LSB_DISTRO="CentOS"
LSB_VER="$(cat /etc/centos-release | cut -d' ' -f3)"
fi
fi
LSB_DISTRO=$(echo "${LSB_DISTRO}" | tr '[:upper:]' '[:lower:]')
if [ "${LSB_DISTRO}" == "debian" ];then
case ${LSB_VER} in
8) LSB_CODE="jessie";;
7) LSB_CODE="wheezy";;
esac
fi
case "${LSB_DISTRO}" in
linuxmint)
if [ "${LSB_DISTRO}" == "linuxmint" ]
then SUPPORT_CODE_LIST="${LINUX_MINT_CODE[@]}";
fi
if (echo "${SUPPORT_CODE_LIST}" | grep -v -w "${LSB_CODE}" &>/dev/null);then
show_message error "Hyper support ${LSB_DISTRO}( ${SUPPORT_CODE_LIST} ), but current is ${LSB_CODE}(${LSB_VER})"
exit ${ERR_NOT_SUPPORT_DISTRO_VERSION[0]}
fi
;;
ubuntu|debian)
if [ "${LSB_DISTRO}" == "ubuntu" ]
then SUPPORT_CODE_LIST="${UBUNTU_CODE[@]}";
else SUPPORT_CODE_LIST="${DEBIAN_CODE[@]}";
fi
if (echo "${SUPPORT_CODE_LIST}" | grep -v -w "${LSB_CODE}" &>/dev/null);then
show_message error "Hyper support ${LSB_DISTRO}( ${SUPPORT_CODE_LIST} ), but current is ${LSB_CODE}(${LSB_VER})"
exit ${ERR_NOT_SUPPORT_DISTRO_VERSION[0]}
fi
;;
centos|fedora)
CMAJOR=$( echo ${LSB_VER} | cut -d"." -f1 )
if [ "${LSB_DISTRO}" == "centos" ]
then SUPPORT_VER_LIST="${CENTOS_VER[@]}";
else SUPPORT_VER_LIST="${FEDORA_VER[@]}";
fi
if (echo "${SUPPORT_VER_LIST}" | grep -v -w "${CMAJOR}" &>/dev/null);then
show_message error "Hyper support ${LSB_DISTRO}( ${SUPPORT_VER_LIST} ), but current is ${LSB_VER}"
exit ${ERR_NOT_SUPPORT_DISTRO_VERSION[0]}
fi
;;
*) if [ ! -z ${LSB_DISTRO} ];then echo -e -n "\nCurrent OS is '${LSB_DISTRO} ${LSB_VER}(${LSB_CODE})'";
else echo -e -n "\nCan not detect OS type"; fi
show_message error "${ERR_NOT_SUPPORT_DISTRO[1]}"
exit ${ERR_NOT_SUPPORT_DISTRO[0]}
;;
esac
echo -n "."
}
check_deps_docker() { #docker 1.5+ should be installed and running
if (command_exist docker);then
set +e
${BASH_C} "docker version > /dev/null 2>&1"
if [ $? -ne 0 ];then
show_message error "${ERR_DOCKER_NOT_RUNNING[1]}\n"
cat <<COMMENT
Please start docker service:
sudo service docker start
COMMENT
exit ${ERR_DOCKER_NOT_RUNNING[0]}
fi
local DOCKER_VER=$(${BASH_C} "docker version" 2>/dev/null | sed -ne 's/Server version:[[:space:]]*\([0-9]\{1,\}\)*/\1/p')
set -e
read DMAJOR DMINOR DFIX < <( echo ${DOCKER_VER} | awk -F"." '{print $1,$2,$3}')
if [ -z ${DMAJOR} -o -z ${DMINOR} ];then
show_message error "${ERR_DOCKER_GET_VER_FAILED[1]}"
display_support ${ERR_DOCKER_GET_VER_FAILED[0]}
exit ${ERR_DOCKER_GET_VER_FAILED[0]}
fi
if [ ${DMAJOR} -lt 1 ] || [ ${DMAJOR} -eq 1 -a ${DMINOR} -lt 5 ];then
show_message error "${ERR_DOCKER_LOW_VERSION[1]} but current is ${DMAJOR}.${DMINOR}, please upgrade docker first!"
exit ${ERR_DOCKER_LOW_VERSION[0]]}
fi
STORE_DRV=$(${BASH_C} "docker info 2>/dev/null |sed -ne 's/Storage Driver: \(.*\)/\1/p'")
if [[ $STORE_DRV != "aufs" ]] && [[ $STORE_DRV != "devicemapper" ]]; then
show_message error "${ERR_DOCKER_UNSUPPORTED_STORE_DRV[1]}\n" && exit ${ERR_DOCKER_UNSUPPORTED_STORE_DRV[0]}
fi
else
show_message error "${ERR_DOCKER_NOT_INSTALL[1]}"
if [ "${LSB_DISTRO}" == "ubuntu" ];then
_OS="linux"
fi
echo -e "\nInstructions for installing Docker on ${LSB_DISTRO}${_OS}"
echo -e " https://docs.docker.com/installation/${LSB_DISTRO}${_OS}/\n"
exit ${ERR_DOCKER_NOT_INSTALL[0]}
fi
echo -n "."
}
check_deps_xen() {
set +e
${BASH_C} "which xl" >/dev/null 2>&1
if [ $? -ne 0 ];then
show_message error "${ERR_XEN_NOT_INSTALL[1]}"
exit ${ERR_XEN_NOT_INSTALL[0]}
else
${BASH_C} "xl info" >/dev/null 2>&1
if [ $? -eq 0 ];then
XEN_MAJOR=$( ${BASH_C} "xl info" | grep xen_major | awk '{print $3}' )
XEN_MINOR=$( ${BASH_C} "xl info" | grep xen_minor | awk '{print $3}' )
XEN_VERSION=$( ${BASH_C} "xl info" | grep xen_version | awk '{print $3}' )
show_message debug "xen(${XEN_VERSION}) found"
if [[ $XEN_MAJOR -ge 4 ]] && [[ $XEN_MINOR -ge 5 ]];then
PKG_FILE="hyper${SUPPORT_XEN}-latest${DEV_MODE}.tgz"
UNTAR_DIR="hyper-pkg${SUPPORT_XEN}"
else
show_message error "${ERR_XEN_VER_LOW[1]}"
exit ${ERR_XEN_VER_LOW[0]}
fi
else
show_message error "${ERR_XEN_GET_VER_FAILED[1]}"
exit ${ERR_XEN_GET_VER_FAILED[0]}
fi
fi
set -e
}
check_deps_qemu() { #QEMU 2.0+ should be installed
if (command_exist qemu-system-x86_64);then
local QEMU_VER=$(qemu-system-x86_64 --version | awk '{print $4}' | cut -d"," -f1)
read QMAJOR QMINOR QFIX < <( echo ${QEMU_VER} | awk -F'.' '{print $1,$2,$3 }')
if [ ${QMAJOR} -lt 2 ] ;then
show_message error "${ERR_QEMU_LOW_VERSION[1]}\n" && exit ${ERR_QEMU_LOW_VERSION[0]}
fi
else
show_message error "${ERR_QEMU_NOT_INSTALL[1]}\n" && exit ${ERR_QEMU_NOT_INSTALL[0]}
fi
echo -n "."
}
check_deps_initsystem() {
if [ "${LSB_DISTRO}" == "ubuntu" -a "${LSB_CODE}" == "utopic" ];then
INIT_SYSTEM="sysvinit"
elif (command_exist systemctl);then
INIT_SYSTEM="systemd"
else
INIT_SYSTEM="sysvinit"
fi
echo -n "."
}
fetch_hyper_package() {
show_message info "Fetch checksum and package...\n"
set +e
${BASH_C} "ping -c 3 -W 2 hyper-install${DEV_MODE}.s3.amazonaws.com >/dev/null 2>&1"
if [ $? -ne 0 ];then
S3_URL="http://mirror-hyper-install${DEV_MODE}.s3.amazonaws.com"
else
S3_URL="http://hyper-install${DEV_MODE}.s3.amazonaws.com"
fi
local SRC_URL="${S3_URL}/${PKG_FILE}"
local TGT_FILE="${BOOTSTRAP_DIR}/${PKG_FILE}"
local USE_WGET=$( echo $(get_curl) | awk -F"|" '{print $1}' )
local CURL_C=$( echo $(get_curl) | awk -F"|" '{print $2}' )
show_message debug "${SRC_URL} => ${TGT_FILE}"
mkdir -p ${BOOTSTRAP_DIR} && cd ${BOOTSTRAP_DIR}
if [ -s ${TGT_FILE} ];then
if [ "${USE_WGET}" == "true" -a "${DEV_MODE}" == "" ];then
${CURL_C} ${SRC_URL}.md5 2>&1 | grep --line-buffered "%" | sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
else
${CURL_C} ${TGT_FILE}.md5 ${SRC_URL}.md5
fi
if [ -s "${TGT_FILE}.md5" ];then
NEW_MD5=$( cat ${TGT_FILE}.md5 | awk '{print $1}' )
OLD_MD5=$( md5sum ${TGT_FILE} | awk '{print $1}' )
if [[ ! -z ${OLD_MD5} ]] && [[ ! -z ${NEW_MD5} ]] && [[ "${OLD_MD5}" != "${NEW_MD5}" ]];then
show_message info "${LIGHT}Found new hyper version, will download it now!\n"
${BASH_C} "\rm -rf ${BOOTSTRAP_DIR}/*"
elif [ ! -z ${OLD_MD5} -a "${OLD_MD5}" == "${NEW_MD5}" ];then #no update
${BASH_C} "\rm -rf ${BOOTSTRAP_DIR}/${UNTAR_DIR}"
else
${BASH_C} "\rm -rf ${BOOTSTRAP_DIR}/*"
fi
fi
elif [ -f ${TGT_FILE} ];then
${BASH_C} "\rm -rf ${BOOTSTRAP_DIR}/*"
fi
if [ ! -f ${TGT_FILE} ];then
\rm -rf ${TGT_FILE}.md5 >/dev/null 2>&1
if [ "${USE_WGET}" == "true" -a "${DEV_MODE}" == "" ];then
${CURL_C} ${SRC_URL}.md5 2>&1 | grep --line-buffered "%" | sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
${CURL_C} ${SRC_URL} 2>&1 | grep --line-buffered "%" | sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
else
${CURL_C} ${TGT_FILE}.md5 ${SRC_URL}.md5
${CURL_C} ${TGT_FILE} ${SRC_URL}
fi
if [ $? -ne 0 ];then
show_message error "${ERR_FETCH_INST_PKG_FAILED[1]}" && exit "${ERR_FETCH_INST_PKG_FAILED[0]}"
else
MD5_REMOTE=$(cat ${TGT_FILE}.md5 | awk '{print $1}'); MD5_LOCAL=$(md5sum ${TGT_FILE} | awk '{print $1}')
if [ ${MD5_REMOTE} != ${MD5_LOCAL} ];then
echo "required checksum: ${MD5_REMOTE}, but downloaded package is ${MD5_LOCAL}"
show_message error "${ERR_INST_PKG_MD5_ERROR[1]}" && exit "${ERR_INST_PKG_MD5_ERROR[0]}"
fi
fi
fi
${BASH_C} "cd ${BOOTSTRAP_DIR} && tar xzf ${PKG_FILE}"
if [ $? -ne 0 ];then
show_message error "${ERR_UNTAR_PKG_FAILED[1]}" && exit "${ERR_UNTAR_PKG_FAILED[0]}"
fi
BOOTSTRAP_DIR="${BOOTSTRAP_DIR}/${UNTAR_DIR}"
show_message done " Done"
set -e
}
install_hyper() {
show_message info "Installing "
set +e
cd ${BOOTSTRAP_DIR}
${BASH_C} "./install.sh" 1>/dev/null
if [ $? -ne 0 ];then
show_message error "${ERR_EXEC_INSTALL_FAILED[1]}" && exit "${ERR_EXEC_INSTALL_FAILED[0]}"
fi
echo -n "."
if [[ -f /usr/local/bin/hyper ]] && [[ -f /usr/local/bin/hyperd ]] && [[ ! -f /usr/bin/hyper ]] && [[ ! -f /usr/bin/hyperd ]] ;then
${BASH_C} "ln -s /usr/local/bin/hyper /usr/bin/hyper"
${BASH_C} "ln -s /usr/local/bin/hyperd /usr/bin/hyperd"
fi
if (command_exist hyper hyperd);then
install_hyperd_service
echo -n "."
else
show_message error "${ERR_HYPER_NOT_FOUND[1]}"
display_support ${ERR_HYPER_NOT_FOUND[0]}
exit ${ERR_HYPER_NOT_FOUND[0]}
fi
set -e
show_message done " Done"
}
install_hyperd_service() {
local SRC_INIT_FILE=""
local TGT_INIT_FILE=""
if [ "${INIT_SYSTEM}" == "sysvinit" ];then
if [ "${LSB_DISTRO}" == "debian" -a "${LSB_CODE}" == "wheezy" ];
then
SRC_INIT_FILE="${BOOTSTRAP_DIR}/service/init.d/hyperd.ubuntu"
else
SRC_INIT_FILE="${BOOTSTRAP_DIR}/service/init.d/hyperd.${LSB_DISTRO}"
fi
TGT_INIT_FILE="/etc/init.d/hyperd"
elif [ "${INIT_SYSTEM}" == "systemd" ];then
SRC_INIT_FILE="${BOOTSTRAP_DIR}/service/systemd/hyperd.service"
TGT_INIT_FILE="/lib/systemd/system/hyperd.service"
fi
if [ -s ${SRC_INIT_FILE} ];then
${BASH_C} "cp ${SRC_INIT_FILE} ${TGT_INIT_FILE}"
${BASH_C} "chmod +x ${TGT_INIT_FILE}"
else
show_message error "${ERR_INSTALL_SERVICE_FAILED[1]}"
display_support ${ERR_INSTALL_SERVICE_FAILED[1]}
exit ${ERR_INSTALL_SERVICE_FAILED[0]}
fi
}
stop_running_hyperd() {
set +e
pgrep hyperd >/dev/null 2>&1
if [ $? -eq 0 ];then
echo -e "\nStopping running hyperd service before install"
if [ "${INIT_SYSTEM}" == "systemd" ]
then ${BASH_C} "systemctl stop hyperd"
else ${BASH_C} "service hyperd stop";
fi
sleep 3
fi
set -e
}
start_hyperd_service() {
show_message info "Start hyperd service\n"
if [ "${INIT_SYSTEM}" == "systemd" ]
then ${BASH_C} "systemctl start hyperd"
else ${BASH_C} "service hyperd start";
fi
sleep 3
set +e
pgrep hyperd >/dev/null 2>&1
if [ $? -eq 0 ];then
if [ "${SUPPORT_XEN}" == "-xen" ];then
show_message success "\nhyperd for xen is running."
else
show_message success "\nhyperd for kvm/qemu is running."
fi
cat <<COMMENT
----------------------------------------------------
To see how to use hyper cli:
sudo hyper help
To manage hyperd service:
sudo service hyperd {start|stop|restart|status}
To get more information:
http://hyper.sh
COMMENT
else
show_message warn "\nhyperd isn't running."
cat <<COMMENT
Please try to start hyperd by manual:
sudo service hyperd restart
sudo service hyperd status
COMMENT
fi
set -e
}
display_support() {
echo "Sorry, we are suffering from some technical issue($1), please contact ${SUPPORT_EMAIL}"
if [ $# -eq 0 ];then exit ${ERR_UNKNOWN}
else exit $1
fi
}
command_exist() {
type "$@" > /dev/null 2>&1
}
get_curl() {
CURL_C=""; USE_WGET="false"
if (command_exist curl);then
if [ "${DEV_MODE}" != "" ];then CURL_C='curl -SL -o '; else CURL_C='curl -O --progress-bar -o '; fi
elif (command_exist wget);then
USE_WGET="true"
if [ "${DEV_MODE}" != "" ];then CURL_C='wget -O '; else CURL_C='wget --progress=dot '; fi
fi
echo "${USE_WGET}|${CURL_C}"
}
show_message() {
case "$1" in
debug) if [ "${DEV_MODE}" == "-dev" ];then echo -e "\n[${BLUE}DEBUG${RESET}] : $2"; fi;;
info) echo -e -n "\n${WHITE}$2${RESET}" ;;
warn) echo -e "\n[${YELLOW}WARN${RESET}] : $2" ;;
done|success) echo -e "${LIGHT}${GREEN}$2${RESET}" ;;
error|failed) echo -e "\n[${RED}ERROR${RESET}] : $2" ;;
esac
}
#################
main
Now it give an error that "Can not get docker version!" How to fix it?
P.S. installer code is not in this repo, right?
@Jimmy-Xu Could you please check this?
@a93ushakov
"Can not get docker version!"
The reason is docker version
output format changed.
$ sudo docker version Client version: 1.5.0 Client API version: 1.17 Go version (client): go1.4.1 Git commit (client): a8a31ef OS/Arch (client): linux/amd64 Server version: 1.5.0 <<---------------- Server API version: 1.17 Go version (server): go1.4.1 Git commit (server): a8a31ef
$ sudo docker version Client: Version: 1.8.1 API version: 1.20 Go version: go1.4.2 Git commit: d12ea79 Built: Thu Aug 13 02:35:49 UTC 2015 OS/Arch: linux/amd64
Server: Version: 1.8.1 <<---------------- API version: 1.20 Go version: go1.4.2 Git commit: d12ea79 Built: Thu Aug 13 02:35:49 UTC 2015 OS/Arch: linux/amd64
I had updated the install script(merged some of your code), it support linux mint(17.x) and docker 1.8+ now,
just run curl -sSL https://hyper.sh/install | bash
to retry.
installer code is not in this repo, right?
The install script is here https://github.com/hyperhq/hyper-installer
Thanks for report.
LM is based on Ubuntu LTS package base.