Na pudełku CentOS 5.7 mam problem z instalacją najnowszej wersji klejnotu mysql2; to nie jest znalezienie errmsg.h:Gdzie metoda has_header Rubiego szuka plików nagłówkowych?
pliki nagłówkowe/usr/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... no
checking for mysql_query() in -lmysqlclient... yes
checking for mysql.h... no
checking for mysql/mysql.h... yes
checking for errmsg.h... no
-----
errmsg.h is missing. please check your installation of mysql and try again.
-----
*** extconf.rb failed ***
MySQL istnieje w katalogu/usr/include/mysql. Starsza wersja klejnotu istnieje na serwerze, więc musiała zostać pomyślnie zbudowana w jednym punkcie.
Zauważ, że nie sprawdza się przy mysql.h, ale kończy się na mysql/mysql.h. Jednak nie powtórzy tego dla errmsg.h. Zgaduję, że to nie patrzy na/usr/include, ale nie jestem pewien.
Wkopałem się w kod źródłowy extconf.rb i odkryłem, że do znalezienia plików nagłówkowych używa się metody have_header
. Debugowałem wykonanie, aby dowiedzieć się, że szuka względnej ścieżki "mysql/errmsg.h". Ale nie znalazłem żadnej dokumentacji wyjaśniającej, w jaki sposób rozszerza to na absolutną ścieżkę.
Gdzie 01/w jaki sposób has_header zlokalizować swoje pliki nagłówkowe?
FWIW, wyprowadziła rzeczywisty problem w tym '--with-mysql-include =/usr/include/mysql' w poleceniu instalacji gem. Byłoby jednak przyjemnie mieć odpowiedź na to pytanie. –