एक CentOS 5.7 बॉक्स पर, मुझे mysql2 मणि के नवीनतम संस्करण को स्थापित करने में समस्या हो रही है; यह errmsg.h नहीं मिल रहा है:रुबी की है_हेडर विधि हेडर फ़ाइलों के लिए कहां दिखती है?
/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 हेडर फाइल/usr/शामिल/mysql पर मौजूद हैं। सर्वर पर मणि का एक पुराना संस्करण मौजूद है, इसलिए इसे एक बिंदु पर सफलतापूर्वक बनाया जाना चाहिए।
ध्यान दें कि यह mysql.h के लिए चेक पर विफल रहता है, लेकिन mysql/mysql.h पर सफल होता है। हालांकि, यह errmsg.h के लिए इसे दोहराना नहीं है। इसके द्वारा मैं अनुमान लगा रहा हूं कि यह/usr/शामिल नहीं है, लेकिन मुझे यकीन नहीं है।
मैंने extconf.rb स्रोत कोड में खोला है और पाया है कि यह हेडर फ़ाइलों का पता लगाने के लिए have_header
विधि का उपयोग कर रहा है। मैंने निष्पादन को डीबग किया कि यह पता लगाने के लिए कि यह "mysql/errmsg.h" के सापेक्ष पथ की तलाश में है। लेकिन मुझे कोई दस्तावेज नहीं मिला है जो बताता है कि यह एक पूर्ण पथ में कैसे फैलता है।
जहां & हैडरहेडर अपनी शीर्षलेख फ़ाइलों को कैसे ढूंढता है?
Fwiw, मैं शामिल करके वास्तविक समस्या को नजरअंदाज कर '--with-mysql-शामिल =/usr/gem instal कमांड में/mysql' शामिल करें। हालांकि इस सवाल का जवाब देना अभी भी अच्छा होगा। –