Użyłem rvm do zainstalowania Rubiego 1.9.3. mimo że został pomyślnie zainstalowany, narzekał na libijaml. a teraz za każdym razem, gdy chcę zainstalować klejnot (powiedzmy rails), pojawia się to ostrzeżenie:
It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.
Używam Mac OS X 10.7 (Lion).
ruby-on-rails
ruby
macos
rvm
Pouya
źródło
źródło
brew doctor
. Czy zawiera problem z linkiem libijaml?rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
jak stwierdzono w oficjalnym homebrew-core Gtihub rozwiązany problemOdpowiedzi:
W moim przypadku
i
Rozwiązać problem.
W przypadku osób korzystających z Ubuntu upewnij się, że
libtool
jest zainstalowany przed wykonaniem powyższych kroków:Dla użytkowników macOS (z homebrew):
źródło
rvm package install libyaml
rvm pkg install libyaml
. Odrvm usage
:pkg :: Install a dependency package {readline,iconv,zlib,openssl}
.package
.rvm pkg install libyaml
zaleca ponowne zainstalowanie wszystkich rubinów zrvm reinstall all --force
. Może być przydatne, jeśli masz więcej niż jeden.rvm reinstall 1.9.3 --with-libyaml-dir=/home/rails/.rvm/usr
co sugerowano w serverfault.com/questions/442150/…dla ubuntu i rvm
pracował
źródło
Jeśli nie używasz rvm, ale raczej budujesz i instalujesz Ruby 1.9.3 od zera - na przykład zarządzasz swoimi wersjami Ruby za pomocą rbenv - musisz najpierw zainstalować libyaml. Pobierz go z http://pyyaml.org/ ; w tej chwili żądany plik to http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz . Otwórz archiwum tar i cd do powstałego folderu. Następnie:
Jesteś teraz gotowy do budowy rubinu. Pobierz ruby z http://ftp.ruby-lang.org/pub/ruby/ . Otwórz archiwum tar i cd do powstałego folderu. Teraz:
(Lub ewentualnie
sudo make install
, w zależności od tego, gdzie go umieścisz.) Jeśli używasz rbenv, będziesz wiedział, że zadziałało, jeśli przełączysz się narbenv global 1.9.3-p194
(lub jakkolwiek nazywa się twoja wersja) igem --version
działa bez ostrzeżenia. To zadziałało dla mnie w systemie Mac OS X 10.6.8. ( Aktualizacja : właśnie wypróbowałem to w systemie Mac OS X 10.8.1 i wydaje się, że tam też działa dobrze).źródło
gem --version
dźwięki są poprawne, ale może masz utrudnioną ścieżkę z powodu poprzedniego użycia rvm/usr/local
podczas konfigurowania yamla, a następnie skonfiguruj ruby z--with-opt-dir=/path/to/yaml/prefix --with-yaml --prefix=/path/to/ruby/prefix
To, co zadziałało dla mnie (w Snow Leopard).
źródło
W moim przypadku rozwiązaniem było dodanie
psych
klejnotu do pliku Gemfile.źródło
Miałem ten problem. libyaml się nie kompiluje. Okazuje się, że brakowało mi libtool.
To rozwiązało mój problem.
źródło
Jeśli zainstalowałeś Ruby na macOS z homebrew, wypróbuj to rozwiązanie .
rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
Zwróć uwagę, że spowoduje to usunięcie wszystkich zainstalowanych klejnotów. Najlepiej zapisz listę zainstalowanych klejnotów
gem list
przed uruchomieniem tego.źródło
gem list
to, co powoduje błąd w pierwszej kolejności (dla mnie).źródło
brew doctor
problemów rozwiązało to za mnie. Otrzymałem błąd bardzo podobny do błędu pytającego podczas próbygem install jekyll
. Wszystkie polecenia przez rvm również zawierały błędy. Podstawowym i nie tak oczywistym problemem jest to, że homebrew, zakładam, że sposób, w jaki rvm instaluje rzeczy, miał problemy. Niedawno zaktualizowałem do Mavericks w systemie Mac OS. W moim przypadku rozwiązanie wszystkichbrew doctor
problemów wyeliminowało każdy komunikat o błędzie. Teraz wszystko działa sprawnie.W końcu to naprawiłem. Problem polegał na tym, że mimo że zainstalowałem libyaml z naparem, nigdy nie został powiązany. Musiałem usunąć konfliktujący plik nagłówkowy, a następnie
brew link libyaml
.źródło
Instalowanie Rubiego z rvm dla Mac OSX, użyj autolibów do zainstalowania libyaml i najpierw pomaga odinstalowanie libyaml.
To zadziałało dla mnie:
źródło
Miałem ten sam problem (Lion 10.7.4) i naprawiłem go, aktualizując rvm, a następnie ponownie instalując ruby
1) zaktualizuj rvm https://rvm.io//rvm/install/
2) Następnie użyj rvm, aby ponownie zainstalować Ruby 1.9.3 (który został wcześniej zainstalowany z wcześniejszą wersją rvm)
źródło
Ponownie zainstalowałem Ruby 1.9.3 z obsługą libijaml:
Upewniłem się, że użyję 1.9.3 przed zainstalowaniem psych:
Zainstalowałem psych:
źródło
przeładuj plik .rvmrc (wyjście cd, wejście cd)
źródło
Żadna z tych odpowiedzi nie zadziałała dla mnie.
Znalazłem moją odpowiedź na https://github.com/sstephenson/ruby-build/issues/119 Jestem na Centos 6.3 Virtual Machine.
MUSISZ zainstalować libyaml przed zainstalowaniem Rubiego. JEŚLI JUŻ zainstalowałeś Rubiego, musisz pozbyć się plików przed ponowną kompilacją źródeł !!!
źródło
Zbudowałem pliki libyaml niezależnie od źródła i zainstalowałem je w / usr / local / lib. Rubin, który utworzył RVM, nadal ich nie widział i zamiast zepsuć plik makefile lub system LD_LIBRARY_PATH właśnie skopiowałem / usr / local / lib / libyaml * do ~ / .rvm / rubies / ruby-1.9.3-p327 / lib /
To uciszyło ostrzeżenie.
źródło
Oto, co zadziałało na Ubuntu:
- instalacja libyaml-dev (sudo apt-get install libyaml-dev)
- instalacja rvm + ruby 1.9.3
źródło
Wypróbowałem wszystkie te odpowiedzi i nadal nie byłem w stanie go uruchomić. Zainstalowałem libyaml z homebrew, a następnie zainstalowałem Ruby 1.9.3 i 2.0.0 z rvm. Za każdym razem skarżył się, że brakuje mi psych (libijskiego). Ale próba zainstalowania libyaml powiedziała mi, że jest już zainstalowany. Spłucz, powtórz. Urgh.
W końcu odinstalowałem libyaml. Następnie włączyłem autolibs w rvm , co (przynajmniej w OSX) pozwala rvm na bardziej bezpośrednie instalowanie i zarządzanie zależnościami. Teraz, kiedy zainstalowałem Rubiego, rvm był w stanie zainstalować libyaml i rozpoznać, że jest we właściwym miejscu.
Więc jeśli wypróbowałeś wszystkie inne opcje, spróbuj faktycznie usunąć libyaml, a następnie zainstalować Rubiny. Na podstawie komunikatów o błędach jest to intuicyjne, ale to w końcu zadziałało.
źródło
Miałem ten sam problem ( Cent OS 5.7 ), żadne z powyższych rozwiązań nie zadziałało.
Po kilku ponownych instalacjach zdałem sobie sprawę, że szuka yamla w wersji ruby
1.9.1
zamiast1.9.3
. Więc obniżyłem ocenęI działało 8D!
źródło
W CentOS 6.3 żadne z powyższych nie działało. Jednak zainstalowanie libyaml ze źródeł przed zainstalowaniem Rubiego rozwiązało problem.
i wtedy
źródło
używam
a także wystąpił następujący błąd podczas instalacji pakietu
Oto trzy różne sposoby rozwiązania tego błędu bez konieczności instalowania oprogramowania gem install psych
alter /etc/ld.so.conf
Napraw instalację rvm ruby 1.9.3 za pośrednictwem
źródło
Ja też zmagałem się z tymi samymi porażkami
rvm install ruby-2.0.0
przez wiele, WIELE godzin. Próbowałem różnych metod instalacji libijamla;wget source
,yum
irvm
. Wypróbowałem również wszystkie różne podejścia wymienione w podobnych wątkach. Ponieważ wypróbowałem wszystkie różne metody, miałem wiele instalacji i lokalizacji libijamlu.RVM jest w pełni zdolny do zainstalowania niezbędnych zależności w
~/.rvm
. Po prostu usunięcie plików libyaml z instalacji innej niż RVM rozwiązało ten problem:Pracuje!
źródło
Metoda instalacji NON-RVM ruby.
WYŁĄCZ rpmforge, edytując ten plik i ustawiając włączony = 0% sudo vi /etc/yum.repos.d/rpmforge.repo
Kluczem jest rozwój libijski.
Zaktualizuj ścieżkę i źródło .cshrc
Ustaw swój GEM_HOME w .cshrc i source
źródło
Jeśli budujesz Ruby ze źródeł (zbudowałem 1.9.3 w Fedorze 20), będziesz potrzebować tego przed wykonaniem konfiguracji / make, aby zbudować ruby:
(oprócz yum install libyaml.) Podobny do odpowiedzi Francisa używającej rpmforge powyżej.
źródło
Miałem ten błąd i zauważyłem, że mam różne wersje Ruby zainstalowane z HomeBrew, wraz z wieloma klejnotami, których już nie używałem. Więc zrobiłem pełne czyszczenie w ten sposób:
Jeśli nie używasz
Gemfile
, upewnij się, że wiesz, które klejnoty zainstalować ponownie.źródło
W moim przypadku wszystko, co potrzebne do zrobienia było
Teraz FWIW
gem list
obejmujeźródło
Spędziłem kilka godzin, próbując pozbyć się mojego błędu i żadna z odpowiedzi tutaj nie pasowała do mojego przypadku, więc pomyślałem, że opublikuję, jak go rozwiązałem ...
W moim przypadku, kiedy wpadłem
gem list | grep psych
, miałem następujący wynik:psych(default: 3.1.0, default: 3.0.2)
.Najwyraźniej od wersji 2.5.0 ruby zależy od nowszej wersji psych (3.1.0) i ustawienie obu jako domyślnych powodowało bałagan. Zwróć uwagę, że nigdy nie udało mi się dowiedzieć, dlaczego oba zostały ustawione jako domyślne - z tego powodu całkowicie wymazałem wersje rvm i ruby z mojego komputera.
Aby więc usunąć starszą wersję (3.0.2) z ustawiania jako domyślną, przejdź do
~/.rvm/gems/ruby-x.x.x@global/specifications/default
. Jeśli uruchomiszls | grep psych
, zwróci tutaj obie wersje klejnotu. Jeśli chcesz zachować wersję 3.1.0 jako domyślną, po prostu uruchom,mv psych-3.0.2.gemspec ../
a następnie spróbuj uruchomić,gemlist
aby upewnić się, że wyświetla teraz tylko jedną wersję jako domyślną ...tl; dr
cd /.rvm/gems/ruby-x.x.x@global/specifications/default
mv psych-3.0.2 ../
Mam nadzieję, że to komuś pomoże!
źródło
W Snow Leopardzie rozwiązanie Catharz nie zadziałało. To rozwiązanie jednak:
(Ponowna instalacja rvm dała mi ostrzeżenie, że clang nie ma opcji „--with-libyaml”, ale mimo to rozwiązała komunikat o błędzie).
źródło
To działało dla mnie przynajmniej na Ubuntu 10.04
$ sudo apt-get install libtool
$ rvm ponownie zainstaluj 1.9.3
źródło
W systemie Solaris:
dodać
/usr/local/lib
do ścieżki wyszukiwania bibliotek współdzielonych (patrz podręcznik)źródło
Kiedy zmieniłem wersję 64-bitową na 32-bitową w systemie Snow Leopard 10.6.8, ponownie zainstalowałem Ruby (używany rvm), aby działał na wersji 32-bitowej i napotkałem ten sam problem. Więc po prostu `` wyczyściłem '' wszystko, co wcześniej buforował rvm i rozwiązałem problemy. Mam nadzieję, że ta wskazówka może komuś pomóc.
BTW, jeśli nadal napotykasz ten problem, myślę, że możesz spróbować:
źródło