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可以远程访问。我们只需要进行以下两步的操作就可:

  1. 修改mysql数据库中的user中的host值为%,这样就表示在任何主机上都可以访问本地的数据库。
  2. 使用   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进行测试

  1. 由于rspec在默认情况下是在controller的测试中来测试Action,因此不会包含对于视图view及视图辅助工具helpers的测试,我们在测试Action时需要配置测试类,告诉当前测试的controller来渲染其视图。如下,我们需要在测试控制器类的首行加入    render_view 配置行信息。
  2. 测试路由有好多种方式,如使用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 来操作。

posted @ 2012-12-27 10:40  小狸的窝  阅读(344)  评论(0)    收藏  举报