|
@@ -21,10 +21,11 @@ class Installer:
|
|
|
# Prerequisites
|
|
|
#######################################
|
|
|
self.__run_command("sudo apt-get update", True)
|
|
|
- self.__run_command("sudo apt-get upgrade", True)
|
|
|
- self.__run_command("sudo apt-get install build-essential libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev python-software-properties unzip git-core libcurl4-openssl-dev libbz2-dev libmysqlclient-dev mongodb-clients libreadline6-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev libgdbm-dev ncurses-dev automake libffi-dev htop libtool bison libevent-dev libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 liborc-0.4-0 libwxbase2.8-0 libwxgtk2.8-0 libgnutls-dev libjson0-dev", True)
|
|
|
+ self.__run_command("sudo apt-get upgrade", True)
|
|
|
+ self.__run_command("sudo apt-get install build-essential libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev python-software-properties unzip git-core libcurl4-openssl-dev libbz2-dev libmysqlclient-dev mongodb-clients libreadline6-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev libgdbm-dev ncurses-dev automake libffi-dev htop libtool bison libevent-dev libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 liborc-0.4-0 libwxbase2.8-0 libwxgtk2.8-0 libgnutls-dev libjson0-dev libmcrypt-dev", True)
|
|
|
|
|
|
self.__run_command("cp ../config/benchmark_profile ../../.bash_profile")
|
|
|
+ self.__run_command("sudo sh -c \"echo '* soft nofile 4096' >> /etc/security/limits.conf\"")
|
|
|
|
|
|
#######################################
|
|
|
# Languages
|
|
@@ -33,9 +34,11 @@ class Installer:
|
|
|
#
|
|
|
# Erlang
|
|
|
#
|
|
|
- self.__run_command("curl -klO https://elearning.erlang-solutions.com/couchdb//rbingen_adapter//package_R16B_precise64_1361901944/esl-erlang_16.b-1~ubuntu~precise_amd64.deb")
|
|
|
- self.__run_command("sudo /usr/bin/dpkg --install esl-erlang_16.b-1~ubuntu~precise_amd64.deb")
|
|
|
-
|
|
|
+ self.__run_command("sudo cp ../config/erlang.list /etc/apt/sources.list.d/erlang.list")
|
|
|
+ self.__run_command("wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add -")
|
|
|
+ self.__run_command("sudo apt-get update")
|
|
|
+ self.__run_command("sudo apt-get install esl-erlang", True)
|
|
|
+
|
|
|
#
|
|
|
# Python
|
|
|
#
|
|
@@ -92,7 +95,7 @@ class Installer:
|
|
|
|
|
|
self.__run_command("wget --trust-server-names http://www.php.net/get/php-5.4.13.tar.gz/from/us1.php.net/mirror")
|
|
|
self.__run_command("tar xvf php-5.4.13.tar.gz")
|
|
|
- self.__run_command("./configure --with-pdo-mysql --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data", cwd="php-5.4.13")
|
|
|
+ self.__run_command("./configure --with-pdo-mysql --with-mysql --with-mcrypt --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data", cwd="php-5.4.13")
|
|
|
self.__run_command("make", cwd="php-5.4.13")
|
|
|
self.__run_command("sudo make install", cwd="php-5.4.13")
|
|
|
self.__run_command("printf \"\\n\" | sudo pecl install apc-beta", cwd="php-5.4.13")
|
|
@@ -100,6 +103,18 @@ class Installer:
|
|
|
self.__run_command("sudo cp ../config/php-fpm.conf /usr/local/lib/php-fpm.conf")
|
|
|
self.__run_command("rm php-5.4.13.tar.gz")
|
|
|
|
|
|
+ # Composer
|
|
|
+ self.__run_command("curl -sS https://getcomposer.org/installer | php -- --install-dir=bin")
|
|
|
+
|
|
|
+ # Phalcon
|
|
|
+ self.__run_command("git clone git://github.com/phalcon/cphalcon.git")
|
|
|
+ self.__run_command("cd cphalcon/release")
|
|
|
+ self.__run_command("phpize")
|
|
|
+ self.__run_command("./configure --enable-phalcon")
|
|
|
+ self.__run_command("make && make install")
|
|
|
+ self.__run_command("echo 'extension=phalcon.so' | sudo tee -a /etc/php5/conf.d/phalcon.ini")
|
|
|
+ self.__run_command("php -i | grep phalcon")
|
|
|
+
|
|
|
#
|
|
|
# Haskell
|
|
|
#
|
|
@@ -129,6 +144,14 @@ class Installer:
|
|
|
self.__run_command("make", cwd="nginx-1.2.7")
|
|
|
self.__run_command("sudo make install", cwd="nginx-1.2.7")
|
|
|
|
|
|
+ #
|
|
|
+ # Openresty (nginx with openresty stuff)
|
|
|
+ #
|
|
|
+ self.__run_command("curl http://openresty.org/download/ngx_openresty-1.2.7.5.tar.gz | tar xvz")
|
|
|
+ self.__run_command("./configure --with-luajit", cwd="ngx_openresty-1.2.7.5")
|
|
|
+ self.__run_command("make", cwd="ngx_openresty-1.2.7.5")
|
|
|
+ self.__run_command("sudo make install", cwd="ngx_openresty-1.2.7.5")
|
|
|
+
|
|
|
#
|
|
|
# Gunicorn
|
|
|
#
|
|
@@ -214,21 +237,27 @@ class Installer:
|
|
|
self.__run_command("sudo pip install flask flask-sqlalchemy")
|
|
|
|
|
|
##############################
|
|
|
- # Play
|
|
|
+ # Play 2
|
|
|
##############################
|
|
|
self.__run_command("wget http://downloads.typesafe.com/play/2.1.1/play-2.1.1.zip")
|
|
|
self.__run_command("unzip -o play-2.1.1.zip")
|
|
|
self.__run_command("rm play-2.1.1.zip")
|
|
|
-
|
|
|
+
|
|
|
##############################
|
|
|
- # Vert.x
|
|
|
+ # Play 1
|
|
|
##############################
|
|
|
- self.__run_command("curl http://vertx.io/downloads/vert.x-1.3.1.final.tar.gz | tar xvz")
|
|
|
+ self.__run_command("wget http://downloads.typesafe.com/releases/play-1.2.5.zip")
|
|
|
+ self.__run_command("unzip -o play-1.2.5.zip")
|
|
|
+ self.__run_command("rm play-1.2.5.zip")
|
|
|
+ self.__run_command("mv play-1.2.5/play play-1.2.5/play1")
|
|
|
+
|
|
|
+ # siena
|
|
|
+ self.__run_command("play-1.2.5/play install siena", send_yes=True)
|
|
|
|
|
|
##############################
|
|
|
- # WebGO
|
|
|
+ # Vert.x
|
|
|
##############################
|
|
|
- self.__run_command("go/bin/go get github.com/hoisie/web")
|
|
|
+ self.__run_command("curl http://vertx.io/downloads/vert.x-1.3.1.final.tar.gz | tar xvz")
|
|
|
|
|
|
##############################
|
|
|
# Yesod
|
|
@@ -266,61 +295,60 @@ class Installer:
|
|
|
|
|
|
remote_script = """
|
|
|
|
|
|
- ##############################
|
|
|
- # Prerequisites
|
|
|
- ##############################
|
|
|
- yes | sudo apt-get update
|
|
|
- yes | sudo apt-get install build-essential git libev-dev libpq-dev libreadline6-dev
|
|
|
-
|
|
|
- ##############################
|
|
|
- # MySQL
|
|
|
- ##############################
|
|
|
- sudo sh -c "echo mysql-server mysql-server/root_password_again select secret | debconf-set-selections"
|
|
|
- sudo sh -c "echo mysql-server mysql-server/root_password select secret | debconf-set-selections"
|
|
|
-
|
|
|
- yes | sudo apt-get install mysql-server
|
|
|
-
|
|
|
- # use the my.cnf file to overwrite /etc/mysql/my.cnf
|
|
|
- sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.orig
|
|
|
- sudo mv my.cnf /etc/mysql/my.cnf
|
|
|
- sudo restart mysql
|
|
|
-
|
|
|
- # Insert data
|
|
|
- mysql -uroot -psecret < create.sql
|
|
|
-
|
|
|
- ##############################
|
|
|
- # Weighttp
|
|
|
- ##############################
|
|
|
-
|
|
|
- git clone git://git.lighttpd.net/weighttp
|
|
|
- cd weighttp
|
|
|
- ./waf configure
|
|
|
- ./waf build
|
|
|
- sudo ./waf install
|
|
|
- cd ~
|
|
|
-
|
|
|
- ##############################
|
|
|
- # wrk
|
|
|
- ##############################
|
|
|
-
|
|
|
- git clone https://github.com/wg/wrk.git
|
|
|
- cd wrk
|
|
|
- make
|
|
|
- sudo cp wrk /usr/local/bin
|
|
|
- cd ~
|
|
|
-
|
|
|
- ##############################
|
|
|
- # MongoDB
|
|
|
- ##############################
|
|
|
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
|
|
|
- sudo cp config/10gen.list /etc/apt/sources.list.d/10gen.list
|
|
|
- sudo apt-get update
|
|
|
- yes | sudo apt-get install mongodb-10gen
|
|
|
-
|
|
|
- sudo mv /etc/mongodb.conf /etc/mongodb.conf.orig
|
|
|
- sudo mv mongodb.conf /etc/mongodb.conf
|
|
|
- sudo restart mongodb
|
|
|
- """
|
|
|
+##############################
|
|
|
+# Prerequisites
|
|
|
+##############################
|
|
|
+yes | sudo apt-get update
|
|
|
+yes | sudo apt-get install build-essential git libev-dev libpq-dev libreadline6-dev
|
|
|
+sudo sh -c "echo '* soft nofile 4096' >> /etc/security/limits.conf"
|
|
|
+
|
|
|
+##############################
|
|
|
+# MySQL
|
|
|
+##############################
|
|
|
+sudo sh -c "echo mysql-server mysql-server/root_password_again select secret | debconf-set-selections"
|
|
|
+sudo sh -c "echo mysql-server mysql-server/root_password select secret | debconf-set-selections"
|
|
|
+
|
|
|
+yes | sudo apt-get install mysql-server
|
|
|
+
|
|
|
+# use the my.cnf file to overwrite /etc/mysql/my.cnf
|
|
|
+sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.orig
|
|
|
+sudo mv my.cnf /etc/mysql/my.cnf
|
|
|
+sudo restart mysql
|
|
|
+
|
|
|
+# Insert data
|
|
|
+mysql -uroot -psecret < create.sql
|
|
|
+
|
|
|
+##############################
|
|
|
+# Weighttp
|
|
|
+##############################
|
|
|
+
|
|
|
+git clone git://git.lighttpd.net/weighttp
|
|
|
+cd weighttp
|
|
|
+./waf configure
|
|
|
+./waf build
|
|
|
+sudo ./waf install
|
|
|
+cd ~
|
|
|
+##############################
|
|
|
+# wrk
|
|
|
+##############################
|
|
|
+
|
|
|
+git clone https://github.com/wg/wrk.git
|
|
|
+cd wrk
|
|
|
+make
|
|
|
+sudo cp wrk /usr/local/bin
|
|
|
+cd ~
|
|
|
+
|
|
|
+##############################
|
|
|
+# MongoDB
|
|
|
+##############################
|
|
|
+sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
|
|
|
+sudo cp 10gen.list /etc/apt/sources.list.d/10gen.list
|
|
|
+sudo apt-get update
|
|
|
+yes | sudo apt-get install mongodb-10gen
|
|
|
+sudo mv /etc/mongodb.conf /etc/mongodb.conf.orig
|
|
|
+sudo mv mongodb.conf /etc/mongodb.conf
|
|
|
+sudo restart mongodb
|
|
|
+"""
|
|
|
|
|
|
p = subprocess.Popen(self.benchmarker.ssh_string.split(" "), stdin=subprocess.PIPE)
|
|
|
p.communicate(remote_script)
|
|
@@ -359,4 +387,4 @@ class Installer:
|
|
|
pass
|
|
|
############################################################
|
|
|
# End __init__
|
|
|
- ############################################################
|
|
|
+ ############################################################
|