#!/bin/bash # centos 安装 vscode 配置 gcc g++ cmake 开发环境 vscodeUrl="http://work.eisc.cn/ruanjian/ubuntu/server/" dir="/datadisk/eisc/download/cmake" installDir="/datadisk/eisc/server" debList=( cmake-3.27.0-rc3.tar.gz make-4.4.tar.gz gcc-12.3.0.tar.gz ) downloadGF=( https://ftp.gnu.org/gnu/gcc/gcc-12.3.0/gcc-12.3.0.tar.gz https://ftp.gnu.org/gnu/make/make-4.4.tar.gz ) debrun=( cmake3 make4 gcc12 ) if [ $USER="root" ] then qx=" " else qx="sudo" fi xitong=` cat /etc/os-release | grep -w ID | awk -F"=" '{print $2}' | sed "s/\"//g" ` case "$xitong" in "centos" ) iCMD="yum" ; rpmCMD="rpm -qa " ; echo "当前是 centos 系统" ;; "ubuntu" ) iCMD="apt" ; rpmCMD="dpkg -l " ; echo "当前是 ubuntu 系统" ;; esac $qx $iCMD install -y openssl-devel gcc gcc-c++ g++ cmake make wget $qx mkdir -p $dir $installDir ; $qx chmod 777 $dir $installDir; cd $dir download() { for i in ${debList[*]} do debname=`echo $i | awk -F".tar.gz" '{print $1}'` debnameInstalled=`$qx $rpmCMD | grep -w "ii $debname"` debnameInstalledLength=${#debnameInstalled} $qx mkdir -p $installDir/$debname if [ $debnameInstalledLength -gt 1 ] then echo "[ok] 该包 $i 已经安装,安装信息: $debnameInstalled" installIF=0 else installIF=1 echo "[runing] 正在检查是否下载安装包: $i" if [ ! -e $i ] then echo "[runing] 当前没有下载,正在下载包:$i" $qx wget $vscodeUrl/$i echo "[running] 正在解压 $i 到目录: $installDir/$debname " $qx tar -xzvf $i -C $installDir else echo "[ok] 已经下载: $i " fi fi done } debinstall(){ for((i=0;i<=${#debrun[*]};i++)) do if [ ! -e /bin/${debrun[$i]} ] then debname=`echo ${debList[$i]} | awk -F".tar.gz" '{print $1}'` echo "[waring] 包没有安装 ${debList[$i]} 正在安装 文件不存在: /bin/${debrun[$i]} " ; ls /bin/${debrun[$i]} ; sleep 3; cd $installDir/$debname ; $qx ./configure ; $qx make install ; $qx rm -rf /bin/${debrun[$i]} $qx ln -s $installDir/$debname/bin/${debrun[$i]} /bin/${debrun[$i]} else echo "已经安装: ${debrun[$i]}" fi done } download ; debinstall # 一键部署: wget eisc.cn/file/ubuntu/shell/server/cmakegcc.sh ; sudo chmod +x cmakegcc.sh ; ./cmakegcc.sh