Ответ 1
Проблема в том, что другие библиотеки загружают более раннюю версию 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'
Теперь предупреждение исчезло, и RMagick еще не пожаловался. Отказ от ответственности: я не использую SVG в своих приложениях, поэтому я не подтвердил, что RMagick полностью совместим с libxml 2.7.7.