Redmine(Ruby)配置经验
记录在配置Redmine邮件同步过程中遇到的各种问题与解决方法

1. 如何安装Redmine
http://www.redmine.org/projects/redmine/wiki/RedmineInstall

2. 如何配置自动邮件收取和定时同步
Windows下:http://www.redmine.org/projects/redmine/wiki/How_to_install_Redmine_in_Linux_Windows_and_OS_X_using_BitNami_Redmine_Stack
类Unix环境下:http://www.redmine.org/projects/redmine/wiki/RedmineReceivingEmails#Forwarding-emails-from-your-email-server
由于我主要是用Mac下配置的,下面主要为Mac下的命令。在其他操作系统下可能会略有不同
由于邮件服务器不是自己架设的,只能用imap或pop3同步的方法。
测试下来pop3同步QQ企业邮箱可能会有问题,于是采用了imap

3. Rake
自动收邮件的方法redmine:email:receive_imap需要rake来运行
关于什么是rake:
Rake中文介绍
http://hi.baidu.com/kenrome/item/0b178757da9c24948d12ed39
Rake官方文档
http://rake.rubyforge.org/

4. 运行rake的条件
运行rake首先要找到Rakefile所在的文件夹
对于BitNami的Redmine,安装目录在:/Applications/redmine-2.3.0-0/apps/redmine/htdocs

运行rake的时候如果遇到如下error:
rake aborted!
no such file to load - bundler/setup
说明bundle没装好

这时候就需要运行命令来安装bundle

5. 安装bundle
在Terminal里执行下列命令即可安装Bundle:
gem install bundler
bundle install
bundle exec rake db:create

如果要知道什么是bundle,可以查看链接:
http://guides.rubyonrails.org/getting_started.html#creating-a-new-rails-project
http://stackoverflow.com/questions/7454361/rubygems-do-not-install-on-os-x-lion

装Bundle的时候可能遇到各种Error
我遇到过的有:
1. Json错误,靠stackoverflow错误信息解决
2. 安装rmagick错误
rmagick是最头疼的一个错误,是由于rmagick 2.13.1版本的一个不兼容的问题导致。虽然2.13.2版本里修正了,但是bundle本身不能选择版本,只能自动安装2.13.1
修正方法:
http://stackoverflow.com/questions/13942443/error-installing-rmagick-on-mountain-lion/13960185#13960185
里面的路径可能会需要修改为/Users/<username>/.homebrew/Cellar/imagemagick/6.8.0-10/lib

运行bundle exec rake db:create可能也会遇到如下Error:
image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
解决方法:
http://stackoverflow.com/questions/8437455/rake-dbmigrate-mysql
简单的方法是:在运行所有Terminal方法前,运行一下:export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
永久解决方法是修改 .bash_profile

6. 运行rake
Redmine测试账号
redmine.test@honestwalker.com
Password01!

如果要直接在Terminal里运行的话,先运行
cd /Applications/redmine-2.3.0-0/apps/redmine/htdocs
再运行
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
最后运行
bundle exec rake --silent redmine:email:receive_imap unknown_user=accept no_permission_check=1 RAILS_ENV="production" host=imap.exmail.qq.com port=993 username=redmine.test@honestwalker.com password=******* ssl=1 project=testproject1 tracker=Support
可能会报一些编码问题,不过可以无视
(SSL可能是必须的,之前不用SSL似乎没有正确收取)

7. 定时运行
类Unix系统下的定时运行是用cron
关于cron的介绍可参见:
cron定时任务(类Unix系统)中文介绍
http://www.blogjava.net/chenlb/archive/2008/07/02/212123.html
简单地说:
crontab -e是修改cron的任务
crontab -l是查看已创建的cron任务
crontab -r是删除所有cron任务

如果要用cron执行一句语法的范例可参见:
*/30 * * * * cd /Applications/redmine-2.3.0-0/apps/redmine/htdocs

由于cron下执行任务都只能执行一行,但实际需要执行三行,所以需要用osascript(Mac下的脚本)

8. osascript
osascript的语法类似:
osascript -e 'tell application "terminal"' -e 'do script "cd / cd /"' -e 'end tell'
分号可以用来间隔命令,在同一个Terminal窗口执行多个命令

所以最终的osascript命令为:
osascript -e 'tell application "terminal"' -e 'do script "cd /Applications/redmine-2.3.0-0/apps/redmine/htdocs;export DYLD_LIBRARY_PATH=\"/usr/local/mysql/lib:$DYLD_LIBRARY_PATH\";bundle exec rake --silent redmine:email:receive_imap unknown_user=accept no_permission_check=1 RAILS_ENV=\"production\" host=imap.exmail.qq.com port=993 username=redmine.test@honestwalker.com password=****** ssl=1 project=testproject1 tracker=Support"' -e 'end tell'

9. 结果
执行以下命令
*/30 * * * * osascript -e 'tell application "terminal"' -e 'do script "cd /Applications/redmine-2.3.0-0/apps/redmine/htdocs;export DYLD_LIBRARY_PATH=\"/usr/local/mysql/lib:$DYLD_LIBRARY_PATH\";bundle exec rake --silent redmine:email:receive_imap unknown_user=accept no_permission_check=1 RAILS_ENV=\"production\" host=imap.exmail.qq.com port=993 username=redmine.test@honestwalker.com password=****** ssl=1 project=testproject1
tracker=Support"' -e 'end tell'

Redmine(Ruby)配置经验的更多相关文章

  1. 项目管理软件---redmine安装配置

    redmine是一个开源的项目管理软件,其主页是:http://www.redmine.org redmine是基于Ruby on Rails框架的,跨平台和跨数据库. 安装过程 ========== ...

  2. 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验

    分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...

  3. Ubuntu 下 redmine 安装配置

    安装 rvm \curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable –auto-dotfiles 安装 Ruby ...

  4. Redmine email配置

    很简单,先安装sendmail apt-get install sendmail 然后在redmine目录的配置文件conf/configuration.yml中取消几行注释: # ==== Send ...

  5. windows使用ruby配置redis集群

    基本是从网上抄的.不过网上的东西不一定是完全正确的 我修正了一下 首先,资源有限,我就不搞什么主机从机了,我需要的集群实现内存的最大化 四台机器安装redis, 配置成服务, 打开6379端口,集群1 ...

  6. redmine邮件配置

    网上找了半天,有很多答案,最后自己测试找出一个解决办法. 1.找到安装位置 D:\Bitnami\redmine-2.5.2-2\apps\redmine\htdocs\config下的文件confi ...

  7. bitnami redmine svn配置

    采用bitnami 方案安装redmine svn服务器端会自己进行安装 1.创建版本库 首先进入remine安装目录的subversion/bin目录,例如我的安装目录是“/opt/redmine/ ...

  8. Redmine 邮件配置

    高版本号的Redmine是没有email.yml的.是和configuration.yml合并了.仅仅要配置configuration.yml即可了. 首先得说下Redmine的邮件,配置这个邮件,是 ...

  9. faplayer编译配置经验

    最近在做在线m3u8类格式的视频直播应用, 在获取m3u8的文件之后,如果采用Android系统播放器来播,会有各种各样的问题,容易卡死.不连续,也不能自定义一些选项.查找资料以后,决定采用fapla ...

随机推荐

  1. [Mac] Mac book pro互换SSD硬盘、生产启动U菜、TimeMachine恢复 小记

    Mac book pro 硬盘故障.互换SSD硬盘.启动U磁盘生产 小记 2012新年买Mbp了.尽管各种功能都能用,但常常频繁的出现鼠标风火轮,已经下好的电影在本地播放时都会隔个几分钟卡一下. 拿到 ...

  2. java多线程(同步和死锁,生产者和消费者问题)

    首先我们来看看同步与死锁: 所谓死锁.这是A有banana,B有apple. A至B说:你把apple对我来说,,我会banana给你. B至A说:你把banana对我来说,,我会apple给你. 可 ...

  3. 20天android学习

    20多天的实习(事实上,一个人学习的东西)要结束, 其余的都只有读研. 此20许多天,我学到了很多东西, 至android的发展也有一定的了解.之后写这篇文章主要是完成研究可以学得很快再次回升 1.安 ...

  4. who is the best?

    Description There are N people want to choose the best person. Each person select the best person $a ...

  5. oracle_修改Oracle数据库字符集 AL32UTF8;

    修改数据库字符集 以支持维文等  utf8 停掉库 进入装载模式 ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_ ...

  6. Android环境结构--安装Eclipse错

    在学习安卓第一步.成立了一个开发环境. 经验,知道,所以这一步是不容易,因为你觉得,我可能是太幸运了. 我见到 题. 首先,安装Eclipse的时候. [Problem 1] [问题原因]: (1) ...

  7. EF4.1: Add/Attach and Entity States(EF中的实体状态转换说明)

    实体的状态,连接以及 SaveChanges 方法 数据库上下文对象维护内存中的对象与数据库中数据行之间的同步.这些信息在调用 SaveChanges方法被调用的时候使用.例如,当使用 Add 方法传 ...

  8. JavaEE Tutorials (2) - 使用教程示例

    2.1 必要软件27 2.1.1 Java EE 7软件开发包28 2.1.2 Java平台标准版28 2.1.3 Java EE 7教程组件28 2.1.4 NetBeans IDE29 2.1.5 ...

  9. pig 的chararry不能用于比较的类型可以comparison operator

    pig 的chararry类型可以是由场,通过现场实地比较. element_id 这是chararray种类. 声明: no_app_category_mapping = filter no_ele ...

  10. Robot Framework + appium 启动手机浏览器的两个方法(1)

    一.Open Browser启动 使用Selenium2Library的Open Browser方法,例子如下: browser=手机浏览器类型,如chrome 二.Open Application启 ...