Ubuntu安装配置
Ubuntu开发入门
对于Ubuntu的安装十分简单,我使用VMWare安装了9.10 desktop版本。安装过程十分简单,全部Forward就可以了。
为了以后的使用方便,我们最重要的是得到root用户的登录权限。在第一次进入到系统中后,打开Terminal后,输入sudo root passwd,这样以后先会提示输入密码,之后会让用户输入root的新密码,这样以后就可以使用root来登录了。
1. 更新软件源
首先是更新我们的Linux软件源,在国内的大学的源不错,如上交等。我们在此使用上交的。如下操作:
进入Terminal后sudo gedit /etc/apt/sourcelist.list 后将当前的内容全选,删除,替换为以下内容:
deb http://ftp.sjtu.edu.cn/ubuntu/ karmic main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ karmic-backports main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ karmic-proposed main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ karmic-security main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ karmic-updates main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ karmic main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ karmic-backports main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ karmic-proposed main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ karmic-security main multiverse restricted universe
deb http://archive.ubuntu.com/ubuntu/ karmic multiverse universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ karmic-updates main multiverse restricted universe
完成之后在Terminal中运行 sudo apt-get update后就可以当系统的软件源更新。
2. 配置OpenSSH
对于Ubuntu来说,已经默认安装了OpenSSH-client,我需要在VM之外使用Putty来访问Ubuntu,那么就需要安装配置OpenSSH-server。我们只需要在Terminal中运行
sudo apt-get install openssh-server
即可完成openssh的配置。之后就可以使用远程的客户端开访问Ubuntu了。如果使用Putty的话,我们需要配置一下putty,以免我们在外面访问时出现中文乱码的情况。我们只需要在保存的session的配置中修改Window-translation这个选项,将其中的编码方式改为utf-8即可。
3. 安装中文语言包及输入法
很简单,我们只需要选中System->Administrations->Languages support后,会有一段时间的软件更新,更新完成后点击Install/Remove Languates后在其中选择汉语,之后再经过一段时间的软件自动更新安装就可以了支持中文界面了。
在当前的页面有一个Keyboard input method system,我们选择ibus即可。之后在System->preferences->ibus preferences中选择添加我们需要的输入法即可。
4. 安装配置VIM
在Ubuntu下安装VIM很容易,我们只需要在新立得软件管理器中检索vim关键词后,在结果中将vim 标记后系统会自动将关联包选中,之后Apply后等待下载安装就可以了。也可以使用apt-get install vim安装。
配置:
syntax enable
syntax on
set number
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
5. 安装配置vsftpd
我们只需要在Terminal中运行sudo apt-get install vsftpd即可自动安装配置好我们的FTP应用。
6. 安装配置Ruby on Rails
安装Ruby on Rails需要我们准备编译环境等。下面逐一来实现。注意在整个使用过程中需要root帐户的权限,所以运行sudo su后切换到root帐户执行以下操作。
6.1 安装编译环境
# 安装编译工具
sudo apt-get install build-essential
# 安装一些Ruby必须的库,这些东西也可以在Ruby装好之后再装,但那时就比较麻烦了,所以最好事先装好
sudo apt-get install zlib1g zlib1g-dev
sudo apt-get install libreadline5 libreadline5-dev
sudo apt-get install libncurses5 libncurses5-dev
sudo apt-get install libssl0.9.8 libssl-dev
sudo apt-get install libmysqlclient15-dev
6.2 安装ruby
先从ruby的网站上得到ruby的源代码,
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz
之后解压缩
tar -zxvf ruby-1.8.7-p249.tar.gz
cd ruby-1.8.7-p249
由于ruby-1.8.7在openssl上有一个bug,所以在源代码中将其注释
vim ext/openssl/ossl_digest.c
##########
Init_ossl_digest()
{
- rb_require("openssl"); #此行删除
rb_require("digest");
##########
最后我们配置下载后安装目录(如下安装到/usr/local/system/ruby-1.8.7-p249中)
./configure --prefix=/usr/local/system/ruby-1.8.7-p249
最后编译安装即完成ruby的安装。
make # 比较漫长的等待,
make install # 比较快
我们来测试
/usr/local/system/ruby-1.8.7-p249/bin/ruby –v即可得到安装好的ruby的版本号。
下面我们来进行ruby环境变量的配置: 修改环境变量文件,将ruby的bin目录加入环境变量PATH中,我选择的/etc/profile文件,
vim /etc/profile
将以下两行加到文件最下面
#ruby
PATH=/usr/local/system/ruby-1.8.7-p249/bin:$PATH
保存后我们刷新当前的环境变量
source /etc/profile # 使环境变量马上生效
ruby -v # ruby 1.8.7 ......
至此,ruby安装完成。
6.3 安装gems
我们首先下载gems的安装文件
wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz
之后解压缩
tar –zxvf rubygems-1.3.6.tgz
完成后进入gems目录
cd rubygems-1.3.6
执行下面的安装文件setup.rb即可完成gems的安装。
ruby setup.rb
对于gems的检测,我们使用gem -v命令即可查看其版本号。
6.4 安装Rails
安装rails非常容易,我们只需要先给gems升级
gem update - -system
gem update -y
之后运行
gem install rails --include-dependencies 等待安装即可。
在安装成功后我们输入gem list - - local就可以查看我们安装了哪些组件。
[备注]
在一个rails工程下,我们使用script/console的时候,有时候会报错:
Loading development environment.
/usr/local/ruby/1.8/irb/completion.rb:10:in `require': no such file to load -- readline (LoadError)
from /usr/local/ruby/1.8/irb/completion.rb:10
from /usr/local/ruby/1.8/irb/init.rb:252:in `require'
from /usr/local/ruby/1.8/irb/init.rb:252:in `load_modules'
from /usr/local/ruby/1.8/irb/init.rb:250:in `each'
from /usr/local/ruby/1.8/irb/init.rb:250:in `load_modules'
from /usr/local/ruby/1.8/irb/init.rb:21:in `setup'
from /usr/local/ruby/1.8/irb.rb:54:in `start'
from /usr/local/bin/irb:13
这个时候,我们就需要去安装readline这个工具,进入到ruby的源代码下面的ext/readline目录 ,执行ruby extconv.rb , 之后make && make install就可以修正这个bug.
6.5 安装MySQL
直接使用以下命令
sudo apt-get install mysql-server
在安装过程中需要设置用户名与密码,完成后我们可以安装这是图形化工具,来管理我们的mysql。如下命令:
sudo apt-get install mysql-gui-tools-common mysql-query-browser mysql-admin
在最后,我们要安装RoR的MySQL插件
wget wget http://rubyforge.org/frs/download.php/51087/mysql-ruby-2.8.1.tar.gz
tar zxvf mysql-ruby-2.8.1.tar.gz
cd mysql-ruby-2.8.1
ruby extconf.rb
make
make install
即可完成安装配置。
[注意]如果安装 rails3,那么还要安装mysql2的adapter, gem install mysql2
7. LAMP环境搭建
在Ubuntu下我们如果使用其提供的one-click来部署LAMP开发环境,相当简单。我们来看如何操作。
Ubuntu的开发人员提供了一种很方便的方法来帮助我们安装LAMP,只需要在Terminal下输入一条命令就可以实现:
sudo apt-get install lamp-server^
在之后,等待一段时间后输入MySQL的密码即可。Apache的默认工作目录是/var/www,我们在其下只需要生成一个phpinfo.php的文件就可以来检测。之后重新启动Apache即可
sudo /etc/init.d/apache2 restart
在LAMP下我们通常是使用phpMyAdmin来进行数据库的管理,使用如下命令来安装:
sudo apt-get install libapache2-mod-auth-mysql phpmyadmin
【注】通常我是在VM上进行相应的操作,那么可能会想让我的MySQL可以远程访问。我们只需要进行以下两步的操作就可:
- 修改mysql数据库中的user中的host值为%,这样就表示在任何主机上都可以访问本地的数据库。
- 使用 netstat –an | grep 3306来查看3306端口是否对外开发。如果得到 tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
那我们就得知mysql的3306端口只是监听本地的连接,这样就阻碍了外部IP对该数据库的访问,修改的办法其实很简单,进入到mysql的 配置文件所在目录(/etc/mysql/my.cnf)下,找到文件中的如下内容:
bind-address = 127.0.0.1
将bind-address注释掉,或者改成你想要使用的客户端主机IP。
8. 安装JDK文件
从SUN的官方网站上下载得到jdk安装的bin文件,之后我们装其放到一个目录下:
/usr/develop。在完成后,打开控制台,
cd /usr/develop
./jdk.bin
之后选yes即可完成安装。
在安装完成之后,我们就需要配置环境变量,如下所示:
#set java environment
JAVA_HOME=/usr/develop/jdk1.6.0_19
export JRE_HOME=/usr/develop/jdk1.6.0_19/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
完成后重新启动系统即可。
9. 在Linux下使用ssh方式来FQ
我们在安装好openssh之后,就可以通过openssh来实现FQ。在这里只需要在terminal中输入以下命令:
ssh –CND 7070 blessdyb@vps.mobroad.com
之后我们使用Firefox,下载其插件autoproxy之后,修改proxy server->choose Proxy Server->Default改为ssh-D. 这样我们就可以实现FQ了。当然,你需要在第一次使用autoproxy时,添加一下订阅规则,将gfwlist给放进去,这样就很爽地能使用了。
当然,在windows下就需要使用一个叫myentunnel的软件来帮助我们完成这项配置。下面是其设置。
10. 在Linux下使用iptux,FileZilla, pidgin
我们只需要在Applications中的Ubuntu Software Center中搜索iptux之后,就可以使用其来帮助我们安装这个软件,从而实现与其它终端的飞鸽传书通信。同时,我们也可以搜索FileZilla,pidgin来分别实现FTP服务器客户端及IM的功能。
11. 安装Nginx+Passenger
首先来在系统中查看相应的编译器安装,使用
gem install passenger
之后,我们安装
passenger-install-nginx-module
选择方式一,让passenger自动安装nginx, 指定一下安装目录 /usr/local/nginx就可以使用了。在整个安装好Nginx+Passenger之后,我们需要来配置一下nginx的配置文件/usr/local/nginx/conf/nginx.conf, 如一个虚拟主机
server {
listen 3000;
root /var/www/rails_project/pub;
server_name localhost;
passenger_enabled on;
rails_evn development;
rails_spawn_method smart;
}
12. 安装配置Git, 在github上提交应用
在rails3中,有一个bundle组件 ,我们可以使用这个组件来绑定我们的应用开发环境。使用bundle需要安装以下的组件:
apt-get install libxslt-dev libxml2-dev
安装成功之后,我们进入rails应用,就可以使用
bundle install
命令来配置我们的开发环境了。
安装Git, 使用
apt-get install git-core
即可安装成功。
【注】http://code.google.com/p/nbgit/downloads/list 可下载到netbeans的插件。之后我们在Tools->plugins->Downloaded中可以选择下载安装 .nbm的最近Git插件.
配置Git
git config - -global user.name “blessdyb”
git config - -global user.email blessdyb@gmail.com
之后我们建立一个测试的工程,如myproject, 进入myproject目录,
git init # 初始化当前的Git资料库
之后在下面就生成了一系列Git资料库,如.gitignore文件中就指定了哪些目录可以不被git 做版本管理。
接下来执行
git add . # 将当前目录及其子目录加入版本管理档案中
我们通过 git status 可以随时查看当前的版本管理库的状态
我们通过命令
git commit –m “Initial commit” 就可以完成当前版本库的提交。
在Github上提交应用
我们可以先在github上注册一个帐户,如http://github.com/blessdyb, 之后我们来新建一个repository.
之后,我们需要生成一个SSH key来与github完成验证。
生成SSH Key
首先,我们来看是否已经有ssh key的存储目录,
cd ~/.ssh
如果不存在,我们就手动生成一个,如果存在,我们将其下的key文件备份。之后我们生成一对新的ssh key.
ssh-keygen –t rsa –C “blessdyb@gmail.com”
这样就在相应的目录下生成了我们的rsa的密钥。之后我们在github帐户中的主页-> SSH 公钥中将rsa_pub中的信息添加进去,生成一个新的SSH公钥,之后我们将当前的工程加入到github中去。
git remote add origin git@github.com:blessdyb/myproject.git
git push origin master
这样,我们就将当前的工程提交到github上去了。
通常使用git push将当前我们更改过的工程更新到git库中。
在heroku上部署应用
heroku是一个rails应用部署的免费空间(支持100Mb的slug size).首先在上面注册一个帐户(提供email)。之后我们来将之前的应用部署到heroku上去。
进入刚才的工程目录,
gem install heroku
hero create projectname # heroku会为你生成一个projectname.heroku.com的网址
git push heroku master
heroku rake db:migrate
之后,我们就可以通过访问http://projectname.heroku.com来查看我们的应用了.
注:如果在push到heroku的时候发现有下面的错误
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
这是因为本地的publickey和heroku上的不同,执行
heroku keys:add ~/.ssh/id_rsa.pub 后再push即可
13. 配置Rails 测试环境
在Agile风行的时代,我们做RoR开发时,TDD的思想贯穿其中。Rails提供了丰富的框架来让我们进行自动化测试。
首先安装Rspec框架,
gem install rspec
gem install rspec-rails
接下来安装Webrat
apt-get install libxslt1-dev libxml2-dev #安装Nokogiri gem的依赖包
gem install webrat #安装nokogiri与webrat
这样,我们在我们的Rails应用中就可以使用测试框架了,由于我们不采用Rails自带的测试框架,所以在创建工程时,请加上-T选项。
rails new project_name –d mysql –T
cd project_name
此时,修改Gemfile中的配置,添加
group :development do
gem 'rspec-rails','2.0.0'
end
group :test do
gem 'rspec','2.0.0'
gem 'webrat','0.7.1'
end
执行bundle install. 在我们的Rails应用中安装Rspc测试框架
rails generate respec:install
之后在我们使用rails generate时就可以得到自动化生成测试代码了。通常,由于我们对呈现的测试都是在对controller的测试中进行的,所以可以将spec/views spec/helpers下的这两个目录删除。如果是利用git做版本控制,
git rm –r spec/views
或者直接删除 rm –rf spec/views即可。
如果需要执行rspec自动化测试,我们在应用目录下执行
rspec spec/
即可,如果想只对所有的controller进行自动化测试,执行
rspec spec/controllers/
即可,如果只是想对某一个controller进行自动化测试,我们只需要指定相应的controller即可。
使用autotest可以更加快捷地帮助我们进行一系列的自动化测试,而不需要测试人员输入更多的命令(http://github.com/svoop/autotest-growl)。
gem install autotest
gem install autotest-rails-pure
gem install autotest-growl
全部安装成功后,我们进入当前用户目录下的.autotest文件,
vim ~/.autotest
写入配置
require ‘autotest/growl’
配置完成之后,我们执行autotest就可以自动执行所有测试了。
在每次测试的时候,Rspce会重新加载测试环境,而spork则可以解决这个问题,
gem install spork
安装完成之后,我们可以在Gemfile中指定一下我们的环境配置,重新bundle install一下就可。如:
group :test do
gem ‘spork’, ‘0.8.4’
end
完成安装后,我们进入应用目录,执行
sport - -bootstrap
即可完成spork与rspec的配置。
最后,我们需要在我们的项目中来设置一下spork对rspec的支持。
将原来spec/spec-helper.rb中的通过rails g respect:init 生成的代码块(Rspec.configure)全部放到Spork.prefork代码块中,同时,在此代码块(Rspec.configure)最后一行加入ActiveSupport::Dependencies.clear。
在config/application.rb代码中的Application类中加入一类Spork的支持
if Rails.env.test?
initializer :after => :initialize_dependency_mechanism do
ActiveSupport::Dependencies.mechanism= :load
end
end
到此,我们的配置结束。接下来就来对比使用spork前后的效率:
先来测试不使用spork,进入应用工程根目录,执行
time rspec spec/
就可以得到一个测试时间片信息。
之后我们来看使用spork之后的效果,执行
spork后,就可以看到其已经处于运行状态了,之后我们再打开另外一个控制台,切换到当前应用根目录下,执行
time rspec --drb spec/
我们可以在.rspec文件中加入以下配置
--color
--drb
--autotest
这样,我们之后使用rspec或者autotest命令时就不需要- -drb参数了。
使用Rspec进行测试
- 由于rspec在默认情况下是在controller的测试中来测试Action,因此不会包含对于视图view及视图辅助工具helpers的测试,我们在测试Action时需要配置测试类,告诉当前测试的controller来渲染其视图。如下,我们需要在测试控制器类的首行加入 render_view 配置行信息。
- 测试路由有好多种方式,如使用integration tests 来模拟浏览器进行路由跟踪及视图渲染,在当前应用根目录下,使用
rails generate integration layout_links_test_suite_name (如layout_links),就会在spec目录下生成一个requests目录,在其下生成LayoutLinksTestSuitName测试类。
安装annotate-models
在开发时,我们可以使用annotate来辅助model开发,它会帮我们自动在model中的所有模型类加上数据库的注释。我们只需要使用
gem install annotate-models
之后我们在Gemfile中的group :development块中加入 gem ‘annotate-models’,’1.0.4’,使用bundle install即可完成配置。
在使用的时候,每次创建新的ActiveRecord子类后,就直接在应用根目录下使用annotate命令就可以生成Model注释在相应的表中。
我们在测试model时,可以在rails console下面进行测试,这个时候,为了避免安全问题,我们可以考虑使用rails c - - sandbox 来操作。

浙公网安备 33010602011771号