0 votos

No se puede eliminar un archivo de solo lectura en Mac después de deshabilitar SIP.

Quiero tener diferentes versiones de ruby, estoy usando asdf para eso. Así que he instalado algunas versiones diferentes de ruby, pero no puedo cambiarlas, porque tal vez tengo /usr/bin/ruby

d@mac ~ % asdf list
ruby
  2.5.1
  2.6.2
sd@mac ~ % asdf global ruby 2.5.1
sd@mac ~ % ruby -v
ruby 2.6.8p205 (2021-07-07 revisión 67951) [universal.arm64e-darwin21]
sd@mac ~ % which ruby
/usr/bin/ruby
sd@mac ~ % whereis ruby
ruby: /usr/bin/ruby /usr/share/man/man1/ruby.1
sd@mac ~ % asdf reshim ruby
sd@mac ~ % ruby -v
ruby 2.6.8p205 (2021-07-07 revisión 67951) [universal.arm64e-darwin21]
sd@mac ~ % asdf exec ruby -v
ruby 2.5.1p57 (2018-03-29 revisión 63029) [-darwin21]

Tengo un problema al intentar eliminar un archivo de solo lectura. He deshabilitado SIP con csrutil, pero aún hay un problema:

sd@mac ~ % ls -la /usr/bin | grep ruby
-r-xr-xr-x     1 root   wheel    167888 26 mar 09:21 ruby
sd@mac ~ % sudo rm -rf /usr/bin/ruby
Contraseña:
rm: /usr/bin/ruby: sistema de archivos de solo lectura
sd@mac ~ % sudo chmod 777 /usr/bin/ruby
chmod: No se puede cambiar el modo de archivo en /usr/bin/ruby: sistema de archivos de solo lectura

¿Cómo puedo eliminar /usr/bin/ruby para cambiar las versiones de ruby?

1voto

enterprised1 Puntos 56

He resuelto el problema con la variable de entorno ASDF_RUBY_VERSION

ruby -v 
=> ruby 3.2.2

ASDF_RUBY_VERSION=3.2.1 ruby -v 
=> ruby 3.2.1

No es un problema para mí, porque tengo un archivo .envrc para cada proyecto, y estoy utilizando la utilidad direnv para definir automáticamente las variables de entorno

0voto

benwiggy Puntos 8

La respuesta real es que no puedes eliminar la versión de Ruby que (todavía) viene con macOS.

Debes utilizar otros métodos para asegurarte de que se esté utilizando la versión deseada.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X