2013-05-06 14 views
13

Tak więc szyny s nie działają wraz z generowaniem szyn. Myślałem, że problemem jest pasek narzędziowy heroku, więc usunąłem go, ale to nie wystarczyło. Następnie sprawdziłem mój plik .zshrc i zobaczyłem, że ma on inną wersję ruby, którą wywoływał w PATH, więc to zaktualizowałem. Jednak tego nie zrobił. Nie mam pomysłów. Czy ktoś może pomóc?szyny s -> dyld: leniwe wiązanie symboli nie powiodło się: nie znaleziono symbolu: _rb_intern2

# (05/06/13 @ 10: 01am) (admin @ Administratorzy-MacBook-Pro): ~/Desktop/scratch szynach s dyld: leniwy symbol wiązania nie powiodło się: Symbol nie znaleziono: _rb_intern2 odwołuje się od: /Users/admin/.rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle Oczekiwany w: nazw płaskiej

dyld: Symbol not found: _rb_intern2 
    Referenced from: /Users/admin/.rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle 
    Expected in: flat namespace 

[1] 69741 trace trap rails s 

# (05/06/13 @ 10: 02AM) (admin @ Administrators-MacBook-Pro): ~/desktop/scratch Lista rvm domyślnie

Default Ruby (for new shells) 

    ruby-1.9.3-p392 [ x86_64 ] 

# (05/06/13 @ 10: 11AM) (admin @ Administratorzy-MacBook-Pro): ~/Desktop/scratch Ruby -v

ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0] 

# (06/05/13 @ 10: 11am) (admin @ Administratorzy-MacBook-Pro): ~/Desktop/scratch szyn -v

Rails 3.2.12 

gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.12' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

gem 'sqlite3' 
# gem 'pg' 
gem "bootstrap-sass", ">= 2.3.0.0" 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 

    # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
    # gem 'therubyracer', :platforms => :ruby 

    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

# To use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# To use Jbuilder templates for JSON 
# gem 'jbuilder' 

# Use unicorn as the app server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'debugger' 

plik .zshrc:

# Path to your oh-my-zsh configuration. 
ZSH=$HOME/.oh-my-zsh 

# Set name of the theme to load. 
# Look in ~/.oh-my-zsh/themes/ 
# Optionally, if you set this to "random", it'll load a random theme each 
# time that oh-my-zsh is loaded. 
ZSH_THEME="junkfood" 

# Example aliases 
# alias zshconfig="mate ~/.zshrc" 
# alias ohmyzsh="mate ~/.oh-my-zsh" 

# Set to this to use case-sensitive completion 
# CASE_SENSITIVE="true" 

# Comment this out to disable bi-weekly auto-update checks 
# DISABLE_AUTO_UPDATE="true" 

# Uncomment to change how many often would you like to wait before auto-updates occur? (in days) 
# export UPDATE_ZSH_DAYS=13 

# Uncomment following line if you want to disable colors in ls 
# DISABLE_LS_COLORS="true" 

# Uncomment following line if you want to disable autosetting terminal title. 
# DISABLE_AUTO_TITLE="true" 

# Uncomment following line if you want red dots to be displayed while waiting for completion 
# COMPLETION_WAITING_DOTS="true" 

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) 
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ 
# Example format: plugins=(rails git textmate ruby lighthouse) 
plugins=(git) 

source $ZSH/oh-my-zsh.sh 

# Customize to your needs... 
export PATH=//opt/local/bin:/opt/local/sbin://usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/opt/local/bin:/opt/local/sbin:/Users/admin/.rvm/gems/ruby-1.9.3-p392/bin:/Users/admin/.rvm/gems/[email protected]/bin:/Users/admin/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/admin/.rvm/bin:/usr/local/mysql/bin:/Users/admin/.rvm/bin 

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting 
+9

try RVM przeładowania. Następnie spróbuj zdeinstalować gem sqlite3 i gem install sqlite3 –

+0

omfg !!! Zadziałało!!!! Dziękuję bardzo Shawn. Jeśli to możliwe, czy możesz wyjaśnić, dlaczego to zadziałało? –

+1

przeładowanie rvm wyszło ze stanu 1/2 1.8.7/1.9.3 (patrz odpowiedź Fredericka Cheunga). Nie byłem pewien, czy to uszkodzona instalacja sqlite3 gem więc miałem tylko ponownie zainstalować go (to, co się daje błędy.) –

Odpowiedz

8

Jeśli używasz RVM należy pozwolić mu dodać swoje ścieżki do $ PATH zamiast robić to sam. W rzeczywistości wygląda na to, że używasz w połowie rvm: podnosisz klejnoty zainstalowane dla rubika zainstalowanego na rvm, ale ponieważ ścieżki ruby ​​rvm znajdują się na końcu $ PATH, to ruby zbiera ruby ​​zainstalowane przez jakiś inny sposób (być może system pod warunkiem jeden)

w efekcie masz Ruby 1.8.7 próbuje załadować rozszerzenie skompilowany dla Ruby 1.9.3, która nie działa

13

podobne błędami formularz:

Symbol not found: {some-symbol} 
Referenced from: /path/to/some/file.bundle 
Expected in: flat namespace 

wydają się pojawiać na wiele klejnotów.

Podstawowy problem wydaje się być niekompatybilną biblioteką rozszerzeń C (w powyższym przykładzie, sqlite3_native.bundle). Wydaje się, że z jakiegoś powodu klej został zainstalowany dla starszej wersji ruby, a obecna wersja ruby ​​nie ma wyeksportowanej metody C, której szuka biblioteka rozszerzeń.

Istnieją 2 sposoby, aby rozwiązać ten

  • Odinstaluj & ponownie zainstalować pakiet (jak wskazano w komentarzu Shawn Balestracci za wyżej).W powyższym przypadku, można wywnioskować, że opakowanie jest sqlite3:

    gem uninstall {package}; gem install {package}

lub (mniej korzystne, ale może być przydatne, jeśli powyższy sposób nie jakiegoś powodu)

  • Usuń plik pakunku i ponownie zainstaluj pakiet. Patrząc na komunikat o błędzie: Informacja z: /Users/admin/.rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.bundle, musimy tylko:

    rm {path-to-bundle-file}; gem install {package}

+1

Usunięcie pliku pakunku i ponowne zainstalowanie pakietu pomogło mi. Wielkie dzięki! – levelone

+0

Zewnętrzny klejnot (ścieżka w gemfile), którego używałem został skompilowany z inną wersją ruby. Pomogło mi to zrozumieć. –

1

Zmiana kompilatora C pracował dla mnie. Otrzymałem jeden z tych błędów dotyczących klejnotu gpgme. Mój plik binarny gcc wskazywał na instalację gcc-4.9.2, którą zainstalowałem. Zmieniłem to, aby użyć natywnego kompilatora clang na moim Mac OS 10.10 (Yosemite), a serwer railsów działał dobrze po odinstalowaniu i ponownym zainstalowaniu gem.

1

Napotkałem ten błąd, gdy próbowałem uruchomić rails server, ale kiedy uruchomiłem bundle exec rails server nie było błędów.

0

Okazało się to być problem z mojej instalacji Ruby, a nie rzeczywista strona. To, co zrobiłem, żeby go rozwiązać:

Używam RVM. I tak pierwszy zaktualizowany Ruby od 2.1.1 do 2.2:

rvm install 2.2 
rvm use 2.2 

Teraz trzeba ponownie zainstalować wszystkie swoje skarby:

gem install bundler 
bundle install 

Następny zaktualizować nginx.conf:

passenger_root /usr/local/opt/passenger/libexec/src/ruby_supportlib/phusion_passenger/locations.ini; 
    passenger_ruby /Users/admin/.rvm/gems/ruby-2.2.4/wrappers/ruby; 

Twoje wartości mogą być inne.

Następnie uruchom Nginx. Błąd minął.

Powiązane problemy