Zmagam się z tym od jakiegoś czasu.
Zainstalowałem Rails 3, gem, mysql na mojej maszynie Snow Leopard. Wszystko szło dobrze, dopóki nie stworzyłem pierwszego projektu i nie próbowałem uruchomić
rails server
Po uruchomieniu otrzymuję:
jontybrook$ rails server
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27
from script/rails:6:in `require'
from script/rails:6
jontybrook$
O ile mogę stwierdzić, problem dotyczy klejnotu mysql2. Wygląda na to, że MySQL działa dobrze, a mój plik Gemfile odwołuje się do mysql2, a plik database.yml wydaje się również w porządku.
Błąd wspomina
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
I jeszcze
jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2
jontybrook$ ls
client.rb em.rb error.rb mysql2.bundle result.rb
MySQL2.bundle jest tam !?
Jeśli użyję starego klejnotu MySQL, WEBrick dobrze się uruchamia. Ale to nie jest idealne, prawda?
Próbowałem wszystkiego, co może mi dać Google! Każda pomoc bardzo doceniana.
źródło
/usr/lib
linkiem, ten link zostanie rozwiązany w miejscu, w którym jest faktycznie zainstalowany. W systemie OS X jest to zwykle poniżej/usr/local/mysql/lib
, do którego prowadzi to polecenie. Jeśli twoja biblioteka lib jest zainstalowana w innym miejscu, musisz dostosować to polecenie. Wpiszlocate libmysqlclient.18.dylib
i zastąp wynik pierwszym argumentem po-s
.WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the database can take some time to generate; once the database has been created, this message will no longer appear.
co jest nie tak?sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
). Rozpocznie to proces indeksowania dysku twardego, co sprawi, żelocate
polecenie będzie działać w przyszłości. Jednak w większości przypadków myślę , że nie musisz tego robić i możesz po prostu użyć polecenia, które luvlss dostarczyło w obecnym stanie.W końcu to rozwiązałem!
Ponownie zainstalowałem Ruby and Rails pod RVM. Używam wersji Ruby 1.9.2-p136.
Po ponownej instalacji w rvm ten błąd nadal występował.
Ostatecznie magiczne polecenie, które to rozwiązało, brzmiało:
Mam nadzieję, że to pomoże komuś innemu!
źródło
mysql2-0.2.6/lib/mysql2/mysql2.bundle
gdziekolwiek są zainstalowane twoje klejnoty.sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.10/lib/mysql2/mysql2.bundle
Ta poprawka działała dla mnie bardzo dobrze:
Dodaj następujące elementy do swojego ~ / .profile
http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/
źródło
Dla mnie było tak tylko dlatego, że zaktualizowałem mysql, ale nie zaktualizowałem klejnotu mysql2 - ponowna instalacja klejnotu go naprawi ...
gem pristine mysql2
źródło
Mam ten sam problem. Wygląda na to, że nie można znaleźć biblioteki libmysqlclient. Tymczasowa poprawka, która zadziałała, jest następująca:
Nie jestem pewien, gdzie konfiguracja określa ścieżkę ładowania lub co jest ustawione, ale moja instalacja mysql nie była w niej wyświetlana. Napiszę ponownie, jeśli znajdę bardziej trwałe rozwiązanie.
Edycja: W rzeczywistości ta poprawka wydaje się dokładniej rozwiązać problem.
źródło
Dodaj poniżej swoje
~/.bash_profile
:To zadziałało dla mnie
źródło
Po wykonaniu tej czynności w aktualizacji OSX El Capitan:
generuje błąd jak
Aby tego uniknąć, najpierw należy zlokalizować
libmysqlclient.18.dylib
za pomocą poleceniaW moim przypadku wrócił
/usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib
Zamiast tego
usr/lib/
stworzymy dowiązanie symboliczne, abyusr/local/lib/
polubić to:Więcej informacji: https://forums.developer.apple.com/thread/7935
źródło
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
/usr/local/lib
folderzenastępujące wiersze działają dla mnie. Używam Mac 10.7.2.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
źródło
Właśnie wpadłem na ten problem. Wszystko, co musiałem zrobić, to odinstalować klejnot mysql2 i zainstalować go ponownie. Mam nadzieję, że to działa na innych ludzi
źródło
All versions
na monit. Następnie uruchomiłem brew upgrade mysql, a następnie zainstalowałem gem mysql2.Tak to dla mnie działało:
Uruchomiłem poniższe polecenie
sudo nazwa_instalacji_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~ / .rvm / gems / ruby-1.9.2-p180 / gems / mysql2-0.2.7 /lib/mysql2/mysql2.bundle
Moje środowiska:
$ rails -v Rails 3.0.6
$ mysql --version
mysql Ver 14.14 Distrib 5.5.11, dla osx10.6 (i386) przy użyciu readline 5.1
$ ruby -v
ruby 1.9.2p180 (wersja 02.02.2011 30909) [x86_64-darwin10.7.0]
Mam nadzieję, że to komuś pomoże.
źródło
Dzięki, Ogapo! Eksportowanie tego aliasu działało dla mnie, a następnie podążyłem za linkiem, aw moim przypadku mysql2.bundle był w /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, więc Zmodyfikowałem narzędzie install_name_tool, aby zmodyfikować ten pakiet zamiast jednego w ~ / .rvm i działałem tak, jak powinien.
Więc teraz:
źródło
cześć, to zadziałało dla mnie z zalecanego linku Fredy'ego Andersena
właśnie musiałem zmienić na moją wersję mysql, w poleceniu, dzięki
źródło
Rozwiązałem ten problem, usuwając mój zestaw gemów dla mojego bieżącego projektu, odtwarzając go ponownie i uruchamiając ponownie instalację pakietu. Myślę, że spowodowałem to instalując nowszą wersję mysql.
źródło
Miałem ten problem podczas pracy z Django, używam
brew
do instalowania wielu moich programów Open Source i musiałem wykonać następujące czynności, ponieważbrew
instalowałemmysql
:Pamiętaj, aby zastąpić je swoją wersją bibliotek!
źródło
bundle install mysql --force
pomogło mi. Ponownie zainstalował zależności, które zniknęły w wynikubrew uninstall mysql
.źródło
Unknown switches '--force'
Jonty, ja też mam z tym problem.
Myślę, że jest tu wskazówka:
Zauważ, że ścieżka do dylibu jest raczej krótka?
Próbuję dowiedzieć się, gdzie instrukcje instalacji klejnotów opuszczają ścieżkę dylib, ale działa powoli, ponieważ sam nigdy nie zbudowałem klejnotu.
Wyślę więcej, jeśli znajdę więcej!
źródło
Miałem ten sam problem kilka dni temu. W końcu udało mi się to rozwiązać. Nie jestem do końca pewien jak, ale i tak powiem ci, co zrobiłem. Może ci to pomoże.
Zacząłem od pobrania RVM. Jeśli jeszcze go nie używasz, gorąco polecam. Zasadniczo tworzy piaskownicę dla nowej osobnej instalacji Ruby, RoR i RubyGems. W rzeczywistości możesz mieć wiele instalacji jednocześnie i natychmiast przełączać się między sobą. To działa jak urok.
Dlaczego to jest przydatne? Ponieważ nie powinieneś zadzierać z domyślną instalacją Ruby w OS X. System zależy od tego. Najlepiej po prostu zostawić domyślną instalację Ruby i RoR w spokoju i utworzyć nową przy użyciu RVM, której można użyć do własnego rozwoju.
Po utworzeniu mojej osobnej instalacji Ruby, właśnie zainstalowałem RoR, RubyGems i mysql i działało. Dokładne kroki, które podjąłem, zobacz moje pytanie: Instalowanie Railsów, MySQL itp. Wszystko idzie nie tak
Ponownie: nie wiem na pewno to rozwiąże twój problem. Ale z pewnością to załatwiło sprawę, a w każdym razie użycie RVM jest wysoce zalecane.
źródło
Nadal zauważyłem, że z powyższymi rozwiązaniami nie działało (na przykład) z wtyczką Rails dla TextMate. Wystąpił podobny błąd (podczas pobierania schematu bazy danych).
Więc co się stało, otwórz terminal:
Zastąp mysql-5.5.8-osx10.6-x86_64 własną ścieżką (lub mysql).
To powoduje, że symbol łączy się z lib, teraz railsy uruchamiają się z linii poleceń, a także wtyczki TextMate, takie jak ruby-on-rails-tmbundle .
Żeby było jasne: naprawia to również błąd, który pojawia się podczas uruchamiania serwera Railsowego.
źródło
Zwykle dzieje się tak po uaktualnieniu mysql. Zainstalowany klejnot mysql2, który został zbudowany na starych bibliotekach mysql, nie może działać z nowymi bibliotekami. Wystarczy go ponownie zainstalować.
Odinstaluj mysql2 przy pomocy
gem uninstall mysql2
. Następnie zainstaluj za pomocągem install mysql2
źródło
Rozwiązałem go, tworząc plik .rvmrc w folderze projektu, zawierający:
następnie wpisując ścieżkę projektu
wtedy biegnę
źródło
Moja wersja polecenia luvlss:
Mac OSX 10.10.5
MySQL 5.6.27
Pasażer 5.0.21
sudo ln -s /usr/local/mysql-5.6.27-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Jeśli próbujesz wielu różnych linków, tak jak ja, zrób porządek z:
sudo unlink /usr/lib/libmysqlclient.18.dylib
źródło
Otwórz terminal i uruchom następujące czynności:
To powinno działać.
źródło
Jeśli używasz OSX i zainstalowałeś mysql przy użyciu brew, możesz:
Jeśli masz problemy z wersją (miałem uruchomiony mysql 5.7, a mój klejnot wymagał 5.6.25), możesz
źródło
Dla mnie musiałem ręcznie odinstalować mysql
źródło