445 lines
15 KiB
Bash
445 lines
15 KiB
Bash
#!/bin/bash
|
|
function check_python3_lib() {
|
|
echo "Check python3 libs ......"
|
|
|
|
attrs_flag=`pip3.7.5 show attrs 2>/dev/null`
|
|
if [[ ! $attrs_flag ]];then
|
|
pip3.7.5 install attrs --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install attrs faild ,Please manually attrs"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
psutil_flag=`pip3.7.5 show psutil 2>/dev/null`
|
|
if [[ ! $psutil_flag ]];then
|
|
pip3.7.5 install psutil --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install psutil faild ,Please manually psutil"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
decorator_flag=`pip3.7.5 show decorator 2>/dev/null`
|
|
if [[ ! $decorator_flag ]];then
|
|
pip3.7.5 install decorator --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install decorator faild ,Please manually decorator"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
numpy_flag=`pip3.7.5 show numpy 2>/dev/null`
|
|
if [[ ! $numpy_flag ]];then
|
|
pip3.7.5 install numpy --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install numpy faild ,Please manually numpy"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
protobuf_version=`pip3.7.5 show protobuf | grep Version| awk -F'[: ]+' '{print $2}' 2>/dev/null`
|
|
if [[ ! $protobuf_version ]] || [ $protobuf_version != "3.11.3" ];then
|
|
pip3.7.5 install protobuf==3.11.3 --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install protobuf==3.11.3 faild ,Please manually protobuf"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
scipy_flag=`pip3.7.5 show scipy 2>/dev/null`
|
|
if [[ ! $scipy_flag ]];then
|
|
pip3.7.5 install scipy --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install scipy faild ,Please manually scipy"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
sympy_flag=`pip3.7.5 show sympy 2>/dev/null`
|
|
if [[ ! $sympy_flag ]];then
|
|
pip3.7.5 install sympy --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install sympy faild ,Please manually sympy"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
cffi_flag=`pip3.7.5 show cffi 2>/dev/null`
|
|
if [[ ! $cffi_flag ]];then
|
|
pip3.7.5 install cffi --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install cffi faild ,Please manually cffi"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
grpcio_flag=`pip3.7.5 show grpcio 2>/dev/null`
|
|
if [[ ! $grpcio_flag ]];then
|
|
pip3.7.5 install grpcio --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install grpcio faild ,Please manually grpcio"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
grpcio_tools_flag=`pip3.7.5 show grpcio-tools 2>/dev/null`
|
|
if [[ ! $grpcio_tools_flag ]];then
|
|
pip3.7.5 install grpcio-tools --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install grpcio-tools faild ,Please manually grpcio-tools"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
requests_flag=`pip3.7.5 show requests 2>/dev/null`
|
|
if [[ ! $requests_flag ]];then
|
|
pip3.7.5 install requests --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install requests faild ,Please manually requests"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
gnureadline_flag=`pip3.7.5 show gnureadline 2>/dev/null`
|
|
if [[ ! $gnureadline_flag ]];then
|
|
pip3.7.5 install gnureadline --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install gnureadline faild ,Please manually gnureadline"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
coverage_flag=`pip3.7.5 show coverage 2>/dev/null`
|
|
if [[ ! $coverage_flag ]];then
|
|
pip3.7.5 install coverage --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install coverage faild ,Please manually coverage"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
matplotlib_flag=`pip3.7.5 show matplotlib 2>/dev/null`
|
|
if [[ ! $matplotlib_flag ]];then
|
|
pip3.7.5 install matplotlib --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install matplotlib faild ,Please manually matplotlib"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
PyQt5_version=`pip3.7.5 show PyQt5 | grep Version| awk -F'[: ]+' '{print $2}' 2>/dev/null`
|
|
if [[ ! $PyQt5_version ]] || [ $PyQt5_version != "5.14.0" ];then
|
|
pip3.7.5 install PyQt5==5.14.0 --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install PyQt5==5.14.0 faild ,Please manually PyQt5"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
tensorflow_version=`pip3.7.5 show tensorflow | grep Version| awk -F'[: ]+' '{print $2}' 2>/dev/null`
|
|
if [[ ! $tensorflow_version ]] || [ $tensorflow_version != "1.15" ];then
|
|
pip3.7.5 install tensorflow==1.15 --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install tensorflow==1.15 faild ,Please manually tensorflow"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
pylint_flag=`pip3.7.5 show pylint 2>/dev/null`
|
|
if [[ ! $pylint_flag ]];then
|
|
pip3.7.5 install pylint --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install pylint faild ,Please manually pylint"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
tornado_version=`pip3.7.5 show tornado | grep Version| awk -F'[: ]+' '{print $2}' 2>/dev/null`
|
|
if [[ ! $tornado_version ]] || [ $tornado_version != "5.1.0" ];then
|
|
pip3.7.5 install tornado==5.1.0 --user -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
|
if [[ $? -ne 0 ]];then
|
|
echo "[ERROR] pip3.7.5 install tornado==5.1.0 faild ,Please manually tornado"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
return 0
|
|
echo "python3 libs have benn prepared."
|
|
}
|
|
|
|
function install_python3.7.5() {
|
|
sudo rm -rf /usr/bin/python3.7.5
|
|
sudo rm -rf /usr/bin/pip3.7.5
|
|
sudo rm -rf /usr/bin/python3.7
|
|
sudo rm -rf /usr/bin/pip3.7
|
|
|
|
echo "python3.7.5 and pip3.7.5 are about to install."
|
|
cd $HOME
|
|
find ~/Python-3.7.5.tgz -exec rm -rf {} +
|
|
find ~/Python-3.7.5 -exec sudo rm -rf {} +
|
|
|
|
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
|
|
if [ $? -ne 0 ];then
|
|
echo "[ERROR]: install failed, please check Network."
|
|
return 1
|
|
fi
|
|
|
|
tar -zxvf Python-3.7.5.tgz
|
|
cd Python-3.7.5
|
|
./configure --prefix=/usr/local/python3.7.5 --enable-shared
|
|
make
|
|
sudo make install
|
|
|
|
sudo cp /usr/local/python3.7.5/lib/libpython3.7m.so.1.0 /usr/lib
|
|
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7
|
|
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7
|
|
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5
|
|
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5
|
|
return 0
|
|
}
|
|
|
|
function install_toolkit() {
|
|
TOOLKIT_flag_arm64=`find $HOME -maxdepth 1 -name "Ascend-*-arm64-*.run" 2> /dev/null`
|
|
TOOLKIT_flag_x86_64=`find $HOME -maxdepth 1 -name "Ascend-*-x86_64-*.run" 2> /dev/null`
|
|
if [[ ! $TOOLKIT_flag_arm64 ]] && [[ ! $TOOLKIT_flag_x86_64 ]];then
|
|
echo "[Error]:Can not find the Ascend-Toolkit-[version]-arm64-linux_gcc7.3.0.run package and Ascend-Toolkit-[version]-x86_64-linux_gcc7.3.0.run package "
|
|
echo "please go to the official website to download the Toolkit installation package you need."
|
|
echo "Exit installation."
|
|
return 1
|
|
elif [ $TOOLKIT_flag_arm64 ] && [ $TOOLKIT_flag_x86_64 ];then
|
|
echo "find the Ascend-Toolkit-[version]-arm64-linux_gcc7.3.0.run package and Ascend-Toolkit-[version]-x86_64-linux_gcc7.3.0.run package "
|
|
TOOLKIT_arm64="YES"
|
|
TOOLKIT_x86_64="YES"
|
|
elif [ $TOOLKIT_flag_arm64 ];then
|
|
echo "only find Ascend-Toolkit-[version]-arm64-linux_gcc7.3.0.run package"
|
|
echo "please go to the official website to download Ascend-Toolkit-[version]-x86_64-linux_gcc7.3.0.run package."
|
|
return 1;
|
|
elif [ $TOOLKIT_flag_x86_64 ];then
|
|
echo "only find Ascend-Toolkit-[version]-x86_64-linux_gcc7.3.0.run package"
|
|
echo "please go to the official website to download Ascend-Toolkit-[version]-x86_64-linux_gcc7.3.0.run package."
|
|
return 1;
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
main()
|
|
{
|
|
Ubuntu_version=`cat /etc/issue | grep Ubuntu |awk -F'[ ]+' '{print $2}'`
|
|
if [ ! $Ubuntu_version ] || [ ${Ubuntu_version%.*} != "18.04" ]; then
|
|
echo "This script is only available for Ubuntu18.04. If not, please change the script or Ubuntu version. Exit installation"
|
|
return 1
|
|
fi
|
|
|
|
mt=`free | tr [:blank:] \\\n | grep [0-9] | sed -n '1p'`
|
|
mx=`expr $mt \/ 1024 \/ 1024`
|
|
echo "linux memory is $mx G"
|
|
if [ $mx -lt 4 ]; then
|
|
echo "Linux Mem < 4G, please add mem for using MindStudio."
|
|
echo "Exit installation"
|
|
return 1
|
|
else
|
|
echo "Memory is enough. To be continue."
|
|
fi
|
|
|
|
max_num=4
|
|
df_num=`df -h | awk -F' ' '$6 ~ /^\/$/ {print $4}'|awk -F'[ Gg]+' '{print $1}'`
|
|
echo "linux space is $df_num G"
|
|
if [ $df_num -le $max_num ]; then
|
|
echo "Space is not enough, please manually release space to download mindstudio and toolkit."
|
|
echo "Exit installation"
|
|
return 1
|
|
else
|
|
echo "Space is enough. To be continue."
|
|
fi
|
|
|
|
echo "The C73 development environment is about to be installed."
|
|
echo "ubuntu : 18.04"
|
|
echo "MindStudio: 2.3.3"
|
|
|
|
echo "The next step is system update"
|
|
sudo apt update
|
|
if [[ $? -ne 0 ]];then
|
|
echo "Update failed.Please check the network"
|
|
return 1
|
|
fi
|
|
|
|
C73_flag=`find $HOME -maxdepth 1 -name "MindStudio-ubuntu" 2> /dev/null`
|
|
if [[ $C73_flag ]];then
|
|
read -p "[INFO] The Mind Studio is existence. Do you want to re-install ? [Y/N]. default option is Y: " response
|
|
if [ $response"z" = "Nz" ] || [ $response"z" = "nz" ]; then
|
|
echo "MindStudio is about to open."
|
|
bash $C73_flag/bin/MindStudio.sh &
|
|
return 0
|
|
elif [ $response"z" = "Yz" ] || [ $response"z" = "yz" ] || [ $response"z" = "z" ]; then
|
|
rm -rf $C73_flag
|
|
rm -rf .mindstudio
|
|
rm -rf .MindStudioMS-2.3
|
|
else
|
|
echo "[ERROR] Please input Y/N!"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
|
|
package_flag=`find $HOME -maxdepth 1 -name "mindstudio.tar.gz" 2> /dev/null`
|
|
if [[ ! $package_flag ]];then
|
|
read -p "[INFO] Can not find mindstudio.tar.gz in $HOME,do you want download ? [Y/N]. default option is Y: " response
|
|
if [ $response"z" = "Nz" ] || [ $response"z" = "nz" ]; then
|
|
echo "Exit installation"
|
|
return 1
|
|
elif [ $response"z" = "Yz" ] || [ $response"z" = "yz" ] || [ $response"z" = "z" ]; then
|
|
MIN_Download="YES"
|
|
else
|
|
echo "[ERROR] Please input Y/N!"
|
|
return 1
|
|
fi
|
|
else
|
|
echo "tar zxvf $package_flag"
|
|
tar zxvf $package_flag
|
|
fi
|
|
|
|
|
|
TOOLKIT_flag=`find ~/Ascend/ascend-toolkit/ -name "20.0.*" 2> /dev/null`
|
|
if [ $TOOLKIT_flag ]; then
|
|
read -p "ascend-toolkit have been installed , do you want to reinstall ascend-toolkit ? [Y/N]. default option is N: " response
|
|
if [ $response"z" = "Nz" ] || [ $response"z" = "nz" ]|| [ $response"z" = "z" ]; then
|
|
echo "To be continue."
|
|
elif [ $response"z" = "Yz" ] || [ $response"z" = "yz" ]; then
|
|
sudo rm -rf ~/Ascend
|
|
echo "To be continue."
|
|
install_toolkit
|
|
if [ $? -ne 0 ];then
|
|
return 1
|
|
fi
|
|
else
|
|
echo "[ERROR] Please input Y/N!"
|
|
return 1
|
|
fi
|
|
else
|
|
install_toolkit
|
|
if [ $? -ne 0 ];then
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
sudo apt-get install -y gcc g++ make cmake unzip wget zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev pciutils net-tools 2>/dev/null
|
|
if [ $? -ne 0 ];then
|
|
echo "[ERROR]: install failed, please check Network."
|
|
return 1
|
|
fi
|
|
|
|
sudo apt-get install -y xterm firefox xdg-utils fonts-droid-fallback fonts-wqy-zenhei fonts-wqy-microhei fonts-arphic-ukai fonts-arphic-uming 2>/dev/null
|
|
if [ $? -ne 0 ];then
|
|
echo "[ERROR]: install failed, please check Network."
|
|
return 1
|
|
fi
|
|
|
|
sudo apt-get -y install libcanberra-gtk-module openjdk-8-jdk 2>/dev/null
|
|
if [ $? -ne 0 ];then
|
|
echo "[ERROR]: install failed, please check Network."
|
|
return 1
|
|
fi
|
|
|
|
sudo apt install -y git 2>/dev/null
|
|
if [ $? -ne 0 ];then
|
|
echo "[ERROR]: install failed, please check Network."
|
|
return 1
|
|
fi
|
|
|
|
sudo apt-get install -y qemu-user-static binfmt-support python3-yaml gcc-aarch64-linux-gnu g++-aarch64-linux-gnu g++-5-aarch64-linux-gnu 2>/dev/null
|
|
if [ $? -ne 0 ];then
|
|
echo "[ERROR]: install failed, please check Network."
|
|
return 1
|
|
fi
|
|
|
|
pip_flag=`pip3.7.5 --version 2>/dev/null`
|
|
python_flag=`python3.7.5 --version 2>/dev/null`
|
|
if [[ $pip_flag ]] && [[ $python_flag ]];then
|
|
read -p "python3.7.5 and pip3.7.5 have been installed , do you want to reinstall python3.7.5 ?. [Y/N]. default option is N: " response
|
|
if [ $response"z" = "Nz" ] || [ $response"z" = "nz" ] || [ $response"z" = "z" ]; then
|
|
check_python3_lib
|
|
if [ $? -ne 0 ];then
|
|
echo "python3.7.5 libs install failed! "
|
|
echo "Now reinstalling python3.7.5 "
|
|
install_python3.7.5
|
|
if [ $? -ne 0 ];then
|
|
echo "reinstall python3.7.5 failed"
|
|
return 1
|
|
fi
|
|
check_python3_lib
|
|
if [ $? -ne 0 ];then
|
|
echo "installing python libs failed"
|
|
return 1
|
|
fi
|
|
fi
|
|
elif [ $response"z" = "Yz" ] || [ $response"z" = "yz" ]; then
|
|
install_python3.7.5
|
|
if [ $? -ne 0 ];then
|
|
echo "reinstall python3.7.5 failed"
|
|
return 1
|
|
fi
|
|
check_python3_lib
|
|
if [ $? -ne 0 ];then
|
|
echo "installing python libs failed"
|
|
return 1
|
|
fi
|
|
else
|
|
echo "[ERROR] Please input Y/N!"
|
|
return 1
|
|
fi
|
|
else
|
|
install_python3.7.5
|
|
if [ $? -ne 0 ];then
|
|
echo "install python3.7.5 failed"
|
|
return 1
|
|
fi
|
|
check_python3_lib
|
|
if [ $? -ne 0 ];then
|
|
echo "install python libs failed"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
if [[ $MIN_Download ]];then
|
|
wget -O $HOME/mindstudio.tar.gz "https://mindstudio--ddk.obs.cn-north-1.myhuaweicloud.com/C73B050/mindstudio.tar.gz" --no-check-certificate
|
|
if [ $? -ne 0 ];then
|
|
echo "ERROR: download failed, please check Network."
|
|
rm -rf $HOME/mindstudio.tar.gz
|
|
return 1
|
|
else
|
|
cd $HOME
|
|
tar zxvf mindstudio.tar.gz
|
|
fi
|
|
fi
|
|
|
|
cd $HOME
|
|
if [[ $TOOLKIT_arm64 ]];then
|
|
find Ascend-*-arm64-*.run -exec chmod 777 {} +
|
|
find Ascend-*-arm64-*.run -exec ./{} --install \;
|
|
if [ $? -ne 0 ];then
|
|
echo "ERROR: install failed, please verify that the toolkit-arm64 package is installed."
|
|
return 1
|
|
else
|
|
echo "install success, the toolkit-arm64 package is installed."
|
|
fi
|
|
fi
|
|
|
|
if [[ $TOOLKIT_x86_64 ]];then
|
|
find Ascend-*-x86_64-*.run -exec chmod 777 {} +
|
|
find Ascend-*-x86_64-*.run -exec ./{} --install \;
|
|
if [ $? -ne 0 ];then
|
|
echo "ERROR: install failed, please verify that the toolkit-x86_64 package is installed."
|
|
return 1
|
|
else
|
|
echo "install success, the toolkit-x86_64 package is installed."
|
|
fi
|
|
fi
|
|
|
|
echo "The C73 environment was successfully deployed, with MindStudio version 2.3.3"
|
|
|
|
echo "MindStudio is about to open."
|
|
bash $HOME/MindStudio-ubuntu/bin/MindStudio.sh &
|
|
}
|
|
main
|