Nie mogę zainstalować i uruchomić fakes3
klejnotu na El Capitan Beta 5.
Próbowałem:
sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
Potem spróbowałem zrobić to w sposób kokosowy. Działa w przypadku kokosów, ale nie w przypadku podróbek3.
mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
sudo
do instalowania Ruby ani zmieniania klejnotów. Zamiast tego użyj rbenv lub RVM, aby zainstalować Ruby i zarządzać nim. Przeczytaj i postępuj zgodnie ze wskazówkami na odpowiednich stronach. W obu przypadkach po instalacji nie używaj,sudo
chyba że rozumiesz, co się zmienia i dlaczego chcesz to zrobić.Odpowiedzi:
Oświadczenie: @tinMan i inni programiści Ruby często zwracają uwagę, aby nie używać ich
sudo
podczas instalowania klejnotów i wskazują na rzeczy takie jak RVM . Jest to absolutnie prawdziwe podczas tworzenia języka Ruby. Śmiało i użyj tego.Jednak wielu z nas po prostu niektóre binarny, że dzieje się dystrybuowany jako gem (np
fakes3
,cocoapods
,xcpretty
...). Zdecydowanie nie chcę zawracać sobie głowy zarządzaniem oddzielnym rubinem. Oto twoje szybsze opcje:Opcja 1: Kontynuuj używanie sudo
Używanie
sudo
jest prawdopodobnie w porządku, jeśli chcesz, aby te narzędzia były instalowane globalnie.Problem polega na tym, że te pliki binarne są zainstalowane
/usr/bin
, co jest niedostępne od czasu El Capitan. Możesz jednak zainstalować je/usr/local/bin
zamiast tego. Tam Homebrew instaluje swoje rzeczy, więc prawdopodobnie już istnieją.Klejnoty zostaną zainstalowane
/usr/local/bin
i każdy użytkownik w twoim systemie będzie mógł z nich korzystać, jeśli znajduje się w ŚCIEŻCE .Opcja 2: Zainstaluj w swoim katalogu domowym (bez sudo)
Poniżej zainstaluje klejnoty
~/.gem
i umieści pliki binarne w~/bin
(które należy następnie dodać do swojegoPATH
).Ustaw jako domyślny
Tak czy inaczej, możesz dodać te parametry do swoich
~/.gemrc
, abyś nie musiał ich pamiętać:to znaczy
echo "gem: -n/usr/local/bin" >> ~/.gemrc
lub
to znaczy
echo "gem: --user-install -n~/bin" >> ~/.gemrc
( Wskazówka: Możesz także wrzucić,
--no-document
aby pominąć generowanie dokumentacji dla programistów Ruby.)źródło
gem install
rozwiązało problem..gemrc
Powinien miećgem: -n /usr/local/bin
(potrzeba spację po -n).W moim przypadku musiałem ponownie zainstalować Ruby przy użyciu Brew . Wydaje się, że to rozwiązało problem, ponieważ mogę ponownie zainstalować klejnoty.
Następnie musisz się wylogować i zalogować ponownie, graficznie lub po prostu ponownie uruchamiając terminal.
źródło
brew install ruby
to, że go tam umieszcza, nawet jeśli już tam jest. Przypuszczalnie ruby w / usr / local jest skonfigurowany do instalowania swoich klejnotów w miejscu, które nie wymaga dostępu do roota (co w rzeczywistości ma sens).gem install
nadal się nie powiedzie.rehash
, aby upewnić się, że zdaje sobie sprawę, że powłoki noweruby
wcześniej na$PATH
. Nawet to nie będzie konieczne w sytuacji, gdyruby
jeszcze nie uruchomiłeś się w sesji powłoki.Wynika to z nowej funkcji bezpieczeństwa OS X „El Capitan”. Spróbuj dodać
--user-install
zamiast używać sudo:Na przykład, jeśli chcesz zainstalować Fake3, po prostu użyj:
źródło
Spróbuj tego. To na pewno zadziała.
źródło
Musisz zaktualizować Xcode do najnowszego (v7.0.1) i wszystko będzie działać normalnie.
Jeśli po zainstalowaniu najnowszego Xcode i nadal nie działa spróbuj zainstalować klejnot w ten sposób:
Na przykład:
źródło
Wygląda na to, że podczas aktualizacji do OS X El Capitain katalog / usr / local jest modyfikowany na wiele sposobów:
[Edytuj] Jest jeszcze jedna rzecz do zrobienia: uaktualnij Xcode ...
Rozwiązanie dla nr 1:
To naprawi uprawnienia do
/usr/local
katalogu, co pomoże w poprawnym działaniu obu poleceńgem install
ibrew install|link|...
poleceń.Rozwiązanie nr 2:
Problemy oparte na Ruby
Upewnij się, że naprawiłeś uprawnienia do
/usr/local
katalogu (patrz # 1 powyżej)Najpierw spróbuj ponownie zainstalować klejnot, używając:
Pamiętaj, że zainstaluje najnowszą wersję określonego klejnotu.
Jeśli nie chcesz zmierzyć się z problemami z kompatybilnością wsteczną, sugeruję najpierw ustalić, którą wersję klejnotu chcesz uzyskać, a następnie zainstalować ją ponownie za pomocą
-v version
. Zobacz przykład poniżej, aby upewnić się, że system nie otrzyma nowej wersji capistrano.Problemy związane z parzeniem
Zaktualizuj napar i ulepsz swoje formuły
Konieczne może być także ponowne połączenie niektórych z nich ręcznie
źródło
Jak już powiedziano, problem pochodzi z funkcji bezpieczeństwa Mac OSX od „El Capitan”.
Używając domyślnego systemu Ruby, proces instalacji odbywa się w
/Library/Ruby/Gems/2.0.0
katalogu, który nie jest dostępny dla użytkownika i powoduje błąd.Możesz sprawdzić parametry środowiska Ruby za pomocą polecenia
Istnieje KATALOG INSTALACJI i KATALOG INSTALACJI UŻYTKOWNIKA. Aby użyć katalogu instalacyjnego użytkownika zamiast domyślnego katalogu instalacyjnego, możesz
--user-install
zamiast tego użyć parametru jako using,sudo
który nigdy nie jest zalecanym sposobem.W tym procesie nie powinno być już żadnych problemów z prawami. Klejnoty są następnie instalowane w katalogu użytkownika:
~/.gem/Ruby/2.0.0/bin
Ale aby udostępnić zainstalowane klejnoty, ten katalog powinien być dostępny na twojej ścieżce. Zgodnie z często zadawanymi pytaniami Ruby , możesz dodać następujący wiersz do swojego
~/.bash_profile
lub~/.bashrc
Następnie zamknij i ponownie załaduj terminal lub ponownie załaduj swój
.bash_profile
lub.bashrc
(. ~/.bash_profile
)źródło
Oto rozwiązanie, którego użyłem:
Uwaga: ta poprawka dotyczy kompasu, ponieważ napisałem ją na inne pytanie SO, ale użyłem tego samego procesu do przywrócenia funkcjonalności wszystkich procesów terminalowych, oczywiście instalowane klejnoty są różne, ale proces jest taki sam.
Miałem ten sam problem. Wynika to z wdrożenia przez Apple System Integrity Protection (SIP). Musisz najpierw wyłączyć ...
Uruchom ponownie w trybie odzyskiwania:
Uruchom ponownie i przytrzymaj Command + R, aż zobaczysz logo jabłka.
Po uruchomieniu wybierz Narzędzia> Terminal z górnego paska.
rodzaj:
csrutil disable
następnie wpisz:
reboot
Po ponownym uruchomieniu
Otwórz terminal ponownie i wprowadź polecenia:
sudo gem uninstall bundler
sudo gem install bundler
sudo gem install compass
sudo gem install sass
sudo gem update --system
Poszczególne klejnoty, które zawiodły, muszą zostać naprawione, więc dla każdego z nich wykonaj następujące czynności:
Na moim komputerze była to pierwsza zależność, która nie działała, więc wymieniłem ją :
sudo gem pristine ffi --version 1.9.3
Przejrzyj listę klejnotów, które wymagają naprawy. W sumie patrzysz na około 10 minut, aby to naprawić, ale będziesz mieć terminalowe polecenia do pracy kompasu.
Zrzut ekranu
źródło
Jeśli klej, który próbujesz zainstalować, wymaga bibliotek xml, spróbuj tego:
W szczególności napotkałem problem podczas instalacji klejnotu nokogiri w wersji 1.6.8 w systemie OS X El Capitan
i to w końcu zadziałało dla mnie:
Aby upewnić się, że masz zainstalowane libxml2 i libxslt, możesz:
a następnie sprawdź, czy masz zainstalowane narzędzia wiersza polecenia xcode:
powinien zwrócić ten błąd:
źródło
Ponowna instalacja RVM działała dla mnie, ale później musiałem ponownie zainstalować wszystkie moje klejnoty:
źródło
Napotkałem ten sam problem po zainstalowaniu El Capitan, próbowałem zainstalować sass i kompas w projekcie symfony, następujące polecenie zwróciło następujący błąd:
$ sudo gem install kompas
BŁĄD: Błąd instalacji kompasu: BŁĄD: Nie można zbudować rozszerzenia natywnego gem.
sprawdzanie ffi.h ... /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:434:in `try_do ': Kompilator nie wygenerował Plik wykonywalny. (RuntimeError)
Więc wtedy próbowałem zainstalować sass za pomocą: $ sudo gem install sass
Dostałem ten sam komunikat o błędzie, po pewnym googlowaniu udało mi się zainstalować sass za pomocą następującego polecenia:
$ sudo gem install -n / usr / local / bin sass
Powyższe działało dla mnie przy instalacji sass, ale nie działało przy instalacji kompasu. Przeczytałem, że ktoś gdzieś otworzył instancję xcode, a następnie zamknął ją ponownie, a następnie pomyślnie uruchomił to samo polecenie, po którym zadziałało. Próbowałem otworzyć xcode, ale pojawił się komunikat z informacją, że zainstalowana wersja xcode nie jest kompatybilna z El Capitan. Następnie zaktualizowałem xcode ze sklepu z aplikacjami, ponownie uruchomiłem następujące polecenie, które tym razem zostało pomyślnie uruchomione:
$ sudo gem install -n / usr / local / bin compass
Byłem wtedy w stanie uruchomić $ compass init
Mam teraz wszystkie moje klejnoty i mogę zacząć budować piękne sassowe rzeczy :)
źródło
Musiałem
rm -rf ./vendor
wtedybundle install
znów biec .źródło
Nie lubię instalować rzeczy z sudo. kiedy zaczniesz od sudo, nie możesz przestać ...
spróbuj dać uprawnienia do katalogu Gems.
źródło
To przywróci uprawnienia (Homebrew instaluje tam ruby)
źródło