-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathnonconda_install_ash.sh
199 lines (163 loc) · 5.93 KB
/
nonconda_install_ash.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
#!/bin/bash
#WARNING: OUTDATED SCRIPT
#KEPT ONLY FOR REFERENCE
#SEE https://ash.readthedocs.io/en/latest/setup.html FOR LATEST INSTALLATION INSTRUCTIONS
exit
################################################
#AUTO-INSTALLATION SCRIPT FOR ASH
#this avoids manual setup of Python, Julia etc.
#THIS SCRIPT IS PROBABLY OUTDATED. USE AT OWN RISK
################################################
#__________________
#Settings
#__________________
#Download Julia or not (otherwise a julia tar.gz file is needed)
download_julia=true
#Julia version to download/use
juliaversion="1.6.1"
#Path to Python3 executable can be set below (uncomment first). If not set, script will try to find python3 in PATH
#path_to_python3_exe="/usr/bin/python3"
# Force pip to install in user home directory instead of in default global Python location.
localuserpipoption=false
#Whether to install Python packages in ASH dir instead. Potentially problematic
localpipinstallation=false
# Use conda and python inside Julia. Problematic and disabled
#use_julia_conda=true #problem with python3 binary inside Conda.jl
#__________________
# END OF SETTINGS
#__________________
###############################################
echo "-------------------------------"
echo "ASH installation script"
echo "-------------------------------"
#Check if path_to_python3_exe has been set. Otherwise search for python3 in $PATH
if [ -z ${path_to_python3_exe+x} ]
then
echo "path_to_python3_exe is unset"
echo "Searching for python3 in PATH"
path_to_python3_exe=$(which python3)
#Check if found
if [ $? -eq 1 ]
then
echo "Did not find a python3 executable in PATH. Put a Python3 installation in PATH (or load a module)"
exit
fi
echo "Found: $path_to_python3_exe"
else
echo "path_to_python3_exe has been set to : $path_to_python3_exe"
fi
#Dirname only
path_to_python3_dir=${path_to_python3_exe%/python3}
echo ""
echo "Python3 path: $path_to_python3_dir"
echo ""
if [[ ! -d $path_to_python3_dir ]]
then
echo "Did not find a valid Python3 dir: $path_to_python3_dir"
exit
fi
#thisdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
thisdir=$PWD
echo ""
echo "Using Python3 installation in: $path_to_python3_dir"
echo "Make sure this is the Python3 installation you want"
echo ""
echo "Current directory is: $thisdir"
echo ""
echo "Step 1. Julia setup"
# Julia major version var: 1.6.1 => 1.6. Used in download URL
juliamajorversion=${juliaversion%??}
#Download Julia and uncompress
if [ $download_julia = true ]
then
echo "Downloading Julia"
rm -rf julia-${juliaversion}
rm -rf julia-${juliaversion}-linux-x86_64.tar.gz
rm -rf julia-${juliaversion}-linux-x86_64.tar
wget https://julialang-s3.julialang.org/bin/linux/x64/${juliamajorversion}/julia-${juliaversion}-linux-x86_64.tar.gz
else
echo "Skipping Julia download. Assuming file julia-${juliaversion}-linux-x86_64.tar.gz is present"
fi
#Deleting old
rm -rf julia-${juliaversion}-linux-x86_64.tar
#Decompress archive
gunzip julia-${juliaversion}-linux-x86_64.tar.gz
tar -xf julia-${juliaversion}-linux-x86_64.tar
path_to_julia=$thisdir/julia-${juliaversion}/bin
#Delete old and Create julia-python-bundle dir
rm -rf julia-python-bundle
mkdir -p julia-python-bundle
# Set Julia packages path
export JULIA_DEPOT_PATH=$thisdir/julia-python-bundle
#Install Julia packages
echo "Step 2. Downloading and installing Julia packages"
$path_to_julia/julia julia-packages-setup.jl
#Adding Julia to PATH
export PATH=$path_to_julia:$PATH
echo "Julia packages and setup done"
echo ""
echo "Step 3. Downloading and installing Python3 packages"
#Check if pip or pip3 is in correct location
path_to_pip_exe=$(which pip)
path_to_pip_dir=${path_to_pip_exe%/pip}
path_to_pip3_exe=$(which pip3)
path_to_pip3_dir=${path_to_pip3_exe%/pip3}
echo "Finding correct pip"
if [[ ${path_to_pip_dir} == $path_to_python3_dir ]]
then
pipcommand=$path_to_pip_exe
echo "pipcommand is : $pipcommand"
elif [[ ${path_to_pip3_dir} == $path_to_python3_dir ]]
then
pipcommand=$path_to_pip3_exe
echo "pipcommand is : $pipcommand"
else
echo "Did not find pip executable in same dir as python3"
echo "which pip gives: $path_to_pip_exe"
echo "which pip3 gives: $path_to_pip3_exe"
echo "something wrong with environment?"
echo "Exiting."
exit
fi
if [[ $localpipinstallation == true ]]
then
echo "Installing python packages in local dir: $thisdir/pythonpackages "
mkdir pythonpackages
export PIP_TARGET=$thisdir/pythonpackages
fi
# Option to force pip install in user's home directory
if [[ $localuserpipoption == true ]]
then
piparg="--user"
else
piparg=""
fi
#Install numpy in case missing
$pipcommand install numpy $piparg
#Geometric
$pipcommand install geometric $piparg
#Pythoncall
$pipcommand install juliacall $piparg
#elif [ $use_julia_conda = true ]
#then
# $thisdir/julia-${juliaversion}/bin/julia julia-conda-setup.jl
#Setting Python3 as Conda.jl Python3
#Problem. Not working well
# path_to_python3_dir=$thisdir/julia-python-bundle/conda/3/bin/python3
#fi
#Create set_environment_ash.sh file
echo "Step 5. Creating set_environent_ash.sh script"
echo "#!/bin/bash" > set_environment_ash.sh
echo "ulimit -s unlimited" >> set_environment_ash.sh
echo "export ASHPATH=${thisdir}" >> set_environment_ash.sh
echo "export python3path=${path_to_python3_dir}" >> set_environment_ash.sh
echo "export JULIAPATH=${thisdir}/julia-${juliaversion}/bin" >> set_environment_ash.sh
echo "export JULIA_DEPOT_PATH=${thisdir}/julia-python-bundle" >> set_environment_ash.sh
echo "export PYTHONPATH=\$ASHPATH:\$ASHPATH/lib:$ASHPATH/pythonpackages:\$PYTHONPATH" >> set_environment_ash.sh
echo "export PATH=\$python3path:\$ASHPATH:\$JULIAPATH:\$PATH" >> set_environment_ash.sh
echo "export LD_LIBRARY_PATH=\$ASHPATH/lib:\$LD_LIBRARY_PATH" >> set_environment_ash.sh
echo "Installation of ASH was successful!"
echo ""
echo "Remember:"
echo " - Run: source ${thisdir}/set_environment_ash.sh to activate ASH!"
echo " - Put source command in your .bash_profile/.zshrc/.bashrc and job-submission scripts"