Error installing nokogiri 1.6.0 on mac (libxml2)

前端 未结 2 1129
生来不讨喜
生来不讨喜 2020-12-14 17:34

UPDATE: Fixed

I found the answer in another thread. The workaround I used is to tell Nokogiri to use the system libraries instead:

N         


        
相关标签:
2条回答
  • 2020-12-14 17:49

    I found the answer in another thread. The workaround I used is to tell Nokogiri to use the system libraries instead:

    NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install
    
    0 讨论(0)
  • 2020-12-14 18:00

    Create file build_nokogiri (or whatever) and fill in with:

    #!/usr/bin/env ruby
    
    class Version
      attr_reader :major, :minor, :patch, :base
      def initialize( str )
        @base = str
        base = File.basename str
        @major, @minor, @patch = base.split('.').map &:to_i
      end
    
      def <=>(other)
        return -1 if major < other.major
        return 1 if major > other.mahor
        return -1 if minor < other.minor
        return 1 if minor > other.minor
        return -1 if patch < other.patch
        return 1 if patch > other.patch
        0
      end
    
      def to_s
        "##{self.class.name}{#@major #@minor #@patch  #@base}"
      end
      alias inspect to_s
      alias dir base
    
      def version
        [major,minor,patch].compact.join('.')
      end
    end
    
    class Lookup < Version
      class << self
        attr_accessor :prefix
      end
      def self.find
        Dir[ "/usr/local/Cellar/#{ full_name }/*" ].map { |c| new c }.sort.first
      end
    
      def self.full_name
        [prefix, name.downcase].compact.join('')
      end
    
      %w{ include lib }.each { |m| define_method("#{m}_path") { "#{ base }/#{ m }" } }
    
      def args
        %w{ include lib }.map do |c|
          "--with-#{ self.class.name.downcase }-#{c}=#{ send("#{ c }_path") }"
        end.join(' ')
      end
    end
    
    class XML2 < Lookup
      self.prefix = 'lib'
      def include_path
        "#{super}/#{ self.class.full_name }"
      end
    end
    
    class XSLT < Lookup
      self.prefix = 'lib'
      def args
        "--with-xslt-dir=#{ dir }"
      end
    end
    
    class Iconv < Lookup
      self.prefix = 'lib'
    end
    
    puts "Found:"
    a = [ XML2.find, XSLT.find, Iconv.find ]
    
    puts a
    
    s="  gem install nokogiri -- #{ a.map(&:args).join(' ') } --use-system-libraries"
    puts s
    
    exec s
    

    Give this file permission to execute.

    Execute file.

    This will automatically resolve dependencies installed using brew.

    0 讨论(0)
提交回复
热议问题