热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu脚本常用软件+rubyonrails

初次使用Ubuntu,我想这个脚本会大大方便你配置Ubuntu,rubyonrails是本人的爱好,你也可以直接注释掉最后己行,只安装软件亦可#!/bin/bashRUBY_VERSION="1.8.6-p287"RUBY_GEM_VERSION="1.3.1"RAILS_APP_DEPLOYMENT_DIR="/var/www/rails"MOD_RAILS_VERSION="2.0.

初次使用Ubuntu,我想这个脚本会大大方便你配置Ubuntu,ruby on rails是本人的爱好,你也可以直接注释掉最后己行,只安装软件亦可

#!/bin/bash
RUBY_VERSION="1.8.6-p287"
RUBY_GEM_VERSION="1.3.1"
RAILS_APP_DEPLOYMENT_DIR="/var/www/rails"
MOD_RAILS_VERSION="2.0.3"
export LANG=C
#detect distro version
if [ -e /etc/RedHat-release ]; then
DISTRO="redhat"
elif [ -e /etc/debian_version ]; then
DISTRO="debian"
fi
#set apt-get modifier based on distro
if [ $DISTRO == "redhat" ]; then
APTMOD=" -y "
elif [ $DISTRO == "debian" ]; then
APTMOD="-y --force-yes"
fi
#misc settings based on distro
if [ $DISTRO == "redhat" ]; then
RAILS_APP_COnFIG="/etc/httpd/conf.d/railsapps.conf"
MOD_RAILS_COnFIG="/etc/httpd/conf.d/mod_rails.conf"
elif [ $DISTRO == "debian" ]; then
RAILS_APP_COnFIG="/etc/apache2/conf.d/railsapps.conf"
MOD_RAILS_COnFIG="/etc/apache2/conf.d/mod_rails.conf"
fi
####################
# HELPER FUNCTIONS #
####################
##
# view std out and append to log
function echolog() {
echo $* | tee -a /root/install.log
}
##
# download file and cd there
function download() {
local name=$1
local version=$2
local url=$3
mkdir -p /usr/local/src
cd /usr/local/src
if [ -d /usr/local/src/$name-$version ]; then
echolog "$name directory already exists, skipping the download"
cd /usr/local/src/$name-$version
return 0
fi
echolog "Grabbing $name from $url"
wget -qO - $url | tar xz
if [ $? -ne 0 ]; then
echolog "failed getting $url" >&2
return 1
fi
cd /usr/local/src/$name-$version
}
##
# apt-get update
function aptgetupdate() {
echolog Performing system update via package manager
apt-get update
apt-get $APTMOD upgrade
}
function aptgetmysf(){
#install the software what i want, it works in ubuntu
apt-get install $APTMOD  nautilus-open-terminal
apt-get install $APTMOD  compizconfig-settings-manager
apt-get install $APTMOD  libxine1-ffmpeg libxine1-plugins w32codecs libdvdcss2
apt-get install $APTMOD  gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mpegdemux gstreamer0.10-gnonlin
apt-get remove $APTMOD totem-gstreamer -y
apt-get install $APTMOD  totem totem-xine totem-mozilla -y
apt-get install $APTMOD  mplayer mplayer-fonts mozilla-mplayer smplayer
apt-get install $APTMOD  acroread
apt-get install $APTMOD  mozilla-acroread
apt-get install $APTMOD  acroread-plugins
#    apt-get install $APTMOD  gnochm
apt-get install $APTMOD  flashplugin-nonfree
apt-get install $APTMOD  rar unrar
apt-get install $APTMOD  sun-java6-jre
apt-get install $APTMOD  sun-java6-jdk
apt-get install $APTMOD  sun-java6-plugin
apt-get install $APTMOD  libgtk2.0-dev xorg-dev ncurses-dev build-essential # need by vim
apt-get install $APTMOD  build-essential gcc make autoconf automake libtool gdb g++
}
##
# install prerequisites
function installprereqpackages() {
echolog Installing prerequisite packages via package manager
if [ $DISTRO == "redhat" ] ; then
apt-get $APTMOD install zlib-devel
apt-get $APTMOD install readline-devel readline
apt-get $APTMOD install mysql-devel
apt-get $APTMOD install libmysqlclient15-dev
apt-get $APTMOD install pcre pcre-devel
apt-get $APTMOD install which
apt-get $APTMOD install httpd-devel
elif [ $DISTRO == "debian" ]; then
apt-get install $APTMOD zlib1g-dev
apt-get install $APTMOD 'g++-3.4'
apt-get install $APTMOD libmysqlclient14-dev
apt-get install $APTMOD libreadline5-dev
apt-get install $APTMOD libwmf-bin
apt-get install $APTMOD libmysqlclient15-dev
apt-get install $APTMOD libssl-dev
apt-get install $APTMOD apache2-prefork-dev
fi
}
##
# install ImageMagik
function installimagemagik() {
download ImageMagick 6.4.3 http://downloads.rimuhosting.com/ImageMagick-6.4.3.tar.gz
echolog Installing ImageMagick VERSION=6.4.3
if [ $? -ne 0 ]; then echolog "failed downloading imagemagick" >&2; return 1; fi
./configure && make && make install
if [ $? -ne 0 ]; then
echolog "ImageMagick make install failed">&2
return 1
fi
}
##
# install ruby & dev libraries
function installruby() {
download ruby $RUBY_VERSION http://downloads.rimuhosting.com/ruby-$RUBY_VERSION.tar.gz
echolog Installing Ruby VERSION=$RUBY_VERSION
if [ $? -ne 0 ]; then echolog "failed downloading ruby" >&2; return 1; fi
./configure && make && make test && make install
if [ $? -ne 0 ]; then
echolog "Ruby make install failed">&2
return 1
fi
# so there'll be a /usr/bin/ruby to use
if [ -e /usr/local/bin/ruby -a ! -e /usr/bin/ruby ]; then
ln -sf /usr/local/bin/ruby /usr/bin/ruby
fi
# doing this voodoo to prevent errors like:
# /usr/local/lib/ruby/1.8/irb/completion.rb:10:in `require’: no such file to load—readline (LoadError)
cd /usr/local/src/ruby-$RUBY_VERSION/ext/readline
if [ $? -ne 0 ]; then echolog "no /usr/local/src/ruby-$VERSION_ACTUAL/ext/readline dir">&2;return 1;fi
ruby extconf.rb
if [ $? -ne 0 ]; then echolog "readline extconf.rb failed">&2;return 1;fi
make clean && make install
if [ $? -ne 0 ]; then echolog "readline make failed">&2;return 1;fi
}
##
# install ruby gem
function installrubygems() {
download rubygems $RUBY_GEM_VERSION http://downloads.rimuhosting.com/rubygems-$RUBY_GEM_VERSION.tgz
echolog Installing Ruby Gems VERSION=$RUBY_GEM_VERSION
if [ $? -ne 0 ]; then echolog "failed downloading rubygems" >&2; return 1; fi
ruby setup.rb
if [ $? -ne 0 ]; then
echolog "Rubygems install failed">&2
return 1
fi
}
##
# install commonly used gems
function installcommongems() {
echolog Installing commonly used Ruby Gems
GEM_LIST="rails mongrel mongrel_cluster capistrano rmagick ruby-openid sqlite3-ruby mysql icalendar BlueCloth"
for gem in $GEM_LIST; do
gem install --include-dependencies $gem;
if [ $? -ne 0 ]; then
echolog "failed to install gem '$gem'"
fi
done
#install mysql gem is sometimes trouble (CentOS), installing it individually
if [ $DISTRO == "redhat" ]; then
gem install mysql -- --with-mysql-cOnfig=/usr/bin/mysql_config
elif [ $DISTRO == "debian" ]; then
gem install mysql
fi
#install mod_rails
gem install passenger --include-dependencies -v $MOD_RAILS_VERSION
#compile mod_rails apache module
#passenger-install-apache2-module
}
##
# create deployment environment
function createdeployenv() {
echolog Configuring mod_rails/Apache
#create app deployment directory w/correct permissions
mkdir $RAILS_APP_DEPLOYMENT_DIR
#remove apache default vhost / welcome screen
if [ $DISTRO == "redhat" ]; then
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
elif [ $DISTRO == "debian" ]; then
rm /etc/apache2/sites-enabled/000-default
fi
#add basic passenger config
echo "LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-$MOD_RAILS_VERSION/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-$MOD_RAILS_VERSION
PassengerRuby /usr/local/bin/ruby
RailsEnv production
#Tune these to suit your application
PassengerMaxPoolSize 2
PassengerMaxInstancesPerApp 2
PassengerPoolIdleTime 600" > $MOD_RAILS_CONFIG
#create test rails app
cd $RAILS_APP_DEPLOYMENT_DIR
rails testapp
#create virtual host for test rails app
echo "
DocumentRoot ${RAILS_APP_DEPLOYMENT_DIR}/testapp/public
" > $RAILS_APP_CONFIG
#restart apache
if [ $DISTRO == "redhat" ]; then
/etc/init.d/httpd restart
elif [ $DISTRO == "debian" ]; then
/etc/init.d/apache2 restart
fi
}
####################
#    EXECUTION     #
####################
aptgetupdate
aptgetmysf
installprereqpackages
installimagemagik
installruby
installrubygems
installcommongems
#createdeployenv
exit 0


推荐阅读
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文是关于C#类型系统、值类型和引用类型的概念性笔记。介绍了C#1系统类型的三个特性,静态类型的含义,显式类型和隐式类型的区别。还讨论了类、结构、数组类型、枚举、委托类型和接口类型属于哪一种类型。同时纠正了关于结构、引用类型和对象传递的错误表述。最后提到了C#4中使用动态类型的关键字。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
author-avatar
我所信仰的感觉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有