خطأ في تثبيت MySQL2: فشل في بناء امتداد محلي GEM
-
25-09-2019 - |
سؤال
أواجه بعض المشاكل عند محاولة التثبيت mysql2
جوهرة للقضبان. عندما أحاول تثبيته عن طريق التشغيل bundle install
أو gem install mysql2
يعطيني الخطأ التالي:
خطأ في تثبيت MySQL2: خطأ: فشل في إنشاء امتداد أصلي للأحجار الكريمة.
كيف يمكنني إصلاح هذا وتثبيت بنجاح mysql2
?
المحلول
على Ubuntu/Debian والتوزيعات الأخرى باستخدام الكفاءة:
sudo apt-get install libmysql-ruby libmysqlclient-dev
طَرد libmysql-ruby
تم التخلص التدريجي واستبداله ruby-mysql
. هذه هو المكان الذي وجدت فيه الحل.
إذا كان الأمر أعلاه لا يعمل بسبب libmysql-ruby
لا يمكن العثور عليها ، يجب أن يكون ما يلي كافيًا:
sudo apt-get install libmysqlclient-dev
على Red Hat/Centos والتوزيعات الأخرى باستخدام Yum:
sudo yum install mysql-devel
على Mac OS X مع البيرة:
brew install mysql
نصائح أخرى
أنا على جهاز Mac وأستخدمه البيرة لتثبيت برامج مفتوحة المصدر. اضطررت إلى تثبيت أدوات Mac Dev لتثبيت Homebrew ، ولكن بعد ذلك كان الأمر بسيطًا:
brew install mysql
لتثبيت MySQL. لم أواجه مشكلة في جوهرة mySQL منذ ذلك الحين.
هنا حل ل مستخدمي Windows, ، أتمنى أن يساعد!
باستخدام MySQL مع Rails 3 على Windows
تثبيت RailsInstaller -> www.Railsinstaller.org (قمت بتثبيته على C: Rails)
تثبيت MySQL (لقد استخدمت MySQL 5.5) -> dev.mysql.com/downloads/installer/
--- لتركيب MySQL ---
إذا لم يكن لديك بالفعل هذين الملفان مثبتة قد تحتاجهم للحصول على mysql الخاص بك
vcredist_x86.exe -> http://www.microsoft.com/download/en/details.aspx؟id=5555dotnetfx40_full_x86_x64.exe -> http://www.microsoft.com/download/en/details.aspx؟id=17718
استخدم جهاز مطور التثبيت الافتراضي-ما خادم mysql config-
الميناء: 3306
اسم خدمة Windows: MySQL55
MySQL Root Pass: Root (يمكنك تغيير هذا لاحقًا)
(اسم المستخدم: الجذر)
-ما خادم mysql config---- لتركيب MySQL ---
--- قم بتثبيت GEM MySQL2 ---
الأهمية: افعل هذا مع سطر أوامر Git Bash(تم تثبيت هذا مع RailsInstaller) -> ابدأ/git bash
GEM تثبيت mysql2-'-with-mysql-lib = "c: program files mysql mysql server 5.5 lib"-with-mysql-include = "c: program files mysql mysql server 5.5 تضمن"'
الآن يجب أن تكون الجوهرة قد تم تثبيتها بشكل صحيح
أخيرا نسخ ملف libmysql.dll من
C: Program Files mysql mysql server 5.5 lib
ل
C: Rails ruby1.9.2 bin
--- قم بتثبيت GEM MySQL2 ---
ستتمكن الآن من استخدام تطبيق Rails الخاص بك مع MySQL ، إذا لم تكن متأكدًا من كيفية إنشاء تطبيق Rails 3 مع قراءة MySQL على ...
--- احصل على تطبيق Rails 3 مع MySQL ---
فتح موجه الأوامر (وليس git bash) -> ابدأ/cmd
انتقل إلى المجلد الخاص بك (C: Sites)
إنشاء تطبيق Rails جديد
rails new world
حذف الملف C: Sites World Public Index.html
تحرير الملف C: Sites World Config Roates.RB
أضف هذا السطر -> الجذر: إلى => "المدن#فهرس"
فتح موجه الأوامر (إنشاء طرق عرض ووحدات تحكم)
rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer
قم بتحرير الملف C: sites world app models city.rb لتبدو هكذا
class City < ActiveRecord::Base
set_table_name "city"
end
قم بتحرير الملف C: Sites World config database.yml لتبدو هكذا
development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock
إضافة إلى Gemfile
gem 'mysql2'
يفتح موجه الأمر Windows CMD ، وليس git bash (قم بتشغيل التطبيق الخاص بك!)
انتقل إلى مجلد التطبيق الخاص بك (C: Sites World)
rails s
افتح متصفحك هنا -> http: // localhost: 3000
--- احصل على تطبيق Rails 3 مع MySQL ---
لدي العديد من أجهزة الكمبيوتر ، معالج 32 و 64 بت ، يتم تشغيلها على إصدار Ubuntu Linux ، Maverick (10.10).
واجهت نفس المشكلة ، وبالنسبة ليsudo apt-get install libmysql-ruby libmysqlclient-dev
هل الوظيفة !!!
طريقة أخرى لمستخدمي MacOS
إذا كنت تستخدم "Brew" لتثبيت MySQL:
gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
xxx = إصدار من جوهرة mysql2 التي تريد تثبيتها
yyy = إصدار MySQL الذي قمت بتثبيته ls /usr/local/Cellar/mysql
للعثور عليه.
هل حاولت استخدام
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
لتحديد موقع دليل thebase وكذلك المسار إلى مكتبات MySQL الضرورية لإكمال تثبيت الأحجار الكريمة؟
مصادر:خطأ في تثبيت MySQL GEM: فشل في إنشاء امتداد محلي GEM منتديات MySQL :: Ruby :: المساعدة المطلوبة مع تثبيت MySQL ملزمة لروبي
إذا كنت تستخدم yum جرب:
sudo yum install mysql-devel
هذا حل مشكلتي مرة واحدة في النوافذ:
subst X: "C:\Program files\MySQL\MySQL Server 5.5"
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt
subst X: /D
إذا كنت لا تزال تواجه مشكلة ...
حاول التثبيت
sudo apt-get install ruby1.9.1-dev
لقد واجهت هذه المشكلة على Windows 7. يبدو أن هذه مشكلة عدم التوافق والحل كما يلي:
تحميل libmySQL.dll
ملف من مثبت instantrails الأقدم. وهي متوفرة من instantrails github repo.
بعد ذلك ، انسخ هذا الملف في مجلد Ruby/Bin الخاص بك.
الآن ، أنت جيد للذهاب ؛)
ل ماكوس موهافي:
gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include
لقد حصلت على هذا الخطأ أيضًا. تم حلها عن طريق تثبيت حزم التطوير. أنا أستخدم القوس وكان:
sudo pacman -S base-devel
الذي تم تثبيته:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config
لكنني أعتقد أنه يحتاج في الواقع إلى صنع و GCC. قال إخراج الخطأ (على الجهاز الخاص بي ، من بين آخر):
"عليك تثبيت أدوات التطوير أولاً."
لذلك كان قرارًا واضحًا وساعد.
يجب عليك تثبيت بعض التبعيات
sudo apt-get install libmysql-ruby libmysqlclient-dev
على دبيان تمتد الحزمة التي نجحت بالنسبة لي الافتراضي-libmysqlclient-dev
sudo apt-get update && apt-get install -y default-libmysqlclient-dev
كنت أواجه هذا الخطأ على جهاز Mac الخاص بي ووجدت أنني بحاجة إلى الترقية من MySQL 32bit إلى MySQL 64 بت للحصول على هذا الخطأ للرحيل. كنت أقوم بتشغيل OSX 10.6 على Intel MacBook Pro مع Ruby 1.9.2 و Rails3.0.0
كنت بحاجة أيضًا إلى تثبيت Xcode من أجل الحصول على أدوات UNIX مثل "صنع" مطلوب لتجميع الأحجار الكريمة.
بمجرد الانتهاء من ذلك ، تمكنت من تشغيل GEM تثبيت MySQL و GEM تثبيت MySQL2 دون خطأ.
في حالتي ساعد هذا:
$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"
ثم:
gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib
نتيجة:
Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed
انظر هذا المنصب (تحذير: اللغة اليابانية في الداخل).
بالنسبة لمستخدم Windows: يمكنك تعيين LIB وتضمين مسار MySQL الخاص بك ، على سبيل المثال ، إذا كنت تستخدم XAMPP ، فيمكنك الحصول على مثل هذا:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
الحل يعمل فقط على Mac OS X
إذا كنت قد قمت بتثبيت MySQL مع Homebrew ، فإن ما نجح بالنسبة لي هو إلغاء تثبيت MySQL ، وتثبيت MySQL Community Edition عبر موقع MySQL (https://www.mysql.com/).
بعد التثبيت ، ما عليك سوى إعادة إدخال الأمر إلى gem install mysql2
أو إذا لزم الأمر ، sudo gem install mysql2
, ، إذا كنت تحصل على الإذن من المشاكل.
حصلت على GEM المبنية على Mac OS X 10.6.6 by 1) التأكد من تثبيت حزمة أدوات المطورين 2) تنزيل حزمة MySQL الحالية (5.5.8 في حالتي) من المصدر 3) تثبيت أداة cmake من cmake.org 4 ) باتباع الإرشادات الواردة في القسم 2.11 من مصدر التثبيت من ملفات توزيع MySQL 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include
تم تصميم GEM بنجاح ، ولكن هناك خطأان في الوثائق التي يشكو منها RDOC و RI. لكن الآن عندما أحاول أن أتطلب "mysql2" أحصل على ملف
LoadError: no such file to load -- mysql2/mysql2
كنت آمل أن يكون الخطأ الذي ستحصل عليه هو أن libmysqlclient.16.dylib لا يمكن العثور عليها لأننا اكتشفنا ذلك في منشور آخر (ابحث عن install_name_tool).
يحتوي مسار $ الخاص بي/usr/local/mysql فيه (هذا هو المكان الذي توجد فيه المصدر والملفات المبنية) ، لذلك أنا متعثر قليلاً. إذا كان لدى أي شخص أي أفكار ، فسوف أتحقق مرة أخرى بعد بضع ساعات من النوم.
إذا كان لا يزال يحصل على خطأ ، فاتبع خطوات تثبيت GEM MySQL2 على القضبان 3 على -
http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
حيث تمكن معظم المستخدم من تثبيت GEM MySQL2.
بعد تصحيح مشكلات MySQL-DEV ، قد تحتاج إلى إزالة تثبيت MySQL2 السيئ. انظر بعناية في الرسائل بعد تثبيت حزمة $. قد تحتاج إلى
rm -rf vendor/cache/
rm -rf ./Zentest
سيؤدي ذلك إلى توضيح تثبيت MySQL2 السيئ بحيث يمكن لتثبيت حزمة $ النهائية إنشاء عملية جيدة.
قم بتنزيل الإصدار المناسب من mysqllib.dll ثم انسخه إلى Ruby Bin يعمل حقًا بالنسبة لي. اتبع هذا الرابط plass MySQL2 GEM تم تجميعها لمكتبة عميل MySQL خاطئة
حصلت على "عليك تثبيت أدوات التطوير أولاً." خطأ عند محاولة تثبيت GEM MySQL2 بعد الترقية إلى Mac OS X Mountain Lion. يبدو أن القيام بهذا الترقية يزيل مجمعي سطر الأوامر.
لإصلاح:
- قمت بإلغاء تثبيت نسختي القديمة من Xcode (ركض البرنامج النصي إلغاء تثبيت /مطور /مكتبة). ثم حذف دليل /مطور.
- ذهبت إلى AppStore وتنزيل Xcode.
- تم إطلاق Xcode وذهب إلى التفضيلات -> التنزيلات ، وقام بتثبيت أدوات سطر الأوامر.
أنت تحصل على هذه المشكلة لأنك لم تقم بتثبيت MySQL. قبل تثبيت MySQL2 GEM. تثبيت MySQL. بعد ذلك سيتم تثبيت GEM MySQL2.
أردت فقط إضافة هذه الإجابة خصيصًا ل مستخدمي Mac.
كان الخادم الخاص بي يعمل بشكل جيد حتى قمت بتحديث Xcode الخاص بي. أثناء بدء تشغيل خادم Rails الخاص بي ، تم عرض الخطأ على هذا النحو
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-
p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an
executable file. (RuntimeError)
وكان هناك اقتراح لتثبيت GEM MySQL2 في نهاية رسالة الخطأ. لذلك عندما حاولت تثبيته ، حصلت على الخطأ كما هو مذكور أعلاه في هذا السؤال. الخطأ الذي حصلت عليه على النحو التالي
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
لذلك كما هو مقترح في هذا المنشور ، حاولت "Brew Install MySQL" وتركت قائلاً إن إصدار MySQL تم تثبيته بالفعل. ولكن كان هناك تحذير قبل أن يقول
Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license
ثم جربت هذا sudo xcodebuild -license
واكتب "توافق" في النهاية. يجب أن تكون جذرًا للموافقة على الترخيص.
بعد ذلك ، حاولت مرة أخرى التثبيت ، ثم يعمل كل شيء بشكل جيد كالمعتاد. [حتى بسبب تحديث Xcode هذا ، واجهت مشكلة مع برج بلدي أيضًا.
libmysql-ruby
تم التخلص التدريجي واستبداله. أمر جديد:
sudo apt-get install ruby-mysql libmysqlclient-dev
آسف على هذا يجب أن يكون تعليقا على إجابة Spacemonkey لكن ليس لدي سمعة كافية للقيام بذلك.
أريد أن أضيف أنه إذا كنت تستخدم MariaDB بدلاً من MySQL على CentOS 7 ، فأنت بحاجة فقط إلى تثبيت حزمة MariaDB المشتركة لإصلاح الخطأ.
yum install MariaDB-shared -y