From 4ecac88a8e5cdbc786f630d038dbaee27319962d Mon Sep 17 00:00:00 2001 From: "0.0" <3030567542@qq.com> Date: Mon, 14 Sep 2020 17:12:15 +0800 Subject: [PATCH] review --- faster_install/for_1.7x.0.0/faster_install.sh | 444 ++++++++++++++++++ 1 file changed, 444 insertions(+) create mode 100644 faster_install/for_1.7x.0.0/faster_install.sh diff --git a/faster_install/for_1.7x.0.0/faster_install.sh b/faster_install/for_1.7x.0.0/faster_install.sh new file mode 100644 index 0000000..98dcf26 --- /dev/null +++ b/faster_install/for_1.7x.0.0/faster_install.sh @@ -0,0 +1,444 @@ +#!/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