Ubuntu mal intérprete: permiso denegado bundle install
Resuelto
Hola a todos,
Acabo de crear un dual boot de Windows/Ubuntu en mi máquina con el objetivo de desarrollar con Ruby on Rails.
Primero que todo, tengo un problema con la instalación de
Luego, recibí un nuevo mensaje de error cuando hacía un
De hecho, cambié (porque lo vi en un foro) el archivo
modifiqué la primera línea a:
Sepan que he modificado todos los permisos del camino y realmente no veo de dónde viene el problema.
Incluso cuando ingreso
No entiendo nada, no sé qué hacer... He visto en otro foro que el problema podría venir de mi partición, así que hice un
Aquí está el contenido de
Si tienen alguna idea o solución, no duden en decírmelo..
Gracias de antemano
Acabo de crear un dual boot de Windows/Ubuntu en mi máquina con el objetivo de desarrollar con Ruby on Rails.
Primero que todo, tengo un problema con la instalación de
ruby. Necesito la versión 2.6.5 (que instalé con
rbenv), pero cuando ejecuto el comando
rbenv global 2.6.5,
rubyno cambia de versión y se queda en la predeterminada:
2.7.0. Esto sigue sin funcionar, incluso con el comando
rbenv local 2.6.5..
Luego, recibí un nuevo mensaje de error cuando hacía un
bundle install:
marie@travail:~$ bundle install
bash: /usr/local/bin/bundle : /home/marie/.rbenv/versions : mal intérprete: Permiso no concedido
De hecho, cambié (porque lo vi en un foro) el archivo
/usr/local/bin/bundle:
modifiqué la primera línea a:
#!/home/marie/.rbenv/versions
Sepan que he modificado todos los permisos del camino y realmente no veo de dónde viene el problema.
Incluso cuando ingreso
sudo bundle install, me responde Permiso no concedido;
No entiendo nada, no sé qué hacer... He visto en otro foro que el problema podría venir de mi partición, así que hice un
cat /etc/fstaby ahí estoy completamente perdido....
Aquí está el contenido de
/etc/fstab:
# /etc/fstab: información estática del sistema de archivos. # # Usa 'blkid' para imprimir el identificador único universal para un # dispositivo; esto puede ser usado con UUID= como una forma más robusta de nombrar dispositivos # que funciona incluso si se añaden y quitan discos. Ver fstab(5). # # <archivo del sistema> <punto de montaje> <tipo> <opciones> <dump> <pass> # / estaba en /dev/nvme0n1p5 durante la instalación UUID=5ab942be-c758-42c8-82a9-a6502c5e6404 / ext4 errors=remount-ro 0 1 # /boot/efi estaba en /dev/nvme0n1p1 durante la instalación UUID=4CEB-EA65 /boot/efi vfat umask=0077 0 1 /swapfile none swap sw 0 0
Si tienen alguna idea o solución, no duden en decírmelo..
Gracias de antemano
2 respuestas
-
Hola,
Bueno, hay varias cosas que se mezclan en tu mensaje, así que intentemos desentrañar todo eso :-)
Para empezar, tratamos de instalar tanto como sea posible los programas a través de su gestor de paquetes (en tu caso,apt
) o cualquier programa construido sobre esto (como la tienda de software de Ubuntu).
Para instalarrbenv
:
sudo apt update sudo apt upgrade sudo apt install rbenv
Para aprender a usar un comando, lo ideal es leer previamente su página deman
escribiendo en una terminalman rbenv
(las páginas de man también están disponibles en línea, aquí está la página de man derbenv
).
Como indica esta página,rbenv
permite instalar y alternar entre diferentes intérpretes deruby
. En tu caso, supongo que deberías ejecutar:
rbenv init echo 'eval "$(rbenv init -)"' >> ~/.bashrc rbenv install 2.4.5 rbenv global 2.4.5 ruby -v
¿Puedes reportarme el resultado de estos diferentes comandos?
Veamos ahora algunas pistas (en mi opinión, cuestionables)
/usr/local/bin/bundle
No sé de qué se trata, pero el camino sugiere quebundle
(no importa qué sea) no ha sido instalado a través deapt
, así que, en principio, eso no es una buena señal (o hay una manera más limpia de hacerlo).
Si consideras que necesitas este ejecutable, debes instalar el paquete correcto a través deapt
. Para encontrarlo, puedes usarapt-file
:
sudo apt install apt-file sudo apt-file update sudo apt-file search bundle | grep bin/bundle$
En Debian, se proporciona a través del paqueteruby-bundler
, así que ejecutaríamos:
sudo apt install ruby-bundler
#!/home/marie/.rbenv/versions
Un script que comienza con#!
tiene un shebang, que indica qué intérprete (por ejemplo,bash
,python
,perl
,ruby
,php
...) usar para ejecutar el script. Este intérprete debe ser un ejecutable, y tradicionalmente se encuentra en/usr/bin
(/bin
para bash). Así que, por ejemplo, para un script bash, el shebang sería#!/usr/bin/bash
.
En este sentido, el shebang que indicaste en tu archivo me parece extraño, no parece ser un camino hacia un intérprete.
El camino/home/marie/.rbenv/versions
probablemente exista, pero como este archivo no tiene derechos de ejecución (verls -l /home/marie/.rbenv/versions
), es normal que tu shell te responda "Permiso no concedido".
Aquí tienes algunos consejos y recomendaciones cuando tienes un error de permisos.- Empieza por entender a qué se debe el error:
- ¿Cuáles son los derechos asociados al archivo en cuestión -
ls -l
? - ¿Cuál es mi perfil actual -
whoami
? - ¿A qué grupos pertenece -
groups
?
- ¿Cuáles son los derechos asociados al archivo en cuestión -
- Nunca relajes los derechos asociados a este archivo (normalmente, están bien definidos por defecto, y relajar los derechos puede abrir una brecha de seguridad) - por lo tanto,
chmod
ychown
suelen ser un enfoque muy malo. - No te refugies en
sudo
por defecto, al menos hasta que entiendas lo que estás haciendo: porque en cuanto pasas a ser administrador, un error puede tener consecuencias dramáticas.
/etc/fstab
Es una mala pista que te han dado. Ciertamente,/etc/fstab
puede explicar un problema de permisos, pero aquí el problema radica en que intentas ejecutar algo que no es un ejecutable.
Este archivo define cómo se alimenta la jerarquía/
a partir de los diferentes dispositivos disponibles en tu sistema (lo que incluye las particiones del disco duro): para cada dispositivo se define su punto de montaje (una carpeta vacía) y sus opciones de montaje (que pueden incluir acceso de solo lectura, con la opciónro
). De manera similar, existen opciones sobre la ejecución (es decir, las opcionesexec
ynoexec
).
De todos modos, tus particiones están montadas normalmente, con las opciones predeterminadas, así que no tienes ninguna razón para tocarlas.
Para más detalles, puedes leerman fstab
.
¡Buena suerte! - Empieza por entender a qué se debe el error:
-
Hola,
He conseguido resolver todos mis problemas. De hecho, el dual boot que había instalado en mi computadora tenía un problema. Así que reinstalé Ubuntu y todos los problemas relacionados con los permisos se resolvieron.
Tuve otro problema con el comando rbenv: no podía cambiar la versión deruby
.
Cuando hacía el comandorbenv global 2.6.5
y luegoruby -v
, la versión deruby
no cambiaba.
Encontré la solución en este foro: https://stackoverflow.com/questions/65817956/your-ruby-version-is-2-7-0-but-your-gemfile-specified-3-0-0
Gracias por su rápida respuesta y su ayuda, sus explicaciones realmente me han sido útiles.