Bitnami Redmine插件安装报错:无法找到json-1.8.6 gem
我来一步步帮你搞定这个Redmine插件安装的麻烦。你遇到的「json-1.8.6找不到」报错(明明已经装了gem还是不行),还有后台Extensions页面显示「No data to display」的情况,其实都是bundle缓存管理和插件加载的常见问题,咱们逐个解决:
一、修复bundle的vendor/cache缺失问题
bundle报错说找不到vendor/cache里的json-1.8.6,是因为它默认优先从本地缓存加载,而你的缓存里没有这个版本的gem,哪怕你全局装了也没用。试试这几步:
确保在Redmine根目录执行命令
先cd到你的Redmine根文件夹,所有bundle相关命令都必须在这里运行,不然会找不到项目的Gemfile。清理旧缓存并重新安装到本地缓存
执行下面的命令,强制清空bundle的旧缓存,然后重新把所有依赖的gem下载到vendor/cache目录:bundle clean --force bundle install --path vendor/cache这一步应该能把json-1.8.6拉到本地缓存里,让bundle能找到它。
如果拉取失败,换个gem源试试
有时候默认的rubygems源访问不稳定,导致特定版本的gem拉取不到。可以切换到国内的源再试:bundle config mirror.https://rubygems.org https://gems.ruby-china.com bundle install --path vendor/cache
二、让Redmine正确识别插件
就算gem问题解决了,插件也可能因为权限、未迁移或者没重启服务器而不被识别,导致Extensions页面为空:
检查插件目录权限
Redmine的运行用户(比如服务器的www-data用户,或者你自己的登录用户)需要有插件目录的读写权限,不然加载不了插件:sudo chown -R www-data:www-data /你的Redmine路径/plugins/你的插件文件夹 sudo chmod -R 755 /你的Redmine路径/plugins/你的插件文件夹记得把路径换成你实际的Redmine安装路径和插件文件夹名称。
执行插件数据库迁移
很多插件需要创建自己的数据库表,执行迁移任务确保这一步完成:bundle exec rake redmine:plugins:migrate RAILS_ENV=production如果你是在开发环境测试,就把
RAILS_ENV=production换成RAILS_ENV=development。重启Redmine服务器
Redmine不会自动加载新插件,必须重启你的服务器(比如Apache、Nginx、Passenger或者Unicorn),重启后再去后台Extensions页面看看。
三、最后的排查手段
如果上面的步骤都试过还是不行,可以试试这些方法:
明确指定json版本到Gemfile
打开Redmine根目录的Gemfile,添加一行:gem 'json', '1.8.6'然后再执行
bundle install,强制锁定这个版本,避免依赖冲突替换掉它。查看Redmine日志找具体错误
去Redmine的log目录下看日志文件(比如production.log),里面会有插件加载失败的详细原因,比如某个依赖没装、代码语法错误等,根据日志再针对性解决。
内容的提问来源于stack exchange,提问作者user7597554

