def snappy(snappy_url=SNAPPY_URL, install=False): if util.dir_exists("$HOME/lib/snappy"): print "snappy already exists in $HOME/lib/snappy" return with settings(warn_only=True): run("mkdir $HOME/lib") basename = os.path.basename(snappy_url).replace(".tar.gz", "") dest_path = "$HOME/lib/" + basename util.remote_archive(snappy_url, dest_path) with cd(dest_path): run("./configure") run("make") if install: sudo("make install") with cd("$HOME/lib"): run("ln -s -f %s snappy" % basename) with cd("$HOME/lib/%s" % basename): run("./snappy_unittest") print "headers: $HOME/lib/snappy" print "libs: $HOME/lib/snappy/.lib"
def install_ghc_from_source(ghc_url=GHC_URL, ghc_version=GHC_VERSION): apt.apt_install("libgmp3c2 libgmp3-dev") if not util.dir_exists("$HOME/builds"): util.mkdir("$HOME/builds") build_dir = "$HOME/builds/" + ghc_version util.remote_archive(ghc_url, build_dir) with cd(build_dir): run("./configure --prefix=/usr/local") sudo("make install")
def install_maven(maven_url=MAVEN_URL): with settings(warn_only=True): run("mkdir $HOME/software") basename = os.path.basename(maven_url).replace("-bin.tar.gz", "") remote_name = "$HOME/software/" + basename util.remote_archive(maven_url, remote_name) with cd("$HOME/software"): run("ln -s %s apache-maven" % basename) with cd("$HOME/bin"): run("ln -s -f $HOME/software/apache-maven/bin/mvn .")
def install_scala(scala_url=SCALA_URL, tmp_dir="/tmp", \ install_path="/usr/local/lib", setup_path=True): basename = os.path.basename(scala_url).replace(".tgz", "") remote_name = install_path + "/" + basename scala_path = install_path + "/scala" util.remote_archive(scala_url, remote_name, use_sudo=True, \ hash_file=False, owner="root", group="root") with cd(install_path): sudo("ln -s -f %s scala" % remote_name) if setup_path: run('echo "export PATH=$PATH:%s/bin" >> $HOME/.profile' % scala_path)
def install_golang(golang_url=GOLANG_URL): install_folder = "$HOME/software/go" with settings(warn_only=True): run("mkdir $HOME/software") util.remote_archive(golang_url, install_folder) # add to path run("echo '' >> $HOME/.bashrc" ) run("echo '# automatically added by install_golang' >> $HOME/.bashrc" ) run("echo 'export GOROOT=%s' >> $HOME/.bashrc" % install_folder) run("echo 'export PATH=$PATH:$GOROOT/bin' >> $HOME/.bashrc") run("echo '# end' >> $HOME/.bashrc" )
def install_vertx(vertx_url=VERTX_URL): with settings(warn_only=True): run("mkdir $HOME/software") run("mkdir $HOME/bin") basename = os.path.basename(vertx_url).replace(".tar.gz", "") install_folder = "$HOME/software/%s" % basename util.remote_archive(vertx_url, install_folder) with cd("$HOME/software"): run("ln -s %s %s" % (basename, "vertx")) with cd("$HOME/bin"): run("ln -s %s ." % "$HOME/software/vertx/bin/vertx")
def install_haskell_platform_from_source( \ platform_url=HASKELL_PLATFORM_URL, \ platform_version=HASKELL_PLATFORM_VERSION): apt.apt_install("mesa-common-dev freeglut3-dev") if not util.dir_exists("$HOME/builds"): util.mkdir("$HOME/builds") build_dir = "$HOME/builds/" + platform_version util.remote_archive(platform_url, build_dir) with cd(build_dir): run("./configure --prefix=/usr/local") run("make") sudo("make install")
def install_akka(akka_url=AKKA_URL): with settings(warn_only=True): run("mkdir $HOME/software") run("mkdir $HOME/bin") basename = os.path.basename(akka_url).replace(".tgz", "") install_folder = "$HOME/software/%s" % basename akka_bin = "%s/bin/akka" % install_folder util.remote_archive(akka_url, install_folder) # set AKKA HOME to install directory run("sed -i 's/^declare AKKA_HOME/#declare AKKA_HOME/g' %s" % \ akka_bin) run("sed -i '/^#declare AKKA_HOME/ a\\AKKA_HOME=%s' %s" % \ ("$HOME/software/akka", akka_bin)) with cd("$HOME/software"): run("ln -s %s %s" % (basename, "akka")) with cd("$HOME/bin"): run("ln -s %s ." % "$HOME/software/akka/bin/akka")
def leveldb(leveldb_url=LEVELDB_URL, use_snappy=True): snappy() if util.dir_exists("$HOME/lib/leveldb"): print "leveldb already exists in $HOME/lib/leveldb" return with settings(warn_only=True): run("mkdir $HOME/lib") basename = os.path.basename(leveldb_url).replace(".tar.gz", "") dest_path = "$HOME/lib/" + basename util.remote_archive(leveldb_url, dest_path) with cd(dest_path): if use_snappy: run("CXXFLAGS=\"-I ~/lib/snappy -L ~/lib/snappy/.libs/\" make all") else: run("make all") with cd("$HOME/lib"): run("ln -s -f %s leveldb" % basename) print "headers: $HOME/lib/leveldb/include/leveldb" print "libs: $HOME/lib/leveldb"