zoukankan      html  css  js  c++  java
  • CentOS7 离线安装fastDFS、jdk1.8、mysql5.7、nginx、libreOffice

    **因工作需要,在内网环境下安装运行环境,故写成脚本以供参考。

    以下软件已在CentOS7下离线安装成功,成功后个别配置文件(fastDFS,nginx等)需手动配置,脚本中不再赘述。

    先说下离线安装包在linux中的放置路径:/opt/install_package

    install_package文件夹下面文件列表:

     fastDFS:

     

    jdk1.8

    LibreOffice

    mysql 5.7

     nginx

    **完整shell代码如下

    #!/bin/bash
    function install_JDK(){
        java -version >> /dev/null 2>&1
        if [ $? -eq 0 ];then
            echo "**************JDK is already installed***************"
            return
        fi
        if [ ! -f "/opt/install_package/jdk1.8/jdk1.8.tar.gz" ];then
            echo "*****************JDK installation package does not exist******************"
            return
        fi
        echo "begin to install jdk"
        cd jdk1.8
        tar zxvf jdk1.8.tar.gz -C /usr/local/
        chmod 777 /usr/local/jdk1.8/bin/java
        chmod 777 /usr/local/jdk1.8/bin/javac
        echo 'JAVA_HOME=/usr/local/jdk1.8' >> ~/.bash_profile
        echo 'JAVA_BIN=$JAVA_HOME/bin' >> ~/.bash_profile
        echo 'JRE_HOME=$JiAVA_HOME/jre' >> ~/.bash_profile
        echo 'JRE_BIN=$JRE_HOME/bin' >> ~/.bash_profile
        echo 'PATH=$JAVA_BIN:$JRE_BIN:$PATH' >> ~/.bash_profile
        echo 'export JAVA_HOME JRE_HOME PATH' >> ~/.bash_profile
        source ~/.bash_profile
        java -version
        if [ $? -eq 0 ];then
            echo "JDK installed successfully"
        else
            echo "jdk install failed!"
        fi
    }
    function install_mysql(){
        isExit=`ps -ef | grep mysql| grep -v grep`
        if [ -n "${isExit}" ];then
            echo "**********************MySQL is already installed*****************************"
            return
        fi
        if [ ! -f "mysql/mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar" ];then
            echo "*****************MySQL installation package does not exist******************"
            return
        fi
        echo "**************begin to install mysql*********************"
        cp -rf mysql /usr/local/
        cd /usr/local/mysql
        tar xvf mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar
        rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm 
        rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm --nodeps --force
        rpm -ivh mysql-community-devel-5.7.9-1.el7.x86_64.rpm --nodeps --force
        rpm -ivh mysql-community-libs-compat-5.7.9-1.el7.x86_64.rpm --nodeps --force
        rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm --nodeps --force
        rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm --nodeps --force
        service mysqld stop
        echo "skip-grant-tables" >> /etc/my.cnf
        service mysqld start    
        echo "****************mysql install sucessed**********************"
        echo "****account:root,password is empty,Please change the password in time****"
    }
    function install_nginx(){
        isExit=`ps -ef | grep nginx |grep -v grep`
        if [ -n "${isExit}" ];then
            echo "**********************Nginx is already installed*****************************"
            return
        fi
        if [ ! -d "nginx" ];then
            echo "Nginx installation package does not exist"
            return
        fi
        pacakgeNum=`ls nginx|wc -w`
        if [ ${pacakgeNum} -ne 4 ];then
            echo "*********************Wrong number of installation packages*******************"
            return
        fi
        echo "**********************begin to install nginx***********************"    
        cp -rf nginx /usr/local/
        cd /usr/local/nginx
        tar zxvf openssl-fips-2.0.10.tar.gz
        cd openssl-fips-2.0.10
        ./config && make && make install
        cd ..
        tar zxvf pcre-8.42.tar.gz
        cd pcre-8.42
        ./configure && make && make install
        cd ..
        tar zxvf zlib-1.2.11.tar.gz
        cd zlib-1.2.11
        ./configure && make && make install
        cd ..
        tar zxvf nginx-1.14.2.tar.gz
        cd nginx-1.14.2
        ./configure && make && make install
        ln -s /usr/local/lib/libpcre.so.1 /lib64/
        path=`whereis nginx |awk -F: '{print $2}'`
        systemctl stop firewalld.service
        ${path}/sbin/nginx
        if [ $? -eq 0 ];then
            echo "****************Nginx installed successfully***********************"
        else
            echo "****************Nginx installation failed**************************"
        fi
    }
    function isntall_LibreOffice(){    
        isExit=`ps -ef | grep libreoffice5.3 | grep -v grep`
        if [ -n "${isExit}" ];then
            echo "*******************Libreoffice is already installed**********************"
            return
        fi
        if [ ! -f "libreOffice/LibreOffice_5.3.7_Linux_x86-64_rpm.tar.gz" ];then
            echo "*****************LibreOffice installation package does not exist******************"
            return
        fi
        tar zxvf libreOffice/LibreOffice_5.3.7_Linux_x86-64_rpm.tar.gz -C /usr/local/
        cd /usr/local/LibreOffice_5.3.7.2_Linux_x86-64_rpm/RPMS
        rpm -ivh *.rpm
        cd /opt/libreoffice5.3/program
        ./soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &
        isExit=`ps -ef | grep libreoffice5.3 | grep -v grep`
        if [ -n "${isExit}" ];then
            echo "*******************Libreoffice installed successfully**********************"
        else
            echo "*******************Libreoffice installation failed*************************"
        fi
        
    }
    function install_fastDFS(){
        while read -p "请输入fastDFS服务器ip地址:" cur_ip
        do
            ipcalc -cs ${cur_ip}
            if [ "$?" -eq 0 ];then
                break
            else 
                echo "ip地址填写错误,请重新填写!"
                continue
            fi
        done
        cp -rf fastDFS /usr/local/
        cd /usr/local/fastDFS
        tar zxvf libevent-2.0.22-stable.tar.gz
        cd libevent-2.0.22-stable
        ./configure --prefix=/data/libevent
        cd /usr/local/fastDFS
        tar -zxvf libfastcommon.tar.gz
        cd libfastcommon
        ./make.sh
        ./make.sh install
        ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
        cd /usr/local/fastDFS/
        tar -zxvf FastDFS_v5.05.tar.gz
        cd FastDFS
        old='TARGET_PREFIX=$DESTDIR/usr'
        new='TARGET_PREFIX=$DESTDIR/usr/local'
        sed -i "s#$old#$new#g" make.sh
        ./make.sh && ./make.sh install
        ####配置tracker.conf
        mkdir -p /data/fdfs/tracker
        cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
        old=`cat /etc/fdfs/tracker.conf | grep  "^base_path="`
        new="base_path=/data/fdfs/tracker"
        sed -i "s#$old#$new#g" /etc/fdfs/tracker.conf
        if [ ! -f "/etc/init.d/fdfs_trackerd" ];then
            cp -rf /usr/local/fastDFS/FastDFS/init.d/fdfs_trackerd /etc/init.d/
        fi
        ##设置trackerd开机自启
        chkconfig --add fdfs_trackerd
        chkconfig fdfs_trackerd on
        service fdfs_trackerd start
        ##配置storage.conf
        mkdir -p /data/fdfs/storage
        cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
        old=`cat /etc/fdfs/storage.conf | grep  "^base_path="`
        new="base_path=/data/fdfs/storage"
        sed -i "s#$old#$new#g" /etc/fdfs/storage.conf
        
        old=`cat /etc/fdfs/storage.conf | grep "^store_path0="`
        new="store_path0=/data/fdfs/storage"
        sed -i "s#$old#$new#g" /etc/fdfs/storage.conf
        
        
        old=`cat /etc/fdfs/storage.conf | grep "^tracker_server="`
        new="tracker_server=${cur_ip}:22122"    
        sed -i "s#$old#$new#g" /etc/fdfs/storage.conf
        
        if [ ! -f "/etc/init.d/fdfs_storaged" ];then
                    cp -rf /usr/local/fastDFS/FastDFS/init.d/fdfs_storaged /etc/init.d/
            fi
        ##设置tracker开机自启
        chkconfig --add fdfs_storaged
        chkconfig fdfs_storaged on
        service fdfs_storaged start
    
        ##配置client.conf
        cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
        old=`cat /etc/fdfs/client.conf | grep "^base_path="`
        new="base_path=/data/fdfs/tracker"
        sed -i "s#$old#$new#g" /etc/fdfs/client.conf
            
        old=`cat /etc/fdfs/client.conf | grep "^tracker_server="`
        new="tracker_server=${cur_ip}:22122"
        sed -i "s#$old#$new#g" /etc/fdfs/client.conf
    
        ##获取tracker配置端口,需与client.conf保持一致    
        tracker_port=`cat /etc/fdfs/tracker.conf | grep "^http.server_port="|awk -F= '{print $2}'`
        old=`cat /etc/fdfs/client.conf | grep "http.tracker_server_port="`
        new="http.tracker_server_port=${tracker_port}"
        sed -i "s#$old#$new#g" /etc/fdfs/client.conf
        echo "*******************fastDFS installed successfully**********************"
        echo "path of storage.conf is /etc/fdfs/storage.conf"
        echo "path of tracker.conf is /etc/fdfs/tracker.conf"
        echo "path of client.conf is /etc/fdfs/tracker.conf"
        echo "path of data is /data/fdfs/storage/data"
        
        
    }
    
     
    Tips="
    此脚本用来一键安装各种应用程序软件,包括jdk、应用程序、nginx等
    
    1、离线安装jdk并配置环境变量
    
    2、离线安装nginx
    
    3、离线安装mysql
    
    4、离线安装word转pdf打印服务(Libreoffice)
    
    5、离线安装fastDFS
    
    0、 退出
    "
    echo -e ${Tips}
    while read -p "请输入您的操作序号:" val
    do
        if [ "$val" == "0" ];then
            break
        elif [ "$val" == "1" ];then
            install_JDK
            echo -e ${Tips}
            continue
        elif [ "$val" == "2" ];then
            install_nginx
            echo -e ${Tips}
            continue
        elif [ "$val" == "3" ];then
                    install_mysql
            echo -e ${Tips}
                    continue
        elif [ "$val" == "4" ];then
                    isntall_LibreOffice
            echo -e ${Tips}
                    continue
        elif [ "$val" == "5" ];then
                    install_fastDFS
            echo -e ${Tips}
                    continue
        else 
            echo "Wrong number input, please input again ."
        fi
    done

     离线安装包(1G)下载链接: https://pan.baidu.com/s/14_NbibeuGwf35K4CmZ7HzQ 提取码: 829i

  • 相关阅读:
    第3周 实践项目2 建设”顺序表“算法库(可参考为模板)
    第3周实践项目3 求集合并集
    【luogu 2529】【SHOI 2001】击鼓传花
    【BZOJ 3270】博物馆
    【BZOJ 2337】XOR和路径
    浅谈期望dp
    【codeforces 24D】Broken Robot
    【POJ 1463】Strategic game
    【POJ 3585】Accumulation Degree
    【luogu 3146/3147】248/262144
  • 原文地址:https://www.cnblogs.com/lansetuerqi/p/12544572.html
Copyright © 2011-2022 走看看