No puedo instalar y ejecutar fakes3
gem en El Capitan Beta 5.
Lo intenté:
sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
Luego intenté hacerlo a la manera de los cacaopodos. Funcionó para cocoapods pero no para falsificaciones3.
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
para instalar Ruby, o cambiar gemas. En su lugar, use rbenv o RVM para instalar y administrar Ruby. Lea y siga las instrucciones en sus respectivos sitios. Y, en cualquier caso, después de la instalación, no lo use asudo
menos que entienda lo que está cambiando y por qué querría hacerlo.Respuestas:
Descargo de responsabilidad: @theTinMan y otros desarrolladores de Ruby a menudo señalan que no deben usarse
sudo
al instalar gemas y señalan cosas como RVM . Eso es absolutamente cierto cuando se hace el desarrollo de Ruby. Adelante y úsalo.Sin embargo, muchos de nosotros simplemente queremos una binaria que pasa a ser distribuido como una joya (por ejemplo
fakes3
,cocoapods
,xcpretty
...). Definitivamente no quiero molestarme en administrar un rubí separado. Aquí están tus opciones más rápidas:Opción 1: sigue usando sudo
El uso
sudo
probablemente esté bien si desea que estas herramientas se instalen globalmente.El problema es que estos binarios están instalados
/usr/bin
, lo que está fuera de los límites desde El Capitán. Sin embargo, puede instalarlos en su/usr/local/bin
lugar. Ahí es donde Homebrew instala sus cosas, por lo que probablemente ya exista.Se instalarán gemas
/usr/local/bin
y todos los usuarios de su sistema pueden usarlas si están en su RUTA .Opción 2: instalar en su directorio de inicio (sin sudo)
Lo siguiente instalará gemas
~/.gem
y colocará binarios~/bin
(que luego debe agregar a suPATH
).Convertirlo en el predeterminado
De cualquier manera, puede agregar estos parámetros a su
~/.gemrc
para no tener que recordarlos:es decir
echo "gem: -n/usr/local/bin" >> ~/.gemrc
o
es decir
echo "gem: --user-install -n~/bin" >> ~/.gemrc
( Sugerencia: también puede agregar
--no-document
para omitir la generación de documentación del desarrollador de Ruby).fuente
gem install
resolvió el problema..gemrc
debería tenergem: -n /usr/local/bin
(necesita un espacio después de -n).En mi caso, tuve que reinstalar Ruby usando Brew . Eso parece haber resuelto el problema, ya que puedo instalar gemas nuevamente.
Después de esto, debe cerrar sesión y volver a iniciarla, ya sea gráficamente o simplemente reiniciando su terminal.
fuente
brew install ruby
pone allí, incluso si ya está allí. Presumiblemente, el ruby en / usr / local está configurado para instalar sus gemas en una ubicación que no necesita acceso a la raíz (lo que tiene mucho sentido en realidad).gem install
aún fallará.rehash
para asegurarse de que su shell se dé cuenta de que hay una nuevaruby
antes$PATH
. Incluso esto no será necesario en la situación en la que aún no seruby
haya ejecutado en la sesión de shell.Esto se debe a la nueva función de seguridad de OS X "El Capitan". Intente agregar en
--user-install
lugar de usar sudo:Por ejemplo, si desea instalar fake3 simplemente use:
fuente
Prueba esto. Definitivamente funcionará.
fuente
Debe actualizar Xcode a la más nueva (v7.0.1) y todo funcionará normalmente.
Si después de instalar el Xcode más nuevo y aún no funciona, intente instalar la gema de esta manera:
Por ejemplo:
fuente
Parece que cuando se actualiza a OS X El Capitain, el directorio / usr / local se modifica de varias maneras:
[Editar] También hay una cosa preliminar que hacer: actualizar Xcode ...
Solución para el n. ° 1:
Esto corregirá los permisos en el
/usr/local
directorio que luego ayudará a que ambosgem install
y losbrew install|link|...
comandos funcionen correctamente.Solución al # 2:
Problemas basados en Ruby
Asegúrate de haber corregido los permisos del
/usr/local
directorio (ver # 1 arriba)Primero intente reinstalar su gema usando:
Tenga en cuenta que instalará la última versión de la gema especificada.
Si no desea enfrentar problemas de compatibilidad con versiones anteriores, le sugiero que primero determine qué versión de qué gema desea obtener y luego vuelva a instalarla con el
-v version
. Vea un ejemplo a continuación para asegurarse de que el sistema no obtenga una nueva versión de capistrano.Problemas basados en cerveza
Actualiza brew y mejora tus fórmulas
Es posible que también deba volver a vincular algunos de ellos manualmente
fuente
Como se ha dicho, el problema proviene de una función de seguridad de Mac OSX desde "El Capitan".
Usando el sistema predeterminado Ruby, el proceso de instalación ocurre en el
/Library/Ruby/Gems/2.0.0
directorio que no está disponible para el usuario y da el error.Puede echar un vistazo a los parámetros de sus entornos Ruby con el comando
Hay un DIRECTORIO DE INSTALACIÓN y un DIRECTORIO DE INSTALACIÓN DEL USUARIO. Para usar el directorio de instalación del usuario en lugar del directorio de instalación predeterminado, puede usar el
--user-install
parámetro en su lugar, yasudo
que nunca es una forma recomendada de hacerlo.Ya no debería haber ningún problema de derechos en el proceso. Las gemas se instalan en el directorio de usuarios:
~/.gem/Ruby/2.0.0/bin
Pero para que las gemas instaladas estén disponibles, este directorio debe estar disponible en su ruta. Según el FAQ de Ruby , puede añadir la siguiente línea a su
~/.bash_profile
o~/.bashrc
Luego cierre y recargue su terminal o recargue su
.bash_profile
o.bashrc
(. ~/.bash_profile
)fuente
Esta es la solución que he usado:
Nota: esta solución es para la brújula como la escribí en otra pregunta SO, pero he usado el mismo proceso para restaurar la funcionalidad a todos los procesos de la terminal, obviamente las gemas que está instalando son diferentes, pero el proceso es el mismo.
Tuve el mismo problema. Se debe a que Apple implementó la Protección de integridad del sistema (SIP). Primero debes deshabilitar eso ...
Reiniciar en modo de recuperación:
Reinicie y mantenga presionadas las teclas Comando + R hasta que vea el logotipo de Apple.
Una vez arrancado, seleccione Utilidades> Terminal en la barra superior.
tipo:
csrutil disable
luego escriba:
reboot
Una vez reiniciado
Abra la copia de seguridad del terminal e ingrese los comandos:
sudo gem uninstall bundler
sudo gem install bundler
sudo gem install compass
sudo gem install sass
sudo gem update --system
Las gemas individuales que fallaron necesitan ser reparadas, así que para cada una haga lo siguiente:
En mi máquina, esta era la primera dependencia que no funcionaba, así que la enumeré :
sudo gem pristine ffi --version 1.9.3
Continúe con la lista de gemas que deben repararse. En total, está buscando unos 10 minutos para solucionarlo, pero tendrá comandos de terminal para que funcione la brújula.
Captura de pantalla
fuente
Si la gema que está intentando instalar requiere bibliotecas xml, intente esto:
Específicamente, me encontré con un problema al instalar la gema nokogiri v 1.6.8 en OS X El Capitan
y esto finalmente funcionó para mí:
Para asegurarse de tener instalado libxml2 y libxslt, puede hacer lo siguiente:
y luego verifique para asegurarse de que tiene instaladas las herramientas de línea de comando xcode:
debería devolver este error:
fuente
Reinstalar RVM funcionó para mí, pero tuve que reinstalar todas mis gemas después:
fuente
Me encontré con el mismo problema después de instalar El Capitan, traté de instalar sass y brújula en un proyecto de Symfony, el siguiente comando devolvió el siguiente error:
$ sudo gem gem compass
ERROR: Error al instalar la brújula: ERROR: Error al construir la extensión nativa de la gema.
buscando ffi.h ... /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:434:in `try_do ': El compilador no pudo generar un Archivo ejecutable. (Error de tiempo de ejecución)
Entonces intenté instalar sass con: $ sudo gem install sass
Recibí el mismo mensaje de error, después de buscar en Google logré instalar sass usando el siguiente comando:
$ sudo gem install -n / usr / local / bin sass
Lo anterior funcionó para mí con la instalación de sass pero no funcionó para instalar la brújula. Leí que alguien en algún lugar había abierto una instancia de xcode, luego la cerró de nuevo y luego ejecutó con éxito el mismo comando, después de lo cual funcionó para ellos. Intenté abrir xcode pero me apareció un mensaje que decía que la versión de xcode instalada no era compatible con El Capitan. Entonces actualicé xcode desde la tienda de aplicaciones, volví a ejecutar el siguiente comando que esta vez se ejecutó correctamente:
$ sudo gem install -n / usr / local / bin compass
Entonces pude ejecutar $ compass init
Ahora tengo todas mis gemas funcionando y puedo proceder a construir algunas cosas encantadoras :)
fuente
rm -rf ./vendor
Luego tuve que correr debundle install
nuevo.fuente
No me gusta instalar cosas con sudo. una vez que comienzas con sudo no puedes parar ...
intente otorgar permisos al directorio de gemas.
fuente
Eso devolverá los permisos (Homebrew instala ruby allí)
fuente