跳到正文
gloomcheng/

ARCHIVE / 

[Debian] Ruby upgrade 1.9.1 from 1.8.7

本文為工作日誌,應只適用於特殊情境,未必能符合一般情況,請理解。

緣由:日前將 Redmine 從 1.x 升級到 2.x,同時將 ruby 從 1.8.7 升級到 1.9.1
注意:Debian Wheezy 的 ruby 套件依然是 1.8.7,必須安裝 ruby1.9 才會成功安裝 ruby 1.9.1
問題:更新到 ruby1.9 後,原使用 passenger 來達成多 RoR 應用程式實體的功能失效,無法啟動 Redmine,看來是需要重新安裝

過程:

[完全移除 Ruby 1.8]
透過下列指令找出所有 ruby 相關的套件

dpkg --get-selections | grep ruby

接著透過下列指令移除 ruby 1.8 相關的套件
apt-get remove libruby1.8 libxapian-ruby1.8 ruby1.8 ruby1.8-dev rubygems1.8

[安裝 ruby 1.9.1 所需的套件]

apt-get install ruby1.9.1 ruby1.9.1-dev libruby1.9.1

[重新安裝 passenger]

gem install passenger passenger-install-apache2-module
然後根據安裝過程的指示,安裝必須的套件或調整 swap 空間,安裝後會指示要更改 passenger.load 與 passenger.conf 檔案內容,接著就可以啟用 passenger 模組並重啟 apache2
a2enmod passenger service apache2 restart

[重新設定 Redmine]
因為使用的 bundler 版本不同,基本上原安裝過程所使用的套件都不存在(原安裝的相關套件都是在 ruby 1.8 版本下,這次是重新安裝到 ruby 1.9.1),參考 Redmine Install 文件來處理即可