Errore di compilazione Nokogiri – Imansible trovare librerie / intestazioni

Cercando di installare una gem, ma non riesce a trovare le intestazioni, nonostante le specifichi:

sudo gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xml2-include=/usr/local/include/libxml2 --with-xslt-include=/usr/local/include/libxslt Building native extensions. This could take a while... ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xml2-include=/usr/local/include/libxml2 --with-xslt-include=/usr/local/include/libxslt checking for #include  ... no ----- libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. 

Il file /usr/local/include/libxml2/libxml/parser.h esiste, quindi non vedo perché questo non funziona.

EDIT: I’m on Centos 5.4

Se esplori in /usr/lib/ruby/1.8/mkmf.rb puoi capire come simulare il controllo che sta accadendo durante l’installazione. Nel mio caso potrei farlo creando un file chiamato conftest.c contiene:

 #include  

Quindi provare a eseguire il comando che viene passato nella funzione try_do . Nel mio caso questo era:

 gcc -E -I. -I/usr/lib64/ruby/1.8/x86_64-linux -I. -III/opt/local/include -III/usr/local/include -III/usr/include -III/usr/include -III/usr/include/libxml2 -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -II/opt/local/include -II/usr/local/include -II/usr/include -II/usr/include -II/usr/include/libxml2 -I/opt/local/include -I/usr/local/include -I/usr/include -I/usr/include -I/usr/include/libxml2 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fno-strict-aliasing -fPIC -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -o conftest.i 

Nel mio caso mi mancava gcc , che probabilmente non è quello che stai colpendo da quando hai detto che hai compilato dal sorgente. Ma se tutto va bene se esegui questo comando dovrebbe darti un’idea del motivo per cui non puoi caricare in libxml2.

Se sei interessato a pre-costruito apparentemente EPEL ha un pacchetto rubygems-nokogiri . Buone possibilità, percorrerò questa strada alla fine.