Description:
Update install.sh
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r265:5e861fcfb30f - - 1 file changed: 13 inserted, 5 deleted

@@ -1,181 +1,189
1 1 #!/bin/sh
2 2
3 + #installation script for cafe-grader, for ubuntu 16.04
4 +
3 5 echo "This script will install and configure Cafe grader."
4 6
5 - RUBY_VERSION=2.1.2
7 + RUBY_VERSION=2.3.4
6 8 echo "This will install Ruby $RUBY_VERSION under RVM"
7 9
8 10 echo "Installing required apts"
9 11
12 + sudo apt-get install software-properties-common
13 + sudo apt-add-repository -y ppa:rael-gc/rvm
10 14 sudo apt-get update
11 - sudo apt-get install mysql-server mysql-client \
15 + sudo apt-get install rvm mysql-server mysql-client \
12 16 g++ gcc apache2 libmysqlclient20 build-essential \
13 17 git-core openssl libreadline6 libreadline6-dev \
14 18 zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev \
15 19 sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev \
16 20 ncurses-dev automake libtool bison subversion \
17 21 pkg-config curl nodejs unzip pyflakes ruby default-jdk \
18 22 libmysqld-dev mercurial python-setuptools python-dev python3-numpy
19 23
20 - echo "Installing RVM"
21 - curl -k -L https://get.rvm.io | bash -s stable
22 - source ~/.rvm/scripts/rvm
24 + #--- edited --
25 + #--- we now use rvm from ubuntu package ---
26 + #echo "Installing RVM"
27 + #curl -k -L https://get.rvm.io | bash -s stable
28 + #source ~/.rvm/scripts/rvm
29 +
30 + source /etc/profile.d/rvm.sh
23 31
24 32 echo "Installing Ruby $RUBY_VERSION in RVM"
25 33
26 34 rvm install $RUBY_VERSION
27 35 rvm use $RUBY_VERSION
28 36
29 37 echo "Fetching Cafe Grader from Git repositories"
30 38
31 39 echo "Fetching web interface"
32 40
33 41 mkdir cafe_grader
34 42 cd cafe_grader
35 43 git clone -q git://github.com/cafe-grader-team/cafe-grader-web.git web
36 44
37 45 echo "Configuring rails app"
38 46
39 47 cp web/config/application.rb.SAMPLE web/config/application.rb
40 48 cp web/config/initializers/cafe_grader_config.rb.SAMPLE web/config/initializers/cafe_grader_config.rb
41 49
42 50 #replace UTC in application.rb with the system timezone
43 51 timezone='UTC'
44 52 if [ -f '/etc/timezone' ]; then
45 53 timezone=\"`cat /etc/timezone`\"
46 54 else
47 55 if [ -f '/etc/sysconfig/clock' ]; then
48 56 timezone=`grep -e '^TIMEZONE' /etc/sysconfig/clock | grep -o -e '\".*\"'`
49 57 fi
50 58 fi
51 59 replace="s!'UTC'!$timezone!g"
52 60 sed -i $replace web/config/application.rb
53 61
54 62 echo "At this point we will need MySQL user and database."
55 63 echo "Have you created MySQL user and database for Cafe grader? (Y/N) "
56 64 read ch
57 65
58 66 if [ "$ch" = "n" -o "$ch" = "N" ]
59 67 then
60 68 echo "Please open another terminal and create the user and database for Cafe grader."
61 69 echo "Don't forget to grant access to that database for the user."
62 70 echo "Please have username, password, and database name ready before continue."
63 71 echo
64 72 echo "The following are instructions:"
65 73 echo "1. Run mysql:"
66 74 echo
67 75 echo " mysql -u root -p"
68 76 echo
69 77 echo " if you have just installed mysql, the root password is the one that you have just entered"
70 78 echo "2. Create a new database, a new user, and grant access to grader database:"
71 79 echo
72 80 echo " create user 'USERNAME'@'localhost' identified by 'PASSWORD';"
73 81 echo " create database \`DATABASENEME\`;"
74 82 echo " grant all on \`DATABASENAME\`.* to 'USERNAME'@'localhost';"
75 83 echo
76 84 echo " Replace USERNAME, PASSWORD, and DATABASENAME accordingly."
77 85 echo
78 86 echo "Hit enter when ready..."
79 87 read dummy
80 88 fi
81 89
82 90 CAFE_PATH=`pwd`
83 91
84 92 cd web
85 93
86 94 echo "Please provide grader database:"
87 95 read database
88 96
89 97 echo "Please provide grader username:"
90 98 read username
91 99
92 100 echo "Please provide $username password:"
93 101 read password
94 102
95 103 echo "development:" > config/database.yml
96 104 echo " adapter: mysql2" >> config/database.yml
97 105 echo " encoding: utf8" >> config/database.yml
98 106 echo " reconnect: false" >> config/database.yml
99 107 echo " database: $database" >> config/database.yml
100 108 echo " pool: 5" >> config/database.yml
101 109 echo " username: $username" >> config/database.yml
102 110 echo " password: $password" >> config/database.yml
103 111 echo " host: localhost" >> config/database.yml
104 112 echo " socket: /var/run/mysqld/mysqld.sock" >> config/database.yml
105 113 echo "" >> config/database.yml
106 114 echo "production:" >> config/database.yml
107 115 echo " adapter: mysql2" >> config/database.yml
108 116 echo " encoding: utf8" >> config/database.yml
109 117 echo " reconnect: false" >> config/database.yml
110 118 echo " database: $database" >> config/database.yml
111 119 echo " pool: 5" >> config/database.yml
112 120 echo " username: $username" >> config/database.yml
113 121 echo " password: $password" >> config/database.yml
114 122 echo " host: localhost" >> config/database.yml
115 123 echo " socket: /var/run/mysqld/mysqld.sock" >> config/database.yml
116 124
117 125 echo "Object.instance_eval{remove_const :GRADER_ROOT_DIR}" >> config/initializers/cafe_grader_config.rb
118 126 echo "Object.instance_eval{remove_const :GRADING_RESULT_DIR}" >> config/initializers/cafe_grader_config.rb
119 127 echo "GRADER_ROOT_DIR = '$CAFE_PATH/judge'" >> config/initializers/cafe_grader_config.rb
120 128 echo "GRADING_RESULT_DIR = '$CAFE_PATH/judge/result'" >> config/initializers/cafe_grader_config.rb
121 129
122 130 echo "Installing required gems"
123 131 gem install bundler
124 132 bundle install
125 133
126 134 echo "Running rake tasks to initialize database"
127 135
128 136 rake db:migrate
129 137 rake db:seed
130 138
131 139 echo "Running rake tasks to precompile the assets"
132 140
133 141 rake assets:precompile
134 142
135 143 echo "Intalling web interface complete..."
136 144 echo
137 145 echo "Fetching grader"
138 146
139 147 cd ..
140 148
141 149 mkdir judge
142 150 cd judge
143 151 git clone -q git://github.com/cafe-grader-team/cafe-grader-judge-scripts.git scripts
144 152 mkdir raw
145 153 mkdir ev-exam
146 154 mkdir ev
147 155 mkdir result
148 156 mkdir log
149 157
150 158 echo "Configuring grader"
151 159
152 160 cp scripts/config/env_exam.rb.SAMPLE scripts/config/env_exam.rb
153 161 cp scripts/config/env_grading.rb.SAMPLE scripts/config/env_grading.rb
154 162
155 163 # create new environment.rb file
156 164 echo "RAILS_ROOT = '$CAFE_PATH/web'" > scripts/config/environment.rb
157 165 echo "GRADER_ROOT = '$CAFE_PATH/judge/scripts'" >> scripts/config/environment.rb
158 166 echo "require File.join(File.dirname(__FILE__),'../lib/boot')" >> scripts/config/environment.rb
159 167 echo "require File.dirname(__FILE__) + \"/env_#{GRADER_ENV}.rb\"" >> scripts/config/environment.rb
160 168
161 169 # compiling box
162 170 MACHINE_TYPE=`uname -m`
163 171 if [ ${MACHINE_TYPE} == 'x86_64' ]; then
164 172 gcc -std=c99 -o scripts/std-script/box scripts/std-script/box64-new.c
165 173 else
166 174 g++ -o scripts/std-script/box scripts/std-script/box.cc
167 175 fi
168 176
169 177
170 178 cd ..
171 179
172 180 echo "Now you are ready to run cafe grader...."
173 181 echo
174 182 echo "Try:"
175 183 echo
176 184 echo " cd web"
177 185 echo " rails s"
178 186 echo
179 187 echo "and access web at http://localhost:3000/"
180 188 echo "The root username is 'root', its password is 'ioionrails'."
181 189
You need to be logged in to leave comments. Login now