Displaying articles with tag installing

Merb on Dreamhost

Posted by PunNeng, Sat Aug 02 20:18:00 UTC 2008

Get started

Make sure that Ruby on Rails Passenger (mod_rails) is enabled on your domain.
To do that, go to the Domains > Manage Domains section of your panel and then click the "Edit" link next to your domain. On the next page make sure "Ruby on Rails Passenger (mod_rails)?" is enabled. Also, specify your web directory and then click the "Save Changes" button.

Create a directory for compiled packages and Gems

I recommend Ruby 1.8.6 at for running Merb and it is Ruby 1.8.5 on Dreamhost currently. Fortunately, Dreamhost allows installing the own gems and pacakges and nateclark has already blogged which is really good way to follow.

Actually, I needed Readline also but I couldn't get it work. Can anyone get it work?

Install Merb

4 ninjas has already written how to. Install Merb locally and there will be a few problems when you install domysql(dopostgres and do_sqlite3) if you prefer DataMapper. On Ubuntu, it can't find lmysqlclient or can't find mysql.h
To fix that problems,

$ sudo apt-get install mysql
$ sudo apt-get install libmysqlclient15-dev

On OSX, there will be a problem also. The problem is it can't find mysql home. To fix that, open Rakefile in do/do_mysql/ and change these codes below

  1
  2
  3
task :install => [ :package ] do
  sh %{#{SUDO} gem install --local pkg/#{spec.name}-#{spec.version} --no-update-sources}, :verbose => false
end

to

  1
  2
  3
task :install => [ :package ] do
  sh %{#{SUDO} gem install --local pkg/#{spec.name}-#{spec.version} --no-update-sources -- --with-mysql-dir=/usr/local/mysql}, :verbose => false
end

add

-- --with-mysql-dir=/usr/local/mysql

After you install all gems on your machine, you will have a lot of gems. Just upload all gems to your home on DH and install them.

I have had problems with Dreamhost's shared gems conflicting with gems that you install locally. To fix that, open ~/.bashrc and change $GEM_PATH to

export GEM_PATH="$GEM_HOME"

Merb app configuration

create config.ru to your home app

  • app
    • ...
    • public
    • config.ru << add it

and put these codes below to config.ru

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
# config.ru

ENV['GEM_PATH'] = '/home/your_home/.gems/' # your local gem home

require 'rubygems'
# There were a few problems on loading merb-core at the firt time after Passenger pid has been killed. These codes below were added to fix.
["/home/your_name/.gems/gems/abstract-1.0.0/bin", 
"/home/your_name/.gems/gems/abstract-1.0.0/lib", 
"/home/your_name/.gems/gems/erubis-2.6.2/bin", 
"/home/your_name/.gems/gems/erubis-2.6.2/lib", 
"/home/your_name/.gems/gems/json_pure-1.1.3/bin", 
"/home/your_name/.gems/gems/json_pure-1.1.3/lib", 
"/home/your_name/.gems/gems/rspec-1.1.4/bin", 
"/home/your_name/.gems/gems/rspec-1.1.4/lib", 
"/home/your_name/.gems/gems/mime-types-1.15/bin", 
"/home/your_name/.gems/gems/mime-types-1.15/lib", 
"/home/your_name/.gems/gems/merb-core-0.9.4/bin", 
"/home/your_name/.gems/gems/merb-core-0.9.4/lib"].each do |path|
  $LOAD_PATH << path
end
require 'merb-core'

Merb::Config.setup(:merb_root   => ".",
                   :environment => ENV['RACK_ENV'])
Merb.environment = Merb::Config[:environment]
Merb.root = Merb::Config[:merb_root]
Merb::BootLoader.run

run Merb::Rack::Application.new

and

$ touch tmp/restart.txt

for restarting

Example

Thanks again:
nateclark
4 ninjas
Merb's wiki

5 comments | Filed Under: Merb | Tags: installing

Installing Merb

Posted by PunNeng, Sun Jul 13 15:50:00 UTC 2008

เกริ่นก่อนนิดนึง อะไรคือ Merb??

Merb ก็เป็น MVC Framework เช่นเดียวกับ Ruby on Rails เพียงแต่มันสามารถกำหนดฝั่ง View และ Model เองได้ แต่เห็นจะเน้นไปที่ฝั่ง Model มากกว่า สามสิ่งที่นิยมใช้กับฝั่ง Model ก็คือ ActiveRecore, DataMapper และ Sequel

นั่นหมายความว่า เราสามารถจะเอาไอ้นั่น ไอ้นี่ มาปะติดปะต่อเองได้ เรื่องของเรื่องคือ Ruby on Rails มันช้า magic มันเยอะ บางคนไม่ชอบ magic เพราะมันเกินความจำเป็น(แต่ผมชอบ) ถ้าตัดออกได้ หรือเปลี่ยนได้ ก็น่าจะดีกว่า กอปรกับความเทอะทะของ Rails เอง ทีมที่พัฒนา Merb ก็เลยจัดการเขียนใหม่ซะ

จุดเด่นโดยรวมของ Merb ก็คือ เรื่องความเร็ว(ที่ดีกว่า Rails) และการเลือกใช้ฝั่ง View และ Model เองได้(ผมเลือก DataMapper)

มาเริ่มติดตั้งกัน
ผมจะติ๊งต่างว่าทุกท่านที่เข้ามาอ่านใน blog ผม คงจะเคยติดตั้ง Rails กันมาบ้างแล้ว และสิ่งหนึ่งที่จำเป็นต้องมีคือ RubyGems ดังนั้น ผมจึงข้ามเรื่องการติดตั้ง RubyGems ไป

ก่อนที่จะติดตั้งได้สมบูรณ์ ก็ลองผิดลองถูกมานาน จนได้สูตรสำเร็จว่า update มันใหม่ให้หมด ก็ติดตั้งได้เอง ก็เริ่มด้วยการ upgrade RubyGems ละกัน

$ sudo gem update --system

และ Ruby(1.8.6 เป็นอย่างต่ำ)
วิธีการ upgrate ขึ้นอยู่กับแต่ละท่านครับ บางคน apt-get บางคน MacPorts หรือบางคนก็ compile เองแม่งเลย

สิ่งต่อไปที่ต้องมีคือ Git
บน Ubuntu

$ sudo apt-get install git

บน OSX Leopard

บน OSX Tiger

ก่อนจัดการกับ Merb ก็ติดตั้งพวก gem dependency ก่อน

$ sudo gem install rack mongrel json erubis mime-types rspec hpricot mocha rubigen haml markaby mailfactory ruby2ruby

จากนั้น clone Merb มาด้วย

$ git clone git://github.com/wycats/merb-core.git
$ git clone git://github.com/wycats/merb-plugins.git
$ git clone git://github.com/wycats/merb-more.git

แล้วก็ติดตั้ง

$ cd merb-core ; rake install ; cd ..    
$ cd merb-more ; rake install ; cd ..
$ cd merb-plugins; rake install ; cd ..

ฝั่ง Model ผมเลือก DataMapper เพราะหน้าตาคล้ายกับ ActiveRecord แต่เบากว่า

clone driver ก่อน

$ git clone git://github.com/sam/extlib.git  
$ git clone git://github.com/sam/do.git

แล้วก็ติดตั้ง

$ cd extlib ; rake install ; cd ..
$ cd do 
$ cd data_objects ; rake install ; cd ..
$ cd do_mysql  # || do_postgres || do_sqlite3
$ rake install

ผมเลือก mysql

ขั้นตอนนี้จะมีปัญหานิดหน่อย ขณะที่ติดตั้ง do_mysql
บน Ubuntu ถ้าหากใช้ mysql ที่ติดตั้งเอง แล้ว home directory มันไม่อยู่ที่ default path มันจะมองหา mysql home ไม่เจอ และอีกปัญหานึงคือ มันจะหา mysql.h ไม่เจอ วิธีซ่อมคือ

$ sudo apt-get install mysql

และ libmysqlclient15 สำหรับ myslq.h มันจะไปอยู่ใน /usr/include/mysql

$ sudo apt-get install libmysqlclient15-dev

สำหรับ OSX ก็เหมือนกัน มันจะหา home directory ไม่เจอ ผมแนะนำให้โหลดจากเว็บมันเลย ที่หน้า download อันนี้มี mysql.h มาให้ด้วย
มันยังไม่ใช่แค่นี้ ต้องไปใช้กำลังกันหน่อย
ตอนติดตั้ง mysql ไอ้ home directory มันจะไปอยู่ที่ /usr/local/mysql
ก็ต้องไประบุเพิ่มนิดนึงใน Rakefile ของ do_mysql จะมี

  1
  2
  3
task :install => [ :package ] do
  sh %{#{SUDO} gem install --local pkg/#{spec.name}-#{spec.version} --no-update-sources}, :verbose => false
end

ให้เพิ่ม -- --with-mysql-dir=/usr/local/mysql ไปด้วย เป็น

  1
  2
  3
task :install => [ :package ] do
  sh %{#{SUDO} gem install --local pkg/#{spec.name}-#{spec.version} --no-update-sources -- --with-mysql-dir=/usr/local/mysql}, :verbose => false
end

ยังไม่จบครับ clone ตัว DataMapper กันต่อ

git clone git://github.com/sam/dm-core.git
git clone git://github.com/sam/dm-more.git

แล้วก็ติดตั้ง

$ cd dm-core ; rake install ; cd ..
$ cd dm-more ; rake install

เท่านี้น่าจะเสร็จสิ้น ลองแบบง่ายๆ

$ merb-gen app your_project_name
$ cd your_project_name
$ merb

ก็น่าจะทำงานได้ปกติ ถ้าไม่ปกติ ก็ลง comment หรือ error ไว้ได้ครับ จะช่วย debug

ปล. ยังมีตอนต่อไปอีกหลายตอนครับ
ปอ. สำหรับบน Windows ไปเอาตัวรอดกันเองนะครับ =='

ข้อมูลจาก merb.4ninjas

2 comments | Filed Under: Merb | Tags: installing

Make Acer Laptop better

Posted by PunNeng, Sat Mar 24 03:16:00 UTC 2007

I've been using Acer Laptop. I think the big problem on Ubuntu on Acer labtop is it gets stuck on ACPI, it can't work appropriately or doesn't work as my laptop. If ACPI doesn't work, you won't see the battery status. It's annoying problem.

So I'll fix it, get it work but not 100%. It depends on each machine. ACPIBattery on Ubuntu site show you what you have to do for your laptop. I will make it shorter(for Acer TravelMate WLMi 8104 only haha).

  • Install all stuff it need
    sudo apt-get install build-essential bison flex-old
  • Get your laptop DSDT then go to /home/you
    mkdir acpi
    cd acpi
    wget http://acpi.sourceforge.net/dsdt/tables/Manufacturer/Model/DSDT.asl.gz
    gzip -d DSDT.asl.gz
    DSDT for Acer TravelMate 8104WLMi, It's ok on my machine after compile it.
  • Get Intel's iasl compiler then
    wget http://www.intel.com/technology/iapc/acpi/downloads/acpica-unix-20050624.tar.gz
    tar zxf acpica-unix-20050624.tar.gz
    cd acpica-unix-20050624/compiler
    make
    cp iasl ../..
    cd ../..
  • Compile
    cp yourdsdtfile.asl dsdt.asl # backup
    ./iasl -tc dsdt.asl          # compiling
    If you get some errors, go to ACPIBattery page. It show you how to fix.
  • I'm going to assume it's Ubuntu Edgy. Put DSDT.aml you've got after compile to
    /etc/initramfs-tools/DSDT.aml
    and reconfigure the kernel package
    sudo dpkg-reconfigure linux-image-$(uname -r)
  • then reboot

That's all to make ACPI on. After that the battery status will appear and wireless lan will be enabled. I also found a little problem on wireless led, it isn't on when wireless's on. I'll fix it as well. It's easy:

sudo vi /etc/modprob.d/ipw2200

and put

options ipw2200 led=1

in that file

Not finish yet!! I also found out the touchpad annoying problem. The button for scrolling didn't work, it's not serious problem but it'll be better if I can make it ok. Just put

Section "InputDevice"
   Identifier   "Synaptics Touchpad"
   Driver      "synaptics"
   Option      "SendCoreEvents"   "true"
   Option      "Device"      "/dev/psaux"
   Option      "Protocol"      "auto-dev"
   Option      "HorizScrollDelta"   "0"
EndSection

and add

Section "ServerLayout"
    ...
    InputDevice   "Synaptics Touchpad"
EndSection

in /etc/X11/xorg.conf

phewwww, your Acer laptop should be better now.

0 comments | Filed Under: | Tags: installing

Get Ubuntu 6.10 installer work out on ACER TravelMate 8104

Posted by PunNeng, Wed Mar 21 02:17:00 UTC 2007

I've written how to get Ubuntu work on Ubuntu 6.06 but now, I want to install Ubuntu 6.10 on my laptop instead. I got the same problem, the monitor was turned off. So I did the same way to fix it but it didn't work !!!!

I fixed by adding

vga=771

at the end of params line before the installer run(press f3 and put it on the install page) then do the same way

thanks, my helper :)

0 comments | Filed Under: General | Tags: installing

SQLite3 on Rails

Posted by PunNeng, Sun Feb 18 23:08:00 UTC 2007

ทุกวันนี้ผมทำงานกับ Rails โดยใช้ SQLite3 เป็น database แทน MySQL ในขณะที่กำลังพัฒนา และ test ก่อนที่จะเอาไป deploy ใช้กับ MySQL อีกทีตอนที่ใช้งานจริงๆ
เนื่องจากมันเบา จึงเร็ว ติดตั้งง่าย ไม่มี config เยอะมากมาย ผมว่ามันสะดวกดี ตอนที่เรากำลังกำลังพัฒนางานๆ นึงอยู่

วิธีติดตั้งก็ไม่ยากเย็นเลย มาดูฝั่ง Mac กันก่อน ให้ติดตั้งผ่าน darwinport นะครับ จะสะดวกมาก โดยไปที่ terminal แล้วพิมพ์ว่า

$ sudo port install rb-sqlite3

แล้วก็รอมันทำจนเสร็จ สำหรับฝั่ง linux ผมใช้ Ubuntu ครับ มี apt-get อยู่แล้ว สบายหายห่วง แค่พิมพ์ใน terminal ว่า

$ apt-get install sqlite3 swig libsqlite3-ruby libsqlite3-dev
gem install sqlite3-ruby

สำหรับฝั่ง Windows ก็ไม่ยาก เพียง download สองตัวนี้ http://www.sqlite.org/sqlite-327.zip http://www.sqlite.org/sqlitedll-327.zip extract แล้วเอาไปไว้ใน /WINDOWS/system32 จากนั้นพิมพ์ใน cmd ว่า

gem install sqlite3-ruby

แล้วเลือก driver ที่เป็น win32 ตัวล่าสุด

จากน้ันไปแก้ใน config/database.yml ในชุดของ development และ test เป็น

development: # ใน test ด้วยครับ
adapter: sqlite3
dbfile: db/development.db

แล้วก็ทำการสร้าง table มาใช้งาน เราเข้าไปใน db/ แล้วพิมพ์ใน terminal ว่า

project_name/db$ sqlite3 development.db

แล้วก็ร่ำกันเลยด้วย sql command

แต่เดี๋ยวก่อนนนน เราทำ migration ได้แล้วนี่ ผมแนะนำให้ใช้ migration ครับ มาถึงก็สร้าง migration file ก่อนเลย แล้วก็ rake db:migrate ตามเรื่องครับ ดูตัวอย่างได้จากอันนี้ ไม่ต้องไปสร้าง db สร้าง table ให้วุ่นวาย

ปล. SQLite3 มี bug บน Windows นิดนึง คือถ้าตอนที่เรา load fixtures(เดี๋ยวจะมาเล่าให้ฟังอีกที) แล้วใน fixture file ของเราไม่ได้ระบุค่าอะไรให้มัน แทนที่มันจะเก็บค่าว่างๆ เอาไว้ มันจะเก็บเป็น NULL ซึ่งเป็น text แทน ส่วนวิธีซ่อม ให้ใช้เวอร์ชันที่ต่ำกว่า 3.3.7 (บน mac ไม่เห็นจะเป็นอะไร)

0 comments | Filed Under: Ruby on Rails | Tags: installing

codegent: we're hiring