Проблема в том, что другие библиотеки загружают более раннюю версию libxml. Я нашел это, комментируя вещи в моем Gemfile. В частности, в моем случае RMagick загружал libxml 2.7.3. (Он использует libxml для чтения файлов SVG.)
Я пытался пересобрать RMagick для libxml 2.7.7 примерно так:
gem install --no-rdoc --no-ri rmagick -- --with-xml2-include=/opt/local/include/libxml2 --with-xml2-lib=/opt/local/lib --with-xslt-include=/opt/local/libxslt --with-xslt-lib=/opt/local/lib
Однако RMagick, похоже, не заботился об этих флагах. Он построен с использованием 2.7.3 снова. (Если кто-нибудь знает, как собрать RMagick для конкретной версии libxml, поделитесь своими знаниями.)
В конце концов, я нашел половинчатое решение. Я решил, что если я не смогу разрешить конфликт версий между этими двумя драгоценными камнями, я бы по крайней мере предпочел Nokogiri, который использует более новую версию libxml. Для этого я выяснил, какие драгоценные камни в моем Gemfile использовали Nokogiri, и поставил их на первое место.
Итак, хотя у меня когда-то было это:
gem 'rmagick', :require => 'RMagick'
gem 'sanitize' # Has Nokogiri as dependency
Теперь у меня есть это:
gem 'sanitize' # Has Nokogiri as dependency
gem 'rmagick', :require => 'RMagick'
Теперь предупреждение исчезло, а Рмагик еще не жаловался. Отказ от ответственности: я не использую SVG в своих приложениях, поэтому я не подтвердил, что RMagick полностью совместим с libxml 2.7.7.