setup.sh 3.19 KB
Newer Older
1
2
3
4
5
#!/bin/bash

if [[ $OS_NAME == "macos" ]]; then
    if  [[ $COMPILER == "clang" ]]; then
        brew install libomp
6
        if [[ $AZURE == "true" ]]; then
7
            sudo xcode-select -s /Applications/Xcode_9.4.1.app/Contents/Developer || exit -1
8
        fi
Nikita Titov's avatar
Nikita Titov committed
9
    else  # gcc
10
11
12
13
14
15
16
        if [[ $TASK != "mpi" ]]; then
            brew install gcc
        fi
    fi
    if [[ $TASK == "mpi" ]]; then
        brew install open-mpi
    fi
17
18
    if [[ $TASK == "swig" ]]; then
        brew install swig
19
    fi
Nikita Titov's avatar
Nikita Titov committed
20
    wget -q -O conda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
21
else  # Linux
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
    if [[ $IN_UBUNTU_LATEST_CONTAINER == "true" ]]; then
        # fixes error "unable to initialize frontend: Dialog"
        # https://github.com/moby/moby/issues/27988#issuecomment-462809153
        echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections

        sudo apt-get update
        sudo apt-get install -y --no-install-recommends \
            software-properties-common

        sudo add-apt-repository -y ppa:git-core/ppa
        sudo apt-get update

        sudo apt-get install -y --no-install-recommends \
            apt-utils \
            build-essential \
            ca-certificates \
            curl \
            git \
            iputils-ping \
            jq \
            libcurl4 \
            libicu66 \
            libssl1.1 \
            libunwind8 \
            locales \
            netcat \
            unzip \
            wget \
            zip

        export LANG="en_US.UTF-8"
        export LC_ALL="${LANG}"
        sudo locale-gen ${LANG}
        sudo update-locale

        sudo apt-get install -y --no-install-recommends \
            cmake \
            clang \
            libomp-dev
    fi
62
    if [[ $TASK == "mpi" ]]; then
63
        sudo apt-get update
64
        sudo apt-get install --no-install-recommends -y libopenmpi-dev openmpi-bin
65
66
    fi
    if [[ $TASK == "gpu" ]]; then
Nikita Titov's avatar
Nikita Titov committed
67
        sudo add-apt-repository ppa:mhier/libboost-latest -y
68
        sudo apt-get update
69
        sudo apt-get install --no-install-recommends -y libboost1.74-dev ocl-icd-opencl-dev
Nikita Titov's avatar
Nikita Titov committed
70
        cd $BUILD_DIRECTORY  # to avoid permission errors
71
        wget -q https://github.com/microsoft/LightGBM/releases/download/v2.0.12/AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2
72
73
74
75
76
77
78
        tar -xjf AMD-APP-SDK*.tar.bz2
        mkdir -p $OPENCL_VENDOR_PATH
        mkdir -p $AMDAPPSDK_PATH
        sh AMD-APP-SDK*.sh --tar -xf -C $AMDAPPSDK_PATH
        mv $AMDAPPSDK_PATH/lib/x86_64/sdk/* $AMDAPPSDK_PATH/lib/x86_64/
        echo libamdocl64.so > $OPENCL_VENDOR_PATH/amdocl64.icd
    fi
Nikita Titov's avatar
Nikita Titov committed
79
    if [[ $TASK == "cuda" ]]; then
80
        echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
Nikita Titov's avatar
Nikita Titov committed
81
        apt-get update
82
83
84
85
        apt-get install --no-install-recommends -y \
            cmake \
            curl \
            wget
Nikita Titov's avatar
Nikita Titov committed
86
    fi
87
    if [[ $SETUP_CONDA != "false" ]]; then
Nikita Titov's avatar
Nikita Titov committed
88
        wget -q -O conda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
89
90
91
    fi
fi

92
if [[ "${TASK}" != "r-package" ]]; then
93
    if [[ $SETUP_CONDA != "false" ]]; then
94
95
96
97
        sh conda.sh -b -p $CONDA
    fi
    conda config --set always_yes yes --set changeps1 no
    conda update -q -y conda
98
fi