<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大鳥的學(xué)習(xí)樂園
    路漫漫其修遠(yuǎn)兮,吾將上下而求索
    posts - 26,comments - 27,trackbacks - 0

    CentOS下安裝Redmine的過(guò)程是一個(gè)痛苦的過(guò)程,其間遇到了很多問題,借助強(qiáng)大的網(wǎng)絡(luò)才順利完成了安裝工作,在此記錄一下安裝的細(xì)節(jié)以備查閱。

    環(huán)境信息:

    1. CentOS 5
    2. Ruby 1.8.7
    3. RubyGems 1.3.6
    4. Ruby on Rails 2.3.5
    5. Redmine 0.9.3
    6. Postgresql 8.4.2

     

    一,安裝Ruby1.8.7和Ruby on Rails2.3.5

    1,使用CentOS的安裝工具安裝ruby:

    yum install -y ruby
    yum install -y ruby-devel ruby-docs ruby-ri ruby-irb ruby-rdoc

    完成后檢查Ruby版本:

    ruby -v

    發(fā)現(xiàn)版本是1.8.5,而不是所需要的1.8.7。只好下載源代碼編譯安裝,下載解壓

    運(yùn)行 [root@collaborative ruby-1.8.7-p248]# ./configure

    報(bào)如下的錯(cuò)誤:
    checking build system type… i686-pc-linux-gnu
    checking host system type… i686-pc-linux-gnu
    checking target system type… i686-pc-linux-gnu
    checking for gcc… no
    checking for cc… no
    checking for cl.exe… no
    configure: error: no acceptable C compiler found in $PATH
    See `config.log’ for more details.

    這個(gè)錯(cuò)誤是由于系統(tǒng)沒有安裝 gcc 的原因,運(yùn)行如下命令安裝gcc編譯器:

    yum install -y gcc

    gcc編譯器安裝完成后再次運(yùn)行配置,編譯安裝

    [root@collaborative ruby-1.8.7-p248]# ./configure
    [root@collaborative ruby-1.8.7-p248]# make&make install

    ruby -v 再次檢查ruby的版本

    2,安裝RubyGems1.3.6

    下載RubyGems安裝程序,并解壓

    運(yùn)行 [root@collaborative rubygems-1.3.6]# ./setup.rb 安裝

    3,安裝Ruby on Rails 2.3.5

    通過(guò)RubyGems來(lái)安裝Rails,運(yùn)行命令:

    gem install rails

     

    二,安裝數(shù)據(jù)庫(kù)Postgresql 8.4.2

    1,安裝數(shù)據(jù)庫(kù)系統(tǒng)

    從官方網(wǎng)下載安裝文件postgresql-8.4.2-1-linux.bin

    修改文件為可執(zhí)行:chmod +x postgresql-8.4.2-1-linux.bin

    [root@collaborative u01]# ./postgresql-8.4.2-1-linux.bin 啟動(dòng)安裝界面,提供安裝目錄和管理員密碼,根據(jù)安裝界面完成安裝。

    Postgresql數(shù)據(jù)庫(kù)安裝完成后, 安裝Postgresql的Ruby插件:gem install postgres-pr

    2,創(chuàng)建Redmine數(shù)據(jù)庫(kù)和用戶

    psql -U postgres postgres
    CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD ‘aronezhang’ NOINHERIT VALID UNTIL ‘infinity’;
    CREATE DATABASE redmine WITH ENCODING=’UTF8′ OWNER=redmine;

    3,配置Redmine使用Postgresql數(shù)據(jù)庫(kù)

    下載Redmine0.9.3安裝程序,解壓到redmine-0.9.3目錄,cd到此目錄

    拷貝config/database.yml.example 文件為 config/database.yml,配置production段的內(nèi)容為:
    production:
    adapter: postgresql
    database: redmine
    host: localhost
    username: postgres
    password: “postgres”
    encoding: utf8

    4,運(yùn)行redmine腳本

    [root@collaborative redmine-0.9.3]# rake config/initializers/session_store.rb RAILS_ENV=”production”
    [root@collaborative redmine-0.9.3]# rake generate_session_store

    5,遷移數(shù)據(jù)庫(kù)和數(shù)據(jù)

    將數(shù)據(jù)庫(kù)對(duì)象創(chuàng)建到Postgresql中

    [root@collaborative redmine-0.9.3]# rake db:migrate RAILS_ENV=”production”

    導(dǎo)入默認(rèn)的配置信息

    [root@collaborative redmine-0.9.3]# rake redmine:load_default_data RAILS_ENV=”production”

     

    三,啟動(dòng)Redmine

    運(yùn)行命令啟動(dòng)Redmine

    [root@collaborative redmine-0.9.3]# ruby script/server -e production

    1,錯(cuò)誤#1

    啟動(dòng)報(bào)錯(cuò),如下信息:

    /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:777:in `report_activate_error’: Could not find RubyGem rack (~> 1.0.1) (Gem::LoadError)

    看樣子是rake的版本不夠,Rails2.3.5中的rake版本是1.0.1的,重新安裝Rails來(lái)升級(jí)rack

    [root@collaborative ~]# gem install rails

    2,錯(cuò)誤#2

    安裝rails又報(bào)出如下的錯(cuò)誤:

    /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require’: no such file to load — zlib (LoadError)

    是zlib庫(kù)沒有安裝

    解決方案:

    yum install zlib-devel
    進(jìn)入目錄/u01/ruby-1.8.7-p248/ext/zlib
    運(yùn)行 ruby extconf.rb
    運(yùn)行 make && make install

    3,錯(cuò)誤#3

    再次啟動(dòng)Redmine,又報(bào)出如下錯(cuò)誤:

    ./script/../config/../vendor/rails/railties/lib/initializer.rb:271:in `require_frameworks’: no such file to load — openssl (RuntimeError)

    看來(lái)又缺少openssl庫(kù)

    解決方案:

    從網(wǎng)上找到了解決方案http://netfork.javaeye.com/blog/432928

    http://www.openssl.org/ 上下載:openssl-0.9.8m.tar.gz

    tar -xvf openssl-0.9.8m.tar.gz 解壓后,

    執(zhí)行make && make install

    回到ruby源文件文件夾的/ext/openssl文件夾下,執(zhí)行以下命令:

    ruby extconf.rb –with-openssl-include=/usr/local/ssl/include/ –with-openssl-lib=/usr/local/ssl/lib

    成功!??!

     

    再次啟動(dòng)Redmine,沒有錯(cuò)誤信息,通過(guò)瀏覽器訪問Redmine系統(tǒng):
    http://localhost:3000

    使用admin/admin登錄系統(tǒng)進(jìn)行配置

    posted on 2011-03-05 09:28 大鳥 閱讀(692) 評(píng)論(2)  編輯  收藏 所屬分類: linux

    FeedBack:
    # re: CentOS5下安裝Redmine0.9.3
    2011-03-05 14:41 | 大鳥
    ../depcomp: line 571: exec: g++: not found
    make[1]: *** [my_new.o] 錯(cuò)誤 127
    make[1]: Leaving directory `/home/justme/software/mysql-5.1.30/mysys'
    make: *** [all-recursive] 錯(cuò)誤 1



    解決 :


    下載 安裝 gcc-c++-4.1.2-33.i386.rpm(yum intall gcc-c++)   回復(fù)  更多評(píng)論
      
    # re: CentOS5下安裝Redmine0.9.3
    2011-03-05 15:41 | 大鳥
    java中的io與nio主要區(qū)別在于阻塞上
    io采用的是阻塞
    nio可自定義
    阻塞與非阻塞到底有什么不同?其底層是怎么實(shí)現(xiàn)的呢?
    從內(nèi)核的角度來(lái)理解,就是進(jìn)程的阻塞 運(yùn)行狀態(tài)的切換
    阻塞實(shí)際上是進(jìn)程在等待資源,而資源沒有就緒(如網(wǎng)卡數(shù)據(jù)沒到來(lái)),那么進(jìn)程就進(jìn)入阻塞狀態(tài)。
    這個(gè)進(jìn)程什么時(shí)候再投入運(yùn)行呢 ---- 等網(wǎng)卡數(shù)據(jù)到來(lái)時(shí)即可繼續(xù)運(yùn)行了

    阻塞IO的缺點(diǎn)是占用了一個(gè)進(jìn)程,卻讓這個(gè)進(jìn)程在阻塞隊(duì)列中睡大覺
    好比我請(qǐng)了一個(gè)工人干活卻因?yàn)樗鄾]到,只好讓工人傻等著,還得管吃管住,白白浪費(fèi)資源

    阻塞式IO數(shù)量比較少的時(shí)候問題不明顯,并發(fā)稍微大一些系統(tǒng)就吃不消了,如有1000個(gè)進(jìn)程都在阻塞,那么你的機(jī)器估計(jì)什么都干不了了,資源全浪費(fèi)了
    那位大哥問了,浪費(fèi)的是什么資源?
    是這樣的,系統(tǒng)能夠創(chuàng)建的進(jìn)程是有上限的 最大幾千個(gè)吧
    如果有1000個(gè)處在阻塞中是不是一種浪費(fèi)呢
    另外就是進(jìn)程調(diào)度,這么多的阻塞進(jìn)程參與進(jìn)程調(diào)度,會(huì)浪費(fèi)一些時(shí)間

    ======================================

    非阻塞進(jìn)程是怎么工作的呢?
    非阻塞進(jìn)程去讀取網(wǎng)卡數(shù)據(jù),如果數(shù)據(jù)沒來(lái) 則立即返回而不是在那兒傻等
    返回后進(jìn)程可以繼續(xù)干別的事情,等網(wǎng)卡的數(shù)據(jù)來(lái)了會(huì)主動(dòng)通知進(jìn)程的
    這樣就使進(jìn)程化被動(dòng)為主動(dòng)了

    非阻塞IO的威力在于作為Server端,接收客戶端高并發(fā)請(qǐng)求時(shí)
    只需要啟動(dòng)一個(gè)進(jìn)程即可處理成千上萬(wàn)的客戶端請(qǐng)求,充分利用了資源

    ======================================

    網(wǎng)上很多人都說(shuō)nio提高性能,我個(gè)人不太認(rèn)同
    nio只是數(shù)據(jù)讀寫的方式與以往不同,數(shù)據(jù)的傳輸速度沒有任何變化,處理速度也沒有變化
    如有一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包在12:00到達(dá)網(wǎng)卡,那么它不會(huì)因?yàn)椴捎昧薎O或NIO而改變到達(dá)時(shí)間
    這個(gè)數(shù)據(jù)包處理需要20ms,同樣它不會(huì)因?yàn)椴捎昧薎O或NIO而縮短處理時(shí)間

    NIO只是提高了資源的利用率
      回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 国产中文在线亚洲精品官网| 天堂在线免费观看中文版| 亚洲精品偷拍视频免费观看| 亚洲av中文无码乱人伦在线观看| 国产精品亚洲综合天堂夜夜| 在线观看无码的免费网站| 亚洲欧美乱色情图片| 女人与禽交视频免费看| 亚洲av永久无码精品网址| 国产精品四虎在线观看免费| 亚洲a∨无码一区二区| 四虎永久成人免费| av网站免费线看| 亚洲AV日韩AV天堂一区二区三区| 国产精成人品日日拍夜夜免费| 婷婷亚洲综合五月天小说| 亚洲黄色免费电影| 中文字幕亚洲综合小综合在线| 日韩在线视频免费看| 一级毛片免费全部播放| 亚洲AV永久精品爱情岛论坛| 18禁黄网站禁片免费观看不卡| 亚洲自国产拍揄拍| 免费一级做a爰片性色毛片| 国产日韩AV免费无码一区二区 | 亚洲M码 欧洲S码SSS222| 波霸在线精品视频免费观看| 亚洲视频网站在线观看| 成年女人免费视频播放77777 | 亚洲av无码成人影院一区| 午夜亚洲国产成人不卡在线| 国产一区二区三区免费| 亚洲自国产拍揄拍| 亚洲一级特黄无码片| 最近高清中文字幕免费| 亚洲AV日韩综合一区| 亚洲AV无码一区二区乱子伦| 青青青青青青久久久免费观看| 中文字幕版免费电影网站| 国产婷婷综合丁香亚洲欧洲| 国产午夜亚洲精品理论片不卡 |