-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathd2lang.sh
200 lines (174 loc) · 5.24 KB
/
d2lang.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
200
#!/bin/bash
# d2lang.sh developed by John Phillips 20160904 and updated 20240307
# This version is for Ubuntu Server 22.04 running on Virtual Box or AWS
# Adds additional programming languages to the LAMP server created by the d1.sh script.
starttime=$(date "+%s")
newusername='jdoe'
userpw='mypw'
hostname='localhost'
# Function to display a separator line
print_separator() {
echo '-----------------------------------------------------------------------------------------------'
}
# Function to display header
print_header() {
print_separator
echo '---- UPDATING THE SYSTEM FOR VIRTUAL BOX UBUNTU 22.04 SERVER'
echo '---- script developed by John Phillips 20160904 and updated 20240307'
echo "---- bash script $0 run on $(date) by $(whoami) in folder $(pwd)"
print_separator
}
# Function to display footer
print_footer() {
print_separator
finishtime=$(date "+%s")
elapsed_time=$((finishtime - starttime))
echo "Elapsed time was $elapsed_time seconds."
echo "The ip address is $(hostname -I)"
print_separator
}
# Function to update the system
update_system() {
print_separator
echo '---- UPDATING THE SERVER'
apt-get -qq update -y
apt-get -qq upgrade -y
print_separator
}
install_ruby() {
print_separator
echo '---- INSTALLING RUBY WHICH IS PREINSTALLED ON VAGRANT BUT NOT ON VIRTUALBOX OR AWS'
apt-get -qq install -y ruby
ruby --version
# add test script for ruby
echo "#!/usr/bin/ruby" >/etc/skel/public_html/test/rubytest.rb
echo 'print "Content-type: text/html\n\n"' >>/etc/skel/public_html/test/rubytest.rb
echo 'print "<html><body><p>Hello using Ruby!</p></body></html>"' >>/etc/skel/public_html/test/rubytest.rb
chmod 755 /etc/skel/public_html/test/rubytest.rb
print_separator
}
install_java_8() {
print_separator
echo '---- INSTALLING JAVA OPEN-JDK-8 COMPILER'
apt-get -qq install -y openjdk-8-jdk java-common
# update-alternatives --set java /usr/lib/jvm/java-21-openjdk-amd64/bin/java
# echo 'JAVA_HOME="/usr/lib/jvm/java-21-openjdk-amd64"' >> /etc/environment
javac -version
java -version
echo '---- INSTALLING JAVA/MYSQL JDBC DRIVER'
# apt-get -qq install -y libmysql-java
apt-get -qq install -y libmariadb-java
# echo 'CLASSPATH=.:/usr/share/java/mysql-connector-java.jar' >> /etc/environment
echo 'CLASSPATH=.:/usr/share/java/mariadb-java-client.jar' >>/etc/environment
print_separator
}
install_java_21() {
print_separator
echo '---- INSTALLING JAVA OPEN-JDK-21 COMPILER'
apt-get -qq install -y openjdk-21-jdk java-common
update-alternatives --set java /usr/lib/jvm/java-21-openjdk-amd64/bin/java
echo 'JAVA_HOME="/usr/lib/jvm/java-21-openjdk-amd64"' >>/etc/environment
javac -version
java -version
# echo '---- INSTALLING JAVA/MYSQL JDBC DRIVER'
# apt-get -qq install -y libmysql-java
# apt-get -qq install -y libmariadb-java
# echo 'CLASSPATH=.:/usr/share/java/mysql-connector-java.jar' >> /etc/environment
print_separator
}
install_c() {
print_separator
echo '---- INSTALLING C AND C++ COMPILERS'
apt-get -qq install -y build-essential
gcc --version
g++ --version
print_separator
}
install_csharp() {
print_separator
echo '---- INSTALLING C# COMPILER'
apt-get -qq install -y mono-complete
mono
print_separator
}
install_go() {
print_separator
echo '---- INSTALLING GO'
apt-get -qq install -y golang
go version
print_separator
}
install_clojure() {
print_separator
echo '---- INSTALLING CLOJURE'
apt-get install -y clojure
print_separator
}
install_fortran() {
print_separator
echo '---- INSTALLING FORTRAN COMPILER'
apt-get install -y gfortran
gfortran --version
print_separator
}
install_cobol() {
print_separator
echo '---- INSTALLING COBOL COMPILER'
apt-get install -y open-cobol
cobc -V
print_separator
}
install_pl1() {
print_separator
echo '---- INSTALLING PL/I COMPILER'
wget http://www.iron-spring.com/pli-0.9.9.tgz
tar -xvzf pli-1.2.0.tgz
cd pli-1.2.0
make install
cd ..
rm -f pli-1.2.0.tgz
plic -V
print_separator
}
install_nodejs() {
print_separator
echo '---- INSTALLING NODEJS'
apt-get install -y nodejs
node -v
echo '---- INSTALLING NPM'
apt-get install -y npm
print_separator
}
install_tomcat() {
# echo '-----------------------------------------------------------------------------------------------'
# echo '---- INSTALLING TOMCAT JAVA WEB SERVER'
# echo '-----------------------------------------------------------------------------------------------'
# #some 16.04 commands for working with tomcat include
# #systemctl status tomcat8
# #systemctl restart tomcat8
# apt-get -qq install -y tomcat8 tomcat8-docs tomcat8-admin tomcat8-examples
# echo '---- CONFIGURE TOMCAT'
# echo '---- SET THE TOMCAT ADMIN USER: tomcat'
# echo '---- SET THE TOMCAT ADMIN PASSWORD: tomcatpw'
# echo '---- UPLOAD AND RUN JSP PROGRAMS AT BROWSER URL OF: ipaddress:8080'
# sed -i 's/<\/tomcat-users>/ <user username="tomcat" password="mucis" roles="manager-gui,admin-gui"\/><\/tomcat-users>/' /etc/tomcat8/tomcat-users.xml
}
# Main Program
# Uncomment the languages you want to install
print_header
update_system
# install_c
# install_clojure
# install_cobol
# install_csharp
# install_fortran
# install_go
# install_java_8
# install_java_21
# install_nodejs
# install_pl1
# install_ruby
# Uncomment additional servers to install
# install_tomcat # Tomcat is a web server for java apps
print_footer
# end of script