summaryrefslogtreecommitdiff
path: root/bin/opentox-install-ubuntu.sh
blob: ae4807d9b608470427289046b238126b04ba5c30 (plain)
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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
#!/bin/bash
#Installation is tested on Debian Ubuntu 9.10
#Update the system

FAILED=0
STARTPATH=$PWD
ERRLOG=$PWD/'install_err.log'
INSTALLLOG=$PWD/'install_log.log'
DATE=$(date +%Y/%m/%d\ %H:%M:%S)
BRANCH=$1
GEMVERSION="1.3.5"
GITVERSION="1.6.5.2"
RAPTORVERSION="1.4.20"
RASQALVERSION="0.9.16"
RASQALVERSION2="0.9.15"
REDLANDVERSION="1.0.7"
REDBINDVERSION="1.0.7.1"

if [ "$BRANCH" = '' ]
then
  echo "Please enter: sudo ./[filename] [brunchtpy]"
  exit 1
fi
echo "================================================="
echo "Selected branch is: $BRANCH"
echo "================================================="
echo "Please enshure that the sudo package is installed"
echo "on your system. "
echo "On Ubuntu Linux sudo is installed by default."
echo "If you are unsure check with it 'sudo ls'"
echo "and installed it with 'apt-get install sudo'"
echo "and add your username with visudo."
echo "================================================="
echo "Some programs and the OpenTox webservices will be installed in the current folder."
echo "================================================="
echo -n "To continue installation press y: "
read answer
if [ "$answer" != "y" ]
then
  echo "exiting the script..."
  exit 1
fi

echo "opentox webservice install log - " $DATE > $INSTALLLOG
echo "opentox webservice install err log - " $DATE > $ERRLOG
echo "Installing: build-essential"
sudo apt-get install build-essential  | tee -a $INSTALLLOG

echo "Installing: ruby 1.8 with its dev files"
sudo apt-get install ruby ruby1.8-dev  | tee -a $INSTALLLOG

echo "Installing: gems rdoc rubygems libxml-parser-ruby1.8 libxml++2.6-dev libyaml-ruby libzlib-ruby sqlite3 libsqlite3-dev libsqlite3-ruby1.8 and rake"
sudo apt-get install gems rdoc rubygems libxml-parser-ruby1.8 libxml++2.6-dev libyaml-ruby libzlib-ruby rake sqlite3 libsqlite3-dev libsqlite3-ruby1.8 | tee -a $INSTALLLOG  

#RUBYGEMS
echo "Installing rubygems from source. This may take some time"
if [ ! -d $STARTPATH/rubygems-$GEMVERSION ]; 
then
	wget http://rubyforge.org/frs/download.php/60718/rubygems-$GEMVERSION.tgz >>$INSTALLLOG 2>>$ERRLOG 
	tar xzfv rubygems-$GEMVERSION.tgz  >>$INSTALLLOG 2>>$ERRLOG
	cd rubygems-$GEMVERSION  
	sudo ruby setup.rb  >>$INSTALLLOG 2>>$ERRLOG
	cd ..
	sudo rm rubygems-$GEMVERSION.tgz  
	CHECKGEM=`gem -v` 
	if [ "$CHECKGEM"  == "$GEMVERSION" ]
	then
		echo "Adding http://gems.github.com to ruby gem sources"
		sudo gem sources -a http://gems.github.com  >>$INSTALLLOG 2>>$ERRLOG

		echo "================================================="
		echo "Rubygems version $GEMVERSION successfully installed."
		echo "================================================="
	else
	    echo "Rubygems version $GEMVERSION installation failed."
	    FAILED=1
        exit $FAILED
	fi
else
	echo "rubygems-$GEMVERSION folder already exist. "
fi

echo "Installing packages: zlib1g-dev tcl curl perl ssh tcl tk8.5 libopenssl-ruby libgsl0-dev swig r-base rinruby"
sudo apt-get install zlib1g-dev tcl curl perl libopenssl-ruby libgsl0-dev r-base | tee -a $INSTALLLOG
sudo apt-get install ssh tcl tk8.5 | tee -a $INSTALLLOG
sudo apt-get install swig | tee -a $INSTALLLOG
sudo apt-get install postgresql-server-dev-8.4 | tee -a $INSTALLLOG


#echo "Installing gems jeweler sinatra emk-sinatra-url-for dm-core cehoffman-sinatra-respond_to rest-client rack-contrib thin cucumber datamapper data_objects do_sqlite3 rinruby"
sudo gem install jeweler  | tee -a $INSTALLLOG
sudo gem install sinatra | tee -a $INSTALLLOG
sudo gem install emk-sinatra-url-for  -s http://gems.github.com | tee -a $INSTALLLOG
sudo gem install dm-core  | tee -a $INSTALLLOG
sudo gem install sinatra-respond_to | tee -a $INSTALLLOG
sudo gem install rest-client | tee -a $INSTALLLOG
sudo gem install rack-contrib | tee -a $INSTALLLOG
sudo gem install thin | tee -a $INSTALLLOG
sudo gem install cucumber | tee -a $INSTALLLOG
sudo gem install datamapper | tee -a $INSTALLLOG
sudo gem install data_objects | tee -a $INSTALLLOG
sudo gem install do_sqlite3 | tee -a $INSTALLLOG
sudo gem install rinruby | tee -a $INSTALLLOG
sudo gem cleanup | tee -a $INSTALLLOG

echo "Installing LibRDF-ruby"
sudo apt-get install librdf0 librdf-ruby | tee -a $INSTALLLOG

#GIT
echo "Installing git from source"
echo "This could take a while..."
if [ ! -d $STARTPATH/git-$GITVERSION ];  
then
	wget http://www.kernel.org/pub/software/scm/git/git-$GITVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
	tar xzfv git-$GITVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
	cd git-$GITVERSION
	./configure   >>$INSTALLLOG 2>>$ERRLOG
	make   >>$INSTALLLOG 2>>$ERRLOG
	sudo make install   >>$INSTALLLOG 2>>$ERRLOG
	cd ..
	sudo rm git-$GITVERSION.tar.gz
	CHECKGIT=`git --version`
	if [ "$CHECKGIT"  == "git version $GITVERSION" ]
	then
		echo "================================================="
    		echo "Git version $GITVERSION successfully installed."
		echo "================================================="
	else
	    echo "Git version $GITVERSION installation failed."
	    FAILED=1
        exit $FAILED
	fi
else
	echo "git-$GITVERSION folder exists."
fi

#REDLAND
if [ ! -d $STARTPATH/redland ];
then
	echo "Making Redland folder."
	mkdir redland >>$INSTALLLOG 2>>$ERRLOG
	cd redland
	echo "Installing Redland raptor"
	if [ ! -d $STARTPATH/redland/raptor-$RAPTORVERSION ];
	then
		wget wget http://download.librdf.org/source/raptor-$RAPTORVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
		tar xzfv raptor-$RAPTORVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
		cd raptor-$RAPTORVERSION
		./configure  >>$INSTALLLOG 2>>$ERRLOG
		sudo make   >>$INSTALLLOG 2>>$ERRLOG
		sudo make install   >>$INSTALLLOG 2>>$ERRLOG
		cd ..
		sudo rm raptor-$RAPTORVERSION.tar.gz
		CHECKRAPTOR=`raptor-config --version`
		if [ "$CHECKRAPTOR"  == "$RAPTORVERSION" ]
		then
			echo "================================================="
			echo "Raptor version $RAPTORVERSION successfully installed."
			echo "================================================="
		else
		    echo "Raptor version $RAPTORVERSION installation failed."
		    FAILED=1
            exit $FAILED
		fi
	else
		echo "raptor-$RAPTORVERSION folder exists."
	fi

	echo "Installing Redland rasqal"
	wget wget http://download.librdf.org/source/rasqal-$RASQALVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
	tar xzfv rasqal-$RASQALVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
	cd rasqal-$RASQALVERSION
	./configure  >>$INSTALLLOG 2>>$ERRLOG
	sudo make   >>$INSTALLLOG 2>>$ERRLOG
	sudo make install   >>$INSTALLLOG 2>>$ERRLOG
	cd ..
	sudo rm rasqal-$RASQALVERSION.tar.gz
	CHECKRASQAL=`rasqal-config --version`
	if [ "$CHECKRASQAL"  == "$RASQALVERSION2" -o  "$CHECKRASQAL"  == "$RASQALVERSION" ]
	then
		echo "================================================="
		echo "Raptor version $RASQALVERSION2 or higher successfully installed."
		echo "================================================="
	else
	    echo "Raptor version $RASQALVERSION2 or higher installation failed."
	    FAILED=1
        exit $FAILED
	fi

	echo "Installing Redland redland"
	wget wget http://download.librdf.org/source/redland-$REDLANDVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
	tar xzfv redland-$REDLANDVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
	cd redland-$REDLANDVERSION
	./configure  >>$INSTALLLOG 2>>$ERRLOG
	sudo make   >>$INSTALLLOG 2>>$ERRLOG
	sudo make install   >>$INSTALLLOG 2>>$ERRLOG
	cd ..
	sudo rm redland-$REDLANDVERSION.tar.gz
	CHECKREDLAND=`redland-config --version`
	if [ "$CHECKREDLAND"  == "$REDLANDVERSION" ]
	then
		echo "================================================="
		echo "Redland version $REDLANDVERSION successfully installed."
		echo "================================================="
	else
	    echo "Redland version $REDLANDVERSION installation failed."
	    FAILED=1
        exit $FAILED
	fi


	echo "Installing Redland Bindings with ruby"
	wget http://download.librdf.org/source/redland-bindings-$REDBINDVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
	tar xzfv redland-bindings-$REDBINDVERSION.tar.gz  >>$INSTALLLOG 2>>$ERRLOG
	cd redland-bindings-$REDBINDVERSION
	./configure --with-ruby  >>$INSTALLLOG 2>>$ERRLOG
	sudo make   >>$INSTALLLOG 2>>$ERRLOG
	sudo make install   >>$INSTALLLOG 2>>$ERRLOG
	cd ..
	sudo rm redland-bindings-$REDBINDVERSION.tar.gz
	cd ..
	#CHECKREDBIND=`??? --version`
	#if [ "$CHECKREDBIND"  == "$REDBINDVERSION" ]
	#then
	#	echo "================================================="
	#	echo "Redland Bindings version $REDBINDVERSION successfully installed."
	#	echo "================================================="
	#else
	#    echo "Redland Bindings version $REDBINDVERSION installation failed."
	#    FAILED=1
    #    exit $FAILED
	#fi
else
	echo "Redland folder exists."
fi

echo "Installing the opentox webservices"
mkdir webservices  
cd webservices  

echo "Install the opentox-ruby-api-wrapper"
echo "This could take a while..."
git clone git://github.com/helma/opentox-ruby-api-wrapper.git >>$INSTALLLOG 2>>$ERRLOG
cd opentox-ruby-api-wrapper
git checkout -b $BRANCH origin/$BRANCH >>$INSTALLLOG 2>>$ERRLOG
OTAPIVERSION=`cat VERSION`
sudo rake install  | tee -a $INSTALLLOG
cd ..
CHECKOTAPI=`gem list | grep "opentox-ruby-api-wrapper" | grep "$OTAPIVERSION"`
if [ ! "$CHECKOTAPI" = '' ]
then
	echo "================================================="
    	echo "opentox-ruby-api-wrapper ($OTAPIVERSION) successfully installed."
	echo "================================================="
else
	echo "opentox-ruby-api-wrapper ($OTAPIVERSION) installation failed."
	FAILED=1
    exit $FAILED
fi

echo "Installing the webservices: compound, dataset, algorithm, model, task, feature"
git clone git://github.com/helma/opentox-compound.git >>$INSTALLLOG 2>>$ERRLOG
git clone git://github.com/helma/opentox-dataset.git >>$INSTALLLOG 2>>$ERRLOG
git clone git://github.com/helma/opentox-algorithm.git >>$INSTALLLOG 2>>$ERRLOG
git clone git://github.com/helma/opentox-model.git >>$INSTALLLOG 2>>$ERRLOG
git clone git://github.com/helma/opentox-task.git >>$INSTALLLOG 2>>$ERRLOG
git clone git://github.com/helma/opentox-feature.git >>$INSTALLLOG 2>>$ERRLOG

cd opentox-compound  
git checkout -b $BRANCH origin/$BRANCH >>$INSTALLLOG 2>>$ERRLOG 
cd ../opentox-dataset  
git checkout -b $BRANCH origin/$BRANCH >>$INSTALLLOG 2>>$ERRLOG
cd ../opentox-algorithm  
git checkout -b $BRANCH origin/$BRANCH >>$INSTALLLOG 2>>$ERRLOG
cd ../opentox-model  
git checkout -b $BRANCH origin/$BRANCH >>$INSTALLLOG 2>>$ERRLOG
cd ../opentox-task
git checkout -b $BRANCH origin/$BRANCH >>$INSTALLLOG 2>>$ERRLOG
cd ../opentox-task
git checkout -b development origin/development >>$INSTALLLOG 2>>$ERRLOG
cd ..  

#edit /home/[username]/.opentox/config/test.yaml set :base_dir: /home/[username]/webservices

echo "Installing the tests"                                                   
git clone git://github.com/helma/opentox-test.git  >>$INSTALLLOG 2>>$ERRLOG   
cd opentox-test                                                               
git checkout -b $BRANCH origin/$BRANCH  >>$INSTALLLOG 2>>$ERRLOG       

echo "Installing openbabel"
cd ../opentox-compound
sudo rake openbabel:install | tee -a $INSTALLLOG
sudo ldconfig >>$INSTALLLOG 2>>$ERRLOG

ln -s /usr/local/lib/libopenbabel.so.3 /usr/lib/libopenbabel.so.3 >> $INSTALLLOG 2>>$ERR
#VERSION=` --version`
#if [ "$VERSION"  == "$RAPTORVERSION" ]
#then
#	echo "================================================="
#    	echo "Raptor version $RAPTORVERSION successfully installed."
#	echo "================================================="
#else
#    echo "Raptor version $RAPTORVERSION installation failed."
#    FAILED=1
#    exit $FAILED
#fi


#check /webservices/opentox-algorithm/fminer.rb for 1,0/ture,false bug
BUGCHECK1=`grep "@@fminer.AddActivity(true, id)" $STARTPATH/webservices/opentox-algorithm/fminer.rb`
BUGCHECK2=`grep "@@fminer.AddActivity(false, id)" $STARTPATH/webservices/opentox-algorithm/fminer.rb`
if [ -z "$BUGCHECK1$BUGCHECK2" ]
then
        echo "fminer.rb is correct."
else
        sed -i 's/@@fminer.AddActivity(true, id)/@@fminer.AddActivity(1, id)/g' $STARTPATH/webservices/opentox-algorithm/fminer.rb
        sed -i 's/@@fminer.AddActivity(false, id)/@@fminer.AddActivity(0, id)/g' $STARTPATH/webservices/opentox-algorithm/fminer.rb
        echo "fminer.rb updated."
fi

#todo: configure libfminer Makefile (location of ruby.h)
#-> fixed by using davor's repository


cd ../opentox-algorithm
echo "Installing fminer"
echo "This could take a while..."
sudo updatedb
sudo rake fminer:install | tee -a $INSTALLLOG
cd ..
FMINERVERSION=`ls $STARTPATH/webservices/opentox-algorithm/libfminer | grep "fminer.so"`
if [ "$FMINERVERSION"  == "fminer.so" ]
then
	echo "================================================="
    	echo "Fminer successfully installed."
	echo "================================================="
else
    echo "Fminer installation failed."
    FAILED=1
    exit $FAILED
fi

if [ $FAILED == 0 ]
then
	#get username
	echo "Please enter username:"
	read USERNAME

	#change rights from root to user
	sudo chown -R $USERNAME: $STARTPATH/webservices/
	sudo chown -R $USERNAME: ~/.opentox/
fi

if [ "$FAILED" == "1" ]
then
	echo "================================================="
    	echo "Installation script failed!"
	echo "================================================="
    	exit 1
else
echo "================================================="
echo "opentox-install-script is completed."
echo "================================================="
echo "Configuration:"
echo "Edit the settings in $HOME/.opentox/config/{development|production|test}.yaml for your environment."
echo "================================================="
echo "Start the webservices local:"
echo "cd webservices/opentox-test/"
echo "rake opentox:services:start"
echo "================================================="
echo "Test local webservices:"
echo "rake features"
echo "================================================="
fi
exit 0