原来弄过一个Ubuntu系统,但长时间的开发后,弄得比较杂乱,就决定趁这段休息时间重新搞一个Ubuntu虚拟机,把环境重新搭建一下。安装过程中参考了很多其他的文章,但有些地方都没说太细,所以决定自己写一份,一来可以熟悉一下以前不懂的地方,二来做个笔记,记录一下自己的理解,下次再重装就不用到处Google了。
先说下准备搭建的开发环境:
VMware + Ubuntu 8.10 + Ruby 1.8.7 + Rails 2.2.2 + MySQL 5.0 + NetBeans 6.5
本来想用Ubuntu 9.10,但那玩意不支持共享文件夹,搞得没法和主机传文件,就还是选8.10了
1、安装Ubuntu 8.10
相信没人不会的,我只说一点,Ubuntu装好后要更新的,更新完之后再装vmware-tool,不然更新完后vmware-tool就失效了。共享文件夹的设置是需要装vmware-tool才有效果的。
2、安装Ruby 1.8.7
我是编译安装的,据说编译安装效率高一些……我承认我只是想熟悉下编译安装的过程,而且自己装也比较了解安装目录在什么地方(我是打算以后再装一份Ruby 1.9 + Rails 2.3的,用apt怕有什么冲突)。
先安装一些必要的软件
# 安装编译工具 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
下载ruby 1.8.7,解压后编译、安装
2010-6-6更新 :如果你从如下的fpt地址下载Ruby源码,可能make时会碰到math.o的错误,这是由于源码根目录下math.o文件第37行有语法错误。
解决方法:
- 修改math.o文件,把37行的 define 改成 defined,然后重新make。具体情况可见这里 。
- 自己去 ftp://ftp.ruby-lang.org/pub/ruby/ 下找一个比较新的Ruby版本,然后编译安装。安装过程没有区别。
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7.tar.gz tar -zxvf ruby-1.8.7.tar.gz cd ruby-1.8.7 ./configure --prefix=/opt/ruby187 # prefix是安装目录 make # 编译过程,比较长 sudo make install # 比较快,大概就是复制文件到/opt/ruby187
修改环境变量文件,将ruby的bin目录加入环境变量PATH中,我选择的/etc/profile文件,将以下两行加到文件最下面
# Ruby PATH="$PATH:/opt/ruby187/bin"
用source命令刷新一下,再测试
source /etc/profile # 使环境变量马上生效 ruby -v # ruby 1.8.7 ......
3、安装RubyGems
从rubyforge上下载rubygems,网上是下1.0.1版然后用"gem update --system"升级,我是直接在Windows中下的最新版的tgz文件然后传到Ubuntu中去的
这里有个小技巧,下载后可以看看下载链接,以后就可以直接在Ubuntu中用wget下了
# 用wget直接下载的方式 wget http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.3.5.tgz tar -zxvf rubygems-1.3.5.tgz cd rubygems-1.3.5 # 我用"sudo ruby setup.rb"总提示找不到ruby的命令,所以就用chmod把ruby安装目录改成最大权限了 chmod 777 -R /opt/ruby187 ruby setup.rb
测试一下
gem -v # 1.3.5
4、安装Rails 2.2.2
我采取的本地安装,把Rails 2.2.2和相关的gem都放在一个目录下,进入这个目录后输入下面的命令,Rails 2.2.2和相应的gem会自动装好(Rails的本地文件我放在附件中,不想去Rubyforge的可以下附件)
gem install mysql # 这是mysql的适配器 gem install rails-2.2.2.gem --local rails -v # Rails 2.2.2
5、安装MySQL
本来想学学下二进制包安装,结果看完教程准备下载时给我一个“Download Access Unavailable”,算了,还是apt吧。
使用apt的话,如果是Ubuntu 8.04,会安装MySQL 5.0版
# 这是mysql主程序 sudo apt-get install mysql-server # 这是图形化工具,装不装随便 sudo apt-get install mysql-gui-tools-common mysql-query-browser mysql-admin
6、安装JDK
下载linux版的JDK安装包,我下的是最新的JDK 6U17,文件名是jdk-6u17-linux-i586.bin
将文件复制到/usr/lib/jvm中,jvm文件夹没有,需要新建一个
sudo mkdir /usr/lib/jvm cp 你的JDK文件完整路径 /usr/lib/jvm
安装(其实就是解压),网上的教程一般都说要用chmod添加执行权限,但我查看权限时发现已经有执行权限了,就省了那一步
进入/usr/lib/jvm目录后,执行以下命令,注意一定要进入jvm目录,因为JDK的安装路径默认是当前命令行所在的目录,
上次我偷懒在其他地方执行sudo /usr/lib/jvm/jdk-6u17-linux-i586.bin,结果安装位置搞错了……
cd /usr/lib/jvm sudo ./jdk-6u17-linux-i586.bin
先跳出一排协议,按几下空格就跳过去了,然后让你输入yes或者no,输入yes回车就开始安装
安装后的JDK就在/usr/lib/jvm/jdk1.6.0_17目录下,到此JDK文件就都放好了。
下面设置环境变量,还是放在/etc/profile文件的最后
# Java export JAVA_HOME="/usr/lib/jvm/jdk1.6.0_17" export JRE_HOME="$JAVA_HOME/jre" export CLASSPATH=".:$JAVA_HOME/lib:$JRE_HOME/lib" PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"
设定完成后用source命令重新加载一遍,测试一下
source /etc/profile java -version # java version "1.6.0_17"
7、安装NetBeans 6.5
本来装的是6.8,结果用了两天发现在view中写代码奇慢,不知原因,换成6.5之后正常了。6.8有个方便的新功能,在Rails项目中列出了Ruby的gem,可以直接查看源代码。
安装
从网上下载linux版的NetBeans 6.5,我的NetBeans的文件名是netbeans-6.5-ml-ruby-linux.sh,下面的例子都是用这个文件名。
进入NetBeans文件所在的目录,执行以下命令:
# 同样的,网上教程有写需要增加执行权限,我发现已经有执行权限就没加,如果不放心可以先运行chmod添加权限 sudo chmod +x netbeans-6.5-ml-ruby-linux.sh sudo ./netbeans-6.5-ml-ruby-linux.sh
至此就很简单了,都是图形化界面。NetBeans默认会安装到/usr/local/netbeans-6.5中。
注意如果你看到的界面汉字都是方块,那是因为JDK的中文字体问题,不用管,装完了我们再来解决。
解决NetBeans的中文乱码问题
NetBeans的中文乱码主要是因为JRE没有中文字体
网上的解决办法一般都是把某字体复制到fallback目录,或者把fallback做成符号链接链到指定的字体文件夹,原理都差不多,然后就看选择的字体了,个人觉得这个字体很不错:
雅黑和Consolas混合字体,本身就混合好了中英文字体,不需要再去JDK中改fontconfig.properties了:
http://www.cnblogs.com/RobertLee/archive/2006/12/25/602646.html
在$JRE_HOME/lib/fonts下建立fallback文件夹,然后将YaHei.Consolas1.12.ttf文件复制进去,这是为了让NetBeans的界面和编辑器显示中文正确
# $JRE_HOME就是先设定的全局变量,如果记得完整路径的话,敲完整路径也可以 cd $JRE_HOME/lib/fonts sudo mkdir fallback sudo cp 字体所在路径 ./
这样可以解决中文乱码问题,但NetBeans在中文环境下,编辑器中的中文是没有反锯齿的,所以还要在NetBeans中开启反锯齿:
cd /usr/local/netbeans-6.5/etc sudo gedit netbeans.conf
在netbeans-default-options的参数里加上 -J-Dawt.useSystemAAFontSettings=on
下次进入NetBeans时文字就顺眼多了
将NetBeans界面语言改为英文的方法
修改上面提到的netbeans.conf文件,在netbeans-default-options的参数里加上 --locale en_US
附带说一句,如果设定为英文,编辑器部分的中文就自动是反锯齿的,不需要额外设置了。
总结
这次搭建开发环境还是碰到不少问题,先是装Ruby之前忘了装openssl,导致mysql适配器死活装不上去,最后到Ruby源文件的目录里找了一份openssl编译安装解决了,然后发愁环境变量PATH的配置放在哪儿比较好,再去查export有什么用……但收获也确实很大,原来懵懂的地方也搞清楚了,相信下次安装即使相关软件换了新版的也不是难事。
参考资料
JDK和NetBeans的安装与设置,字体那块用的符号链接的方法,也讲了一些原理:
http://www.blogjava.net/sodar-fish/articles/143180.html
解决NetBeans的乱码问题,字体好像是雅黑,但我的Windows 7下没同名的文件,就没照搬,思路可以参考
http://clchun.iteye.com/blog/393051
字体反锯齿
http://yangzhihuan.iteye.com/blog/258301
混合字体的下载,里面也讲了如何自己制作,有兴趣的可以看看:
http://www.cnblogs.com/RobertLee/archive/2006/12/25/602646.html