diff options
| author | cassio <cassiopc@gmail.com> | 2014-08-26 07:33:49 +0000 |
|---|---|---|
| committer | cassio <cassiopc@gmail.com> | 2014-08-26 07:33:49 +0000 |
| commit | 6a532dd4e6b853ea3c8e5694f57295e8a3b191f7 (patch) | |
| tree | ce63caeeb60be6ac7027665d19a0232bc5a8e31a /tools | |
| parent | a36325e95bfd75af9c37b9e0eac6dcf1028a6f61 (diff) | |
| download | boca-6a532dd4e6b853ea3c8e5694f57295e8a3b191f7.tar.gz boca-6a532dd4e6b853ea3c8e5694f57295e8a3b191f7.zip | |
few minor fixes and possibility of having a hotstandby bkp
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/READMEubuntu.txt | 33 | ||||
| -rw-r--r-- | tools/READMEvm.txt | 163 | ||||
| -rwxr-xr-x | tools/dump.sh | 27 | ||||
| -rwxr-xr-x | tools/etc/icpc/becomeserver.sh | 68 | ||||
| -rwxr-xr-x[-rw-r--r--] | tools/etc/icpc/update.sh | 0 | ||||
| -rwxr-xr-x | tools/etc/icpc/updatedbpass.sh | 1 | ||||
| -rwxr-xr-x | tools/genpackage.sh | 10 | ||||
| -rwxr-xr-x | tools/installv2.sh | 46 | ||||
| -rw-r--r-- | tools/postgresql.conf.diffs | 5 |
9 files changed, 128 insertions, 225 deletions
diff --git a/tools/READMEubuntu.txt b/tools/READMEubuntu.txt deleted file mode 100644 index 09994a8..0000000 --- a/tools/READMEubuntu.txt +++ /dev/null @@ -1,33 +0,0 @@ -ICPC Linux installation script ----------------------------------- -Copyright (c) 2009 C. P. de Campos. -Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. - A copy of the license is included in the section entitled "GNU - Free Documentation License". ---------------------------------- -File last modified: 11/oct/2011 - -==> The installv2.sh script is not necessary if you are using the virtual machine version. This is intended to those that -want to install the system as the host of a computer, or desire to create again the virtual machine version from the beginning. - -The script installv2.sh available here was used to create the "ICPC Linux" image after a standard installation -of the ubuntu (or xubuntu) distribution. This is well-suitable in case you do not want to -use the virtualized version, for example, in the server of the contest. After using the installv2.sh script over a fresh -install of the ubuntu, you reach the exactly same content of the virtual machine version that is available. -Take care with the following points during the installation of the ubuntu: -1) Use the name "icpcadmin" and password "icpcadmin" (no quotes obviously) as the standard user during the installation. -2) Call the machine "icpc" (in the same screen where you set up the username above). -3) Use the simplest partitioning option (that is, everything in a single partition) and choose at least 10GB for it. - -After installing ubuntu, the system reboots. Download the script installv2.sh to the home directory of icpcadmin, -make it executable by chmod 755 installv2.sh, and run it as root: sudo ./installv2.sh -and reboot the system to finish the configuration (such as setting passwords, IPs, etc). -Note this is going to give you a system just like you would get from the box (the virtual machine version). If you -want it to become a server, you must follow the same procedure that is indicated in the READMEvm.txt. This -mainly means that you need to run the script /etc/icpc/becomeserver.sh - -The most recent installv2.sh script is available at http://www.ime.usp.br/~cassio/boca/ link named installv2.sh -In case of any questions, do not hesitate to contact me: bocasystem@gmail.com. Have fun! diff --git a/tools/READMEvm.txt b/tools/READMEvm.txt deleted file mode 100644 index e78fca8..0000000 --- a/tools/READMEvm.txt +++ /dev/null @@ -1,163 +0,0 @@ -READMEvm.txt file of the ICPC Linux VM (release 2011) -================================= -Copyright (c) 2009-2011 C. P. de Campos. -Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. - A copy of the license is included in the section entitled "GNU - Free Documentation License". -================================= -Last modified: 10/Oct/2011 - -This file concerns the ICPC Linux image available in this directory. It is a vmware-type -hard-disk image with a system built up over a ubuntu (or xubuntu) distribution. This is -also relevant if you have used the installv2.sh script to build the server natively, as the -system will have the exactly same characteristics of the VM version mentioned here. - -- You need the vmplayer from www.vmware.com to use this image. As far as I know, vmplayer is -free-of-charge for linux and windows hosts. Check it. There is another version based on virtualbox, -which is just a translation from the image here. virtualbox is free and works pretty well too. - -- Internet access is restricted inside the box. By default, users can only access -bombonera.ime.usp.br, the home of BOCA. During the first boot time, you are able to choose a -different IP address of your server instead of bombonera. If you are going to run a contest, -you must do that! The system inside the virtual machine (or just VM) will -only be able to access such server and nothing else. An alias with the name boca is created -for such IP, so it is possible to connect to it using the name boca instead of typing the -IP address. So, during the first initialization of each VM you should configure the IP address -of your BOCA server. The image provided here can be used as a BOCA server too. See next bullets -on how to do that. In the team machines, check if the internet is really blocked. If not, the -initialization scripts might be malfunctioning, or the computer might be mistakenly set to be -a server (this can be easily checked by verifying whether the file /etc/icpc/.isserver exists or not). - -- There are two linux users in the box: icpcadmin, which has right to become root using -sudo, and the user icpc. The latter has password icpc, and more restricted access. The user -icpc is intended to be used by the teams, judges, staff, or anyone else. The icpcadmin is -an administrative account and the password must be known only by the sysadmin, director of the -contest, and so on. During the first boot time, you are able to change the password of the icpcadmin -account. DO IT and keep it safe! The default password is icpcadmin. Note that such -users (icpcadmin and icpc) have nothing to do with users of the BOCA web system. Each -team must have a distinct user to login on BOCA, which are configured through the BOCA web interface. -Still, each team will logon into the linux box using the same user: icpc. As mentioned, this is -not a security problem because the user icpc is just a local account in the linux system without -any privileges. - -- To run a contest using a virtual machine, you probably need at least 384MB of RAM inside a -"good" computer (then you can configure the VM to run with 256MB). I have tested the vm image -configured to use 512MB. If your host has for example 1GB, you may change the vmplayer -to use 768MB, although 512 should be fine too. Just keep some room for the underlying operating -system. Using more memory inside the vm is better for the teams, so they can run heavier tools. - -- Unzipped, the image takes around 12 GB of your hard disk. You need this space in the hard -disk of each computer. If this is a problem for you, it is possible to rebuild the vm system -with less space (8GB for clients is enough, the server has to have more). - -- It is possible to maximize the VM window so as it uses the whole screen area. The current -image is set to 800x600 or 1024x768 pixels, but that can probably be increased depending on your -video card and monitor settings. The keyboard config can also be changed -inside the x-window system configurations. - -- During the first startup, an script will ask you for the BOCA database password (after -asking the BOCA server IP address and password of the icpcadmin). YOU MUST ONLY FILL -SUCH PASSWORD IN THERE IF the machine being configured is NOT going to be used by a team. With -this password, it will be possible to access the database directly (instead of by web). Teams -shall access the system only by using the web interface. This password is intended to be used -in the machine that will have the autojudging system, as the autojudging script needs to -connect to the database directly (see next item about the autojudge). In fact only the -autojudging machine (or machines, if you have more than one) need this password to be set. - -- An autojugding machine is used to automatically compile and execute the codes submitted -by the teams. DO NOT run it on the same computer as the BOCA server (the web server and the database -server). Because teams may submit malicious code, it is safe to run it on a separate computer. -The worst scenario (in case a team's code hangs the computer) will require to reboot such -computer. About the configuration, the only difference between the autojudge computer and -team's computers is the setup of the database password, as mentioned before. You must set up -the database password during the initialization of the autojudging computer. Then, to run the -autojudging system, you need to login as icpcadmin (privileged user), open a command-line -terminal (it is inside accessories), and run "sudo /var/www/boca/tools/autojudge.sh" (without quotes). -If everything is fine, some dots will appear on the screen while the script runs an infinite -loop waiting for submissions. Ctrl-C stops the autojudge. The autojudging shall be started -after configuring the server to run the contest, otherwise it will eventually output an error or -freeze. If you see the dots happening every few seconds, you are in the correct track. - -- With old versions of ICPC Linux, all the team files were kept in the server. Now this is -NOT true anymore. Everything is stored locally. So, after a warmup and before the real -contest, it is necessary to go to each team computer, open a command-line shell (you do not -need to change to the privileged user, the unprivilegied icpc user is enough) and run -the command -/etc/icpc/cleandisk.sh -After that, reboot the system inside the virtual machine (not the host computer itself!) and you -are done. All files belonging to the icpc user have been erased. - -- Because the files are stored in the local team computers, now BOCA (by web) has an option -to make file backups, where teams can save their files on the server. Currently this must be done -manually by the teams (using the web interface of BOCA). There is a script available inside the -ICPC linux (and inside the BOCA package) that teams may use to backup their files. To -do that, they can just run "makebkp.sh". If they want to save other files, it is possible to use -the web interface of the teams. Note that teams should submit backup files with small size only, but -that is not a problem because source codes are really small. The script makebkp.sh is available -(but not very tested) which sends files .c, .cpp, .java and .in (it looks for these files in the -current directory) to the server. IT IS IMPORTANT TO LET THE TEAMS KNOW ABOUT THIS SITUATION AND -THE POSSIBILITY OF SAVING FILES TO THE SERVER, EITHER BY USING THE makebkp.sh IN THE COMMAND-LINE, -OR BY DIRECTLY UPLOADING THE FILES IN THE WEB INTERFACE. - -- The most complicated thing to run the contest using a VM is that you need to restrict the -use of the host operating system. For example, it would be possible for a team to switch -the window (from the VM to another program), and then use the internet (in case you have -internet available in the host, which is usually true). I believe that the simplest approach -to restrict the system is to impose a set of packet filtering rules in the host system, using -a firewall solution. That would make the host system useless for the team. The only permission -that the host must have is to allow connections to the BOCA server and (possibly) to the -authentication server of your network (in case it is needed to keep the host running. Better -if that can be avoided too). If your host is linux, then it is easy: you just need to include some -rules in the iptables (certainly a sysadmin knows how to do it). -For windows (which is probably more usual and easy to deal with), there are many free-of-charge -solutions. I do not know them well, but let me cite some: www.r-firewall.com, -www.personalfirewall.comodo.com, tiny personal firewall (it is possible to find it online), -perhaps the windows firewall can be enough (in some windows versions). NOW THE MOST COMMON / -PRACTICAL WAY TO SOLVE THE PROBLEM: keep an eye on the teams all the time. Have some volunteers -looking the teams work on the computers during the whole contest. No one is allowed to leave the -VM and use the underlying system. If they do that, then simply expel them from the contest! -Give a warn of the possible penalty to everyone before starting and that is it. Quick and clean :D - -- Any vm can become a server for the contest, which in this case will be a BOCA server running -inside a virtual machine system. To do that, you just need to login as user -icpcadmin, become root using the command "sudo /bin/bash" -and execute the script /etc/icpc/becomeserver.sh -READ THE FULL TEXT BEFORE RUNNING THIS SCRIPT. THE VM MUST BE IN BRIDGE MODE (see explanation -below). At this moment, you will be prompted to define the DB password or use a random one. After -that, the IP address of this computer must be used to configure all other VMs (during those -startup questions). -Some considerations about a server: more memory must be used for the server. Have a computer -with enough memory and increase the memory of the VM. Also take care with the -disk space. The current image has only around 1.6GB free (still, that must be more than enough). -Finally, note that to run the VM as the server, it must be configured to run in BRIDGE mode -with respect to the network interface, otherwise it will not be possible for other computers -to reach it. BRIDGE mode means that you must look in your vmplayer (whatever player you are using) -to configure the network as in BRIDGE mode). You may need to reboot the VM. If after rebooting it -and running the command-line program "ifconfig" you can see that the IP address of your computer -is the same inside the VM and outside, you are done. Besides that, the underlying operating -system must have NO apache or postgresql running, nor -any other TCP server in the ports 80 (http), 443 (https) and 5432 (postgres). -Yet I point out that running the BOCA system in a server computer (without the VM) -is the mostly tested solution, but the VM version was used in many sites already. If you want to -run it natively, stop here and go to the xubuntu directory of bombonera.ime.usp.br to see the -instructions. You will need a computer that you can format and reinstall. -That is the simplest way of having a full ICPC linux server -running apart from using the VM version itself, as explained here. - -- After having the server and clients running up, it is necessary to configure the BOCA -web system. For that purpose, please follow the steps of the ADMIN.txt file in the doc/ -folder of the boca system. It is available in the BOCA package or inside the ICPC -linux at /var/www/boca/doc/. There are some examples inside the bits/ subfolder. - -- Try to use the vm without fear. In the worst case, download it again and start again -(or even better, keep a copy of the image without changes). Any questions, please -do not hesitate to contact me: bocasystem@gmail.com. - -- If you need to update the BOCA system that is running in your server (with the risk of losing -data in the database of BOCA!), then you may run the script /etc/icpc/installboca.sh -If you need to update general scripts that are used in the system and were installed by the -installv2.sh procedure, you may run the script /etc/icpc/installscripts.sh -These are easy ways to update the system in case bugs are found and fixed. diff --git a/tools/dump.sh b/tools/dump.sh new file mode 100755 index 0000000..f3f3282 --- /dev/null +++ b/tools/dump.sh @@ -0,0 +1,27 @@ +#!/bin/bash +if [ "`id -u`" != "0" ]; then + echo "Must be run as root" + exit 1 +fi +bocadir=/var/www/boca +[ -r /etc/boca.conf ] && . /etc/boca.conf + +for i in pg_dump grep cut gzip date; do + if [ "`which $i`" == "" ]; then + echo "$i executable is not in the PATH. Aborting" + exit 1 + fi +done +da=`date +%d%b%Y-%Hh%Mmin` +echo "I will create the file `pwd`/bocadb.$da.tar.gz" +f=$bocadir/src/private/conf.php +[ -r $f ] || f=$bocadir/src/private/conf.php +if [ -r $f ]; then + echo I believe the password is `grep "\$conf\[\"dbpass\"\]=" $bocadir/src/private/conf.php | cut -d'"' -f4` +else + echo "The password can be found in private/conf.php of the boca directory" +fi +pg_dump -f bocadb.$da.tar -Ft -b -h 127.0.0.1 -U bocauser bocadb +gzip -9 bocadb.$da.tar + +exit 0 diff --git a/tools/etc/icpc/becomeserver.sh b/tools/etc/icpc/becomeserver.sh index 4de2084..7f1cf1b 100755 --- a/tools/etc/icpc/becomeserver.sh +++ b/tools/etc/icpc/becomeserver.sh @@ -1,7 +1,7 @@ #!/bin/bash # //////////////////////////////////////////////////////////////////////////////// # //BOCA Online Contest Administrator -# // Copyright (C) 2003-2012 by BOCA Development Team (bocasystem@gmail.com) +# // Copyright (C) 2003-2014 by BOCA Development Team (bocasystem@gmail.com) # // # // This program is free software: you can redistribute it and/or modify # // it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # // You should have received a copy of the GNU General Public License # // along with this program. If not, see <http://www.gnu.org/licenses/>. # //////////////////////////////////////////////////////////////////////////////// -# // Last modified 06/aug/2012 by cassio@ime.usp.br +# // Last modified 15/aug/2014 by cassio@ime.usp.br for i in id chown chmod cut awk grep cat sed makepasswd ifconfig iptables php touch mkdir update-rc.d su rm mv; do p=`which $i` if [ -x "$p" ]; then @@ -25,6 +25,15 @@ for i in id chown chmod cut awk grep cat sed makepasswd ifconfig iptables php to exit 1 fi done +bkpserver=0 +if [ "$1" == "bkp" ]; then + if [ "$2" == "" ]; then + echo "Usage $0 bkp <IP-number-of-main-server>" + exit 1 + else + bkpserver=$2 + fi +fi if [ "`id -u`" != "0" ]; then echo "Must be run as root" @@ -90,17 +99,21 @@ for i in `ls /etc/postgresql/*/main/pg_hba.conf`; do echo "For doing that, I am using the line:" echo "" echo -e "echo \"host bocadb bocauser 0/0 md5\" >> $i" + echo -e "echo \"host postgres replication 0/0 md5\" >> $i" echo "" - echo "==> IDEALLY FOR IMPROVED SECURITY, REPLACE THE 0/0 ABOVE (IN THAT FILE) WITH THE IP ADDRESS OF THE AUTOJUDGE MACHINE <==" + echo "==> IDEALLY FOR IMPROVED SECURITY, REPLACE THE FIRST 0/0 ABOVE (IN THAT FILE) WITH THE IP ADDRESS OF THE AUTOJUDGE MACHINE <==" echo "==> IF YOU HAVE MULTIPLE AUTOJUDGE MACHINES, WRITE ONE LINE FOR EACH IP ADDRESS THERE IN THE FILE <==" + echo "==> IDEALLY FOR IMPROVED SECURITY, REPLACE THE SECOND 0/0 ABOVE (FOR REPLICATION) WITH THE IP ADDRESS OF THE REPLICATION MACHINE <==" echo "############" echo "host bocadb bocauser 0/0 md5" >> $i + echo "host postgres replication 0/0 md5" >> $i else echo "############" echo "IT SEEMS YOU ALREADY HAVE MODIFIED THE FILE $i WITH BOCA'S INFORMATION" echo "I WOULD USE THE LINE:" echo "" echo -e "echo \"host bocadb bocauser 0/0 md5\" >> $i" + echo -e "echo \"host postgres replication 0/0 md5\" >> $i" echo "" echo "to give access to the database to other computers, but" echo ">>> I'M NOT DOING IT -- PLEASE CHECK IT <<<" @@ -138,14 +151,49 @@ if [ $? != 0 ]; then echo "work_mem = 4MB" >> $i fi done +for i in `ls /etc/postgresql/*/main/postgresql.conf`; do +grep -q "^[^\#]*max_wal_senders" $i +if [ $? != 0 ]; then + echo "max_wal_senders = 3" >> $i +fi +done +for i in `ls /etc/postgresql/*/main/postgresql.conf`; do +grep -q "^[^\#]*wal_level" $i +if [ $? != 0 ]; then + echo "wal_level = hot_standby" >> $i +fi +done +for i in `ls /etc/postgresql/*/main/postgresql.conf`; do +grep -q "^[^\#]*wal_keep_segments" $i +if [ $? != 0 ]; then + echo "wal_keep_segments = 100" >> $i +fi +done + +# for i in `ls /etc/postgresql/*/main/postgresql.conf`; do +# grep -q "^[^\#]*archive_mode" $i +# if [ $? != 0 ]; then +# echo "archive_mode = on" >> $i +# fi +# done +# for i in `ls /etc/postgresql/*/main/postgresql.conf`; do +# grep -q "^[^\#]*archive_command" $i +# if [ $? != 0 ]; then +# echo "archive_command = 'test ! -f /var/www/pg_archive/%f.gz && gzip < %p > /var/www/pg_archive/%f.gz && chmod 640 /var/www/pg_archive/%f.gz''" >> $i +# fi +# done +# mkdir -p /var/www/pg_archive +# chown postgres:icpcadmin /var/www/pg_archive +# chmod 6770 /var/www/pg_archive echo "You need to define a password to be used in the database." +echo "IF THIS IS A BKP SERVER, PLEASE USE THE SAME AS IN THE MAIN SERVER." echo -n "It is possible generate a random one. Want a random password " read -p "[Y/n]? " OK if [ "$OK" = "n" ]; then read -p "Enter DB password: " -s PASS else - PASS=`makepasswd --char 8` + PASS=`makepasswd --char 10` echo "The DB password is $PASS" fi echo "Keep the DB password safe!" @@ -209,5 +257,17 @@ else fi touch /etc/icpc/.isserver +if [ "$bkpserver" != "0" ]; then + echo "Connecting to main server at $bkpserver to initialize the database -- pay attention in the following messages" + for i in `ls -d /var/lib/postgresql/*/main`; do + echo "standby_mode = \'on\'" > $i/recovery.conf + chmod 600 $i/recovery.conf + echo "primary_conninfo = \'host=$bkpserver port=5432 user=postgres password=$PASS\'" >> $i/recovery.conf + chown $postgresuser $i/recovery.conf + su - $postgresuser -c "pg_basebackup -D $i -w -R --xlog-method=stream --dbname=\'host=$bkpserver user=postgres port=5432 password=$PASS\'" + done + echo "=-=-=-= CHECK IF THE PREVIOUS MESSAGES HAVE NO ERRORS =-=-=-=" +fi + echo "configuration finished. Boca should be available at http://localhost/boca/" echo "reboot might not be required, but is advised." diff --git a/tools/etc/icpc/update.sh b/tools/etc/icpc/update.sh index f6b4bb6..f6b4bb6 100644..100755 --- a/tools/etc/icpc/update.sh +++ b/tools/etc/icpc/update.sh diff --git a/tools/etc/icpc/updatedbpass.sh b/tools/etc/icpc/updatedbpass.sh index b100af5..a33be16 100755 --- a/tools/etc/icpc/updatedbpass.sh +++ b/tools/etc/icpc/updatedbpass.sh @@ -75,6 +75,7 @@ if [ $? == 0 -a "$BOCASERVER" == "localhost" ]; then su - $postgresuser -c "echo drop user bocauser | psql -d template1 >/dev/null 2>/dev/null" su - $postgresuser -c "echo create user bocauser createdb password \'$PASS\' | psql -d template1 2>/dev/null" su - $postgresuser -c "echo alter user bocauser createdb password \'$PASS\' | psql -d template1" + su - $postgresuser -c "echo alter user postgres password \'$PASS\' | psql -d template1" rm -f /tmp/.boca.tmp fi diff --git a/tools/genpackage.sh b/tools/genpackage.sh index 749d196..82448b9 100755 --- a/tools/genpackage.sh +++ b/tools/genpackage.sh @@ -1,7 +1,7 @@ #!/bin/bash # //////////////////////////////////////////////////////////////////////////////// # //BOCA Online Contest Administrator -# // Copyright (C) 2003-2013 by BOCA Development Team (bocasystem@gmail.com) +# // Copyright (C) 2003- by BOCA Development Team (bocasystem@gmail.com) # // # // This program is free software: you can redistribute it and/or modify # // it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # // You should have received a copy of the GNU General Public License # // along with this program. If not, see <http://www.gnu.org/licenses/>. # //////////////////////////////////////////////////////////////////////////////// -# // Last modified 03/sep/2013 by cassio@ime.usp.br +# // Last modified 03/sep/2014 by cassio@ime.usp.br cdir=`pwd` bocadir=$(dirname $cdir) basen=`basename $cdir` @@ -34,7 +34,7 @@ rm -rf /tmp/boca-$ver/.git rm -f /tmp/boca-$ver/tools/boca-*.tgz if [ "$ver" != "" -a -d "boca-$ver" ]; then echo "boca-$ver" > boca-$ver/src/version -echo -e "<?php\n\$BOCAVERSION='boca-$ver';\n\$YEAR='2013';\n?>\n" > boca-$ver/src/versionnum.php +echo -e "<?php\n\$BOCAVERSION='boca-$ver';\n\$YEAR='2014';\n?>\n" > boca-$ver/src/versionnum.php touch boca-$ver/src/private/runtmp/run0.php boca-$ver/src/private/scoretmp/0.php boca-$ver/src/private/remotescores/0.dat \ boca-$ver/src/private/remotescores/0.tmp boca-$ver/src/private/problemtmp/problem0.tmp rm -f boca-$ver/src/balloons/*.png @@ -47,6 +47,10 @@ touch boca-$ver/.temp rm boca-$ver/.temp `find boca-$ver/ -name "*~"` touch boca-$ver/.temp rm boca-$ver/.temp `find boca-$ver/ -name ".\#*"` +touch boca-$ver/.temp +rm boca-$ver/.temp `find boca-$ver/ -name ".DS*"` +touch boca-$ver/.temp +rm boca-$ver/.temp `find boca-$ver/ -name "._*"` cd boca-$ver/tools/etc tar czf ../icpc.etc.tgz * cd ../../.. diff --git a/tools/installv2.sh b/tools/installv2.sh index 302c5e4..0223636 100755 --- a/tools/installv2.sh +++ b/tools/installv2.sh @@ -1,7 +1,7 @@ #!/bin/bash # //////////////////////////////////////////////////////////////////////////////// # //BOCA Online Contest Administrator -# // Copyright (C) 2003-2013 by BOCA Development Team (bocasystem@gmail.com) +# // Copyright (C) 2003-2014 by BOCA Development Team (bocasystem@gmail.com) # // # // This program is free software: you can redistribute it and/or modify # // it under the terms of the GNU General Public License as published by @@ -15,13 +15,21 @@ # // You should have received a copy of the GNU General Public License # // along with this program. If not, see <http://www.gnu.org/licenses/>. # //////////////////////////////////////////////////////////////////////////////// -# // Last modified 11/sep/2013 by cassio@ime.usp.br +# // Last modified 21/Aug/2014 by cassio@ime.usp.br #/////////////////////////////////////////////////////////////////////////////////////////// echo "#############################################################" -echo "### installv2.sh of 11/Sept/2013 (A) by cassio@ime.usp.br ###" +echo "### installv2.sh of 21/Aug/2014 (A) by cassio@ime.usp.br ###" echo "#############################################################" -apt-get install python-software-properties software-properties-common +if [ "`id -u`" != "0" ]; then + echo "Must be run as root" + exit 1 +fi + +apt-get -y install python-software-properties 2>/dev/null +apt-get -y install software-properties-common 2>/dev/null +#apt-get -y install virtualbox-guest-utils virtualbox-guest-dkms 2>/dev/null +#apt-get -y install virtualbox-guest-x11 2>/dev/null for i in id chown chmod cut awk tail grep cat sed mkdir rm mv sleep apt-get add-apt-repository update-alternatives; do p=`which $i` @@ -39,11 +47,6 @@ if [ $? != 0 ]; then echo "Make the install script executable (using chmod) and run it directly, like ./installv2.sh" else -if [ "`id -u`" != "0" ]; then - echo "Must be run as root" - exit 1 -fi - if [ "$1" != "alreadydone" ]; then echo "It is recommended that you run the commands" echo " apt-get update; apt-get upgrade" @@ -69,9 +72,11 @@ sed -i 's/X-GNOME-Autostart-Delay=60/X-GNOME-Autostart-enabled=false/' /etc/xdg/ echo "=============================================================" echo "========= UNINSTALLING SOME UNNECESSARY PACKAGES ===========" echo "=============================================================" -apt-get -y purge libreoffice-common libreoffice-base-core bluez thunderbird \ - ubuntuone-client python-ubuntuone-client \ - ubuntuone-installer python-ubuntuone-storageprotocol +apt-get -y purge libreoffice-common libreoffice-base-core +apt-get -y purge bluez thunderbird +apt-get -y purge unity-lens-shopping +apt-get -y purge unity-webapps-common +apt-get -y purge ubuntuone-client python-ubuntuone-client ubuntuone-installer python-ubuntuone-storageprotocol echo "========= INSTALLING SYSVINIT-UTILS ===========" apt-get -y install sysvinit-utils @@ -111,15 +116,21 @@ if [ "$libCppdoc" == "" ]; then echo "libstdc++6-*-doc not found" exit 1 fi +geanydeb=`apt-cache search geany-plugin-gdb` +if [ "$geanydeb" == "" ]; then + geanydeb=debugger +else + geanydeb=gdb +fi echo "=====================================================================" echo "================= installing packages needed by BOCA ===============" echo "=====================================================================" apt-get -y install zenity apache2 eclipse-pde eclipse-rcp eclipse-platform eclipse-jdt eclipse-cdt eclipse emacs \ - evince g++ gcc gedit scite libstdc++6 makepasswd manpages-dev mii-diag php5-cli php5-mcrypt openjdk-6-dbg \ + evince g++ gcc gedit scite libstdc++6 makepasswd manpages-dev php5-cli php5-mcrypt openjdk-6-dbg \ php5 php5-pgsql postgresql postgresql-client postgresql-contrib quota sharutils default-jdk openjdk-6-doc \ - vim-gnome geany geany-plugin-addons geany-plugin-gdb geany-plugins default-jre sysstat \ + vim-gnome geany geany-plugin-addons geany-plugins geany-plugin-${geanydeb} default-jre sysstat \ vim xfce4 $libCppdev $libCppdoc $libCppdbg php5-gd stl-manual gcc-doc debootstrap schroot c++-annotations if [ $? != 0 ]; then echo "" @@ -170,9 +181,10 @@ Exec=firefox /usr/share/doc/c++-annotations/html/index.html Terminal=false Type=Application EOF -cp /usr/share/applications/eclipse.desktop /etc/skel/Desktop/ -cp /usr/share/applications/gedit.desktop /etc/skel/Desktop/ -cp /usr/share/applications/emacs23.desktop /etc/skel/Desktop/ +[ -f /usr/share/applications/eclipse.desktop ] && cp /usr/share/applications/eclipse.desktop /etc/skel/Desktop/ +[ -f /usr/share/applications/gedit.desktop ] && cp /usr/share/applications/gedit.desktop /etc/skel/Desktop/ +[ -f /usr/share/applications/emacs23.desktop ] && cp /usr/share/applications/emacs23.desktop /etc/skel/Desktop/ +[ -f /usr/share/applications/emacs24.desktop ] && cp /usr/share/applications/emacs24.desktop /etc/skel/Desktop/ cp /usr/share/applications/gnome-terminal.desktop /etc/skel/Desktop/ chmod 755 /etc/skel/Desktop/*.desktop diff --git a/tools/postgresql.conf.diffs b/tools/postgresql.conf.diffs deleted file mode 100644 index 1f02936..0000000 --- a/tools/postgresql.conf.diffs +++ /dev/null @@ -1,5 +0,0 @@ -listen_addresses = '*' -max_connections = 300 # (change requires restart) -shared_buffers = 32MB # min 128kB -work_mem = 4MB -maintenance_work_mem = 64MB # min 1MB |