Linux,Unix,BSD/redmine

[CentOS] bitnami Redmine stack 업그레이드 (1.2.x -> 2.0.x) 실패기

채윤아빠 2012. 7. 1. 13:28
728x90
반응형

관련글


본 글에서는 CentOS 상에서 bitnami redmine stack을 1.2.1에서 2.0.3으로 업그레이드 하는 과정에서 겪었던 문제 상황과, 그 상황을 어떻게 해결했는지에 대한 내용을 적어 둔다.


먼저 yum을 사용하여 rpm 패키지 업데이트를 수행하던 중에 다음과 같은 오류가 발생하였었다.

# yum groupinstall ruby
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

........................

Transaction Check Error:
  package ruby-1.8.6.111-1.i686 (which is newer than ruby-1.8.5-24.el5.x86_64) is already installed
  package ruby-rdoc-1.8.6.111-1.i686 (which is newer than ruby-rdoc-1.8.5-24.el5.x86_64) is already installed
  package ruby-irb-1.8.6.111-1.i686 (which is newer than ruby-irb-1.8.5-24.el5.x86_64) is already installed
  package ruby-libs-1.8.6.111-1.i686 (which is newer than ruby-libs-1.8.5-24.el5.x86_64) is already installed
  package ruby-devel-1.8.6.111-1.i686 (which is newer than ruby-devel-1.8.5-24.el5.i386) is already installed
  package ruby-devel-1.8.6.111-1.i686 (which is newer than ruby-devel-1.8.5-24.el5.x86_64) is already installed
  file /usr/lib/ruby/1.8/abbrev.rb from install of ruby-libs-1.8.5-24.el5.x86_64 conflicts with file from package ruby-libs-1.8.6.111-1.i686
  file /usr/lib/ruby/1.8/base64.rb from install of ruby-libs-1.8.5-24.el5.x86_64 conflicts with file from package ruby-libs-1.8.6.111-1.i686
…

Error Summary
-------------

구글링을 통하여 다음과 같이 RPM의 의존성을 무시하고, 충돌되는 패키지를 삭제하고 다시 yum update를 수행하여 모든 패키지를 업그레이드 하였다.

# yum clean all
# rpm -del --nodeps ruby-1.8.6.111-1.i686
# rpm -del --nodeps ruby-rdoc-1.8.6.111-1.i686
# rpm -del --nodeps ruby-irb-1.8.6.111-1.i686
# rpm -del --nodeps ruby-libs-1.8.6.111-1.i686
# rpm -del --nodeps ruby-devel-1.8.6.111-1.i686
이후 또다른 충돌이 또 발생하였으나, 위와 같이 충될도는 패키지를 제거하였더니, 업그레이드를 성공적으로 마칠 수 있었다.


다음 문제는 설치를 완료한 후에, 레드마인에 접속하면 500 Internal Error가 발생하고 정상적으로 동작하지 않는 문제가 있었다.

다음과 같이 redmine에서 발생한 오류를 확인해 보았다.

# vi /opt/redmine-2.0.3-1/apps/redmine/htdocs/log/production.log

*** Phusion Passenger: no passenger_native_support.so found for the current Ruby interpreter. Compiling one...
# mkdir -p /opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/ruby/ruby-1.8.7-x86_64-linux
# cd /opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/ruby/ruby-1.8.7-x86_64-linux
# /opt/redmine-2.0.3-1/ruby/bin/ruby '/opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/ruby/extconf.rb'
# make
/opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/ruby/ruby-1.8.7-x86_64-linux/passenger_native_support.so: /opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/ruby/ruby-1.8.7-x86_64-linux/passenger_native_support.so: wrong ELF class: ELFCLASS64 - /opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/ruby/ruby-1.8.7-x86_64-linux/passenger_native_support.so (LoadError)
        from /opt/redmine-2.0.3-1/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from /opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/native_support.rb:112:in `compile_and_load'
        from /opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/native_support.rb:36:in `start'
        from /opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/native_support.rb:166
        from /opt/redmine-2.0.3-1/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /opt/redmine-2.0.3-1/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from /opt/redmine-2.0.3-1/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.12/helper-scripts/passenger-spawn-server:79
[ pid=27870 thr=4156999360 file=ext/apache2/Hooks.cpp:862 time=2012-06-27 01:54:50.686 ]: Unexpected error in mod_passenger: Cannot spawn application '/opt/redmine-2.0.3-1/apache2/htdocs/../../apps/redmine/htdocs': Could not read from the spawn server: Connection reset by peer (104)
  Backtrace: 

위 오류는 제대로 OS 버전 및 redmine stack 종류를 확인하지 않고 무작정 다운로드하여 설치해서 발생한 어이 없는 실수였다. 위 오류 로그 중에서 "wrong ELF class: ELFCLASS64" 부분을 보면 이는 설치한 redmine stack 버전이 x64용이 아닌, x86(32bit) 버전이어서 위와 같이 정상적으로 동작을 하지 않고 오류가 발생된 것이었다.
wget으로 x64용 redmine stack를 다시 다운로드 받아 설치하였더니, 동일한 문제가 발생하지 않고 정상적으로 redmine을 1.2.1에서 2.0.3으로 업그레이드가 완료되었다.


참고자료