Ubuntu补丁升级后应用无法启动及xapian-full-1.2.3安装失败求助
Ubuntu补丁升级后应用启动失败及xapian-full安装问题解决方案
一、应用启动报错信息
/home/azureuser/app2/current fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git fatal: not a git repository (or any of the parent directories): .git WARNING: Nokogiri was built against LibXML version 2.9.8, but has dynamically loaded 2.9.13 acts_as_xapian: No Ruby bindings for Xapian installed /home/azureuser/app2/bundle/ruby/2.3.0/gems/acts_as_xapian-0.1.3/lib/acts_as_xapian/search.rb:8:in `<class:Search>': uninitialized constant ActsAsXapian::Search::Xapian (NameError) from /home/azureuser/app2/bundle/ruby/2.3.0/gems/acts_as_xapian-0.1.3/lib/acts_as_xapian/search.rb:5:in `<module:ActsAsXapian>' from /home/azureuser/app2/bundle/ruby/2.3.0/gems/acts_as_xapian-0.1.3/lib/acts_as_xapian/search.rb:1:in `<top (required)>' from /home/azureuser/app2/bundle/ruby/2.3.0/gems/acts_as_xapian-0.1.3/lib/acts_as_xapian.rb:2:in `block in <top (required)>' from /home/azureuser/app2/bundle/ruby/2.3.0/gems/acts_as_xapian-0.1.3/lib/acts_as_xapian.rb:1:in `each' from /home/azureuser/app2/bundle/ruby/2.3.0/gems/acts_as_xapian-0.1.3/lib/acts_as_xapian.rb:1:in `<top (required)>' from /usr/local/rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:81:in `require' from /usr/local/rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:81:in `block (2 levels) in require' from /usr/local/rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:76:in `each' from /usr/local/rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:76:in `block in require' from /usr/local/rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:65:in `each' from /usr/local/rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:65:in `require' from /usr/local/rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler.rb:114:in `require' from /home/azureuser/app2/releases/20240702075626/config/application.rb:12:in `<top (required)>' from /home/azureuser/app2/bundle/ruby/2.3.0/gems/railties-3.2.22.5/lib/rails/commands.rb:39:in `require' from /home/azureuser/app2/bundle/ruby/2.3.0/gems/railties-3.2.22.5/lib/rails/commands.rb:39:in `<top (required)>' from script/rails:6:in `require' from script/rails:6:in `<main>'
二、xapian-full-1.2.3安装报错信息
current directory: /usr/local/rvm/gems/ruby-2.3.7/gems/xapian-full-1.2.3 /usr/local/rvm/rubies/ruby-2.3.7/bin/ruby -rrubygems /usr/local/rvm/rubies/ruby-2.3.7/lib/ruby/gems/2.3.0/gems/rake-10.4.2/bin/rake RUBYARCHDIR\=/usr/local/rvm/gems/ruby-2.3.7/extensions/x86_64-linux/2.3.0/xapian-full-1.2.3 RUBYLIBDIR\=/usr/local/rvm/gems/ruby-2.3.7/extensions/x86_64-linux/2.3.0/xapian-full-1.2.3 rake aborted! NameError: uninitialized constant Config Did you mean? RbConfig /usr/local/rvm/gems/ruby-2.3.7/gems/xapian-full-1.2.3/Rakefile:2:in `<top (required)>' (See full trace by running task with --trace) rake failed, exit code 1
三、当前环境信息
- Ruby版本:
ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux]
四、解决方案
1. 修复xapian-full-1.2.3安装的Config错误
xapian-full-1.2.3的Rakefile使用了废弃的Config常量,Ruby 2.3+需替换为RbConfig,步骤如下:
- 下载gem源码包:
gem fetch xapian-full -v 1.2.3 - 解压源码:
gem unpack xapian-full-1.2.3.gem - 进入解压目录:
cd xapian-full-1.2.3 - 编辑Rakefile,将第2行的
Config替换为RbConfig - 重新构建并安装gem:
gem build xapian-full.gemspec && gem install xapian-full-1.2.3.gem
2. 安装系统级Xapian依赖
确保系统安装了Xapian开发库,否则gem编译会失败:sudo apt-get install libxapian-dev
3. 解决Nokogiri与LibXML版本不匹配
重新安装Nokogiri并指定使用系统LibXML库:bundle config build.nokogiri --use-system-libraries && bundle install
4. 处理git仓库警告(可选)
如果应用依赖git仓库上下文,切换到项目的git根目录,或初始化仓库(仅当确实需要时操作):git init
内容的提问来源于stack exchange,提问作者user3715261
相关产品推荐
相关产品推荐

