Ubuntu mauvais interpréteur : permission non accordée bundle install
Résolu
Bonjour à tous,
Je viens de créer un dual boot windows/ubuntu sur ma machine dans le but de développer avec ruby on rails.
Tout d'abord, j'ai un problème avec l'installation de
Ensuite, j'ai eu un nouveau message d'erreur lorsque je faisais un
En effet, j'ai changé (parce que je l'ai vu dans un forum) le fichier
j'ai modifié la première ligne en :
Sachez que j'ai modifié toutes les permissions du chemin et je ne vois vraiment pas d'où vient le problème.
Même lorsque j'entre
Je ne comprends plus rien, je ne sais pas quoi faire... J'ai vu sur un autre forum que le problème pouvait venir de ma partition alors j'ai fais un
Voici le contenu de
Si vous avez une idée ou une solution, n'hésitez pas..
Merci d'avance
Je viens de créer un dual boot windows/ubuntu sur ma machine dans le but de développer avec ruby on rails.
Tout d'abord, j'ai un problème avec l'installation de
ruby. J'ai besoin de la version 2.6.5 (que j'ai installé avec
rbenv), mais lorsque je fais la commande
rbenv global 2.6.5,
rubyne change pas de version et reste à cette par défaut :
2.7.0. Cela ne fonctionne toujours pas, même avec la commande
rbenv local 2.6.5..
Ensuite, j'ai eu un nouveau message d'erreur lorsque je faisais un
bundle install:
marie@travail:~$ bundle install
bash: /usr/local/bin/bundle : /home/marie/.rbenv/versions : mauvais interpréteur: Permission non accordée
En effet, j'ai changé (parce que je l'ai vu dans un forum) le fichier
/usr/local/bin/bundle:
j'ai modifié la première ligne en :
#!/home/marie/.rbenv/versions
Sachez que j'ai modifié toutes les permissions du chemin et je ne vois vraiment pas d'où vient le problème.
Même lorsque j'entre
sudo bundle install, il me renvoie Permission non accordée;
Je ne comprends plus rien, je ne sais pas quoi faire... J'ai vu sur un autre forum que le problème pouvait venir de ma partition alors j'ai fais un
cat /etc/fstabet là, je suis complètement perdue....
Voici le contenu de
/etc/fstab:
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/nvme0n1p5 during installation UUID=5ab942be-c758-42c8-82a9-a6502c5e6404 / ext4 errors=remount-ro 0 1 # /boot/efi was on /dev/nvme0n1p1 during installation UUID=4CEB-EA65 /boot/efi vfat umask=0077 0 1 /swapfile none swap sw 0 0
Si vous avez une idée ou une solution, n'hésitez pas..
Merci d'avance
A voir également:
- /Bin/bash^m : mauvais interpréteur: aucun fichier ou dossier de ce type
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Dossier appdata - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
Bonjour,
Bon il y a plusieurs choses qui se mélangent dans ton message, donc on va essayer de démêler tout ça :-)
Pour commencer on essaye d'installer autant que possible ses logiciels via son gestionnaire de paquets (dans ton cas,
Pour installer
Pour apprendre à utiliser une commande, l'idéal est de lire au préalable sa page de
Comme l'indique cette page,
Peux-tu me reporter le résultat de ces différentes commande
Voyons à présent quelques pistes (à mon avis banc
/usr/local/bin/bundle
Je ne sais pas de quoi il s'agit, mais le chemin laisse penser que
Si tu estimes que tu as besoin de cet exécutable, il faut donc installer le bon paquet via
Sous Debian, il est fournit par le paquet
#!/home/marie/.rbenv/versions
Un script dont la première ligne commence par
En ce sens, le shebang que tu as indiqué dans ton fichier me paraît bizarre, on ne dirait pas qu'il s'agisse d'un chemin vers un interpréteur.
Le chemin
Voici quelques conseils et recommandations quand tu as une erreur de permission.
/etc/fstab
C'est une mauvaise piste qu'on t'a donné. Certes
Ce fichier définit comment est alimentée l'arborescence
Quoi qu'il en soit, tes partitions sont montées normalement, avec les options par défaut, et tu n'as donc aucune raison d'y toucher.
Pour plus de détails tu peux lire
Bonne chance
Bon il y a plusieurs choses qui se mélangent dans ton message, donc on va essayer de démêler tout ça :-)
Pour commencer on essaye d'installer autant que possible ses logiciels via son gestionnaire de paquets (dans ton cas,
apt) ou tout logiciel construit dessus (dont la logithèque Ubuntu).
Pour installer
rbenv:
sudo apt update sudo apt upgrade sudo apt install rbenv
Pour apprendre à utiliser une commande, l'idéal est de lire au préalable sa page de
manen tapant dans un terminal
man rbenv(les pages de man sont également disponibles en ligne, voici la page de man de
rbenv).
Comme l'indique cette page,
rbenvpermet d'installer et de basculer entre différents interpréteurs
ruby. Dans ton cas je présume qu'il faudrait donc lancer :
rbenv init echo 'eval "$(rbenv init -)"' >> ~/.bashrc rbenv install 2.4.5 rbenv global 2.4.5 ruby -v
Peux-tu me reporter le résultat de ces différentes commande
Voyons à présent quelques pistes (à mon avis banc
/usr/local/bin/bundle
Je ne sais pas de quoi il s'agit, mais le chemin laisse penser que
bundle(peu importe ce que c'est) n'a pas été installé via
aptdonc a priori ça n'est pas bon signe (ou il existe une manière plus propre de faire).
Si tu estimes que tu as besoin de cet exécutable, il faut donc installer le bon paquet via
apt. Pour le retrouver, tu peux utiliser
apt-file:
sudo apt install apt-file sudo apt-file update sudo apt-file search bundle | grep bin/bundle$
Sous Debian, il est fournit par le paquet
ruby-bundleret donc on lancerait :
sudo apt install ruby-bundler
#!/home/marie/.rbenv/versions
Un script dont la première ligne commence par
#!dispose d'un shebang, qui permet de dire quel interpréteur (e.g.,
bash,
python,
perl,
ruby,
php...) utiliser pour exécuter le script. Cet interpréteur doit être un exécutable, et il est traditionnellement localisé dans
/usr/bin(
/binpour bash). Donc par exemple, pour un script bash, le shebang serait
#!/usr/bin/bash.
En ce sens, le shebang que tu as indiqué dans ton fichier me paraît bizarre, on ne dirait pas qu'il s'agisse d'un chemin vers un interpréteur.
Le chemin
/home/marie/.rbenv/versionsexiste probablement, mais comme ce fichier n'a pas de droits en exécution (voir
ls -l /home/marie/.rbenv/versions), il est normal que ton shell te réponde "Permission non accordée".
Voici quelques conseils et recommandations quand tu as une erreur de permission.
- Commence par comprendre à quoi est due l'erreur :
- Quels sont les droits associés au fichier concerné -
ls -l
? - Quels est mon profil actuel -
whoami
? - À quels groupes appartient-il -
groups
?
- Quels sont les droits associés au fichier concerné -
- Ne relâche jamais les droits associés à ce fichier (ceux-ci sont généralement bien définis par défaut, et les relâcher pour ouvrir une faille de sécurité) - donc
chmod
etchown
sont généralement une très mauvaise approche. - Ne te réfugies pas derrière
sudo
par réflexe, du moins tant que tu n'as pas compris ce que tu fais : car dès que tu passes en administrateur, une erreur peu avoir des conséquences dramatiques.
/etc/fstab
C'est une mauvaise piste qu'on t'a donné. Certes
/etc/fstabpeut expliquer un problème de permissions, mais ici le problème vient du fait que tu tentes d'exécuter quelque chose qui n'est pas un exécutable.
Ce fichier définit comment est alimentée l'arborescence
/à partir des différents devices mis à disposition par ton système (ce qui inclue les partitions du disque dur) : pour chaque device est défini son point de montage (dossier vide) et ses options de montage (dont un éventuelle accès en lecture seul, avec l'option
ro). Dans la même veine il existe des options concernant l'exécution (à savoir, les options
execet
noexec).
Quoi qu'il en soit, tes partitions sont montées normalement, avec les options par défaut, et tu n'as donc aucune raison d'y toucher.
Pour plus de détails tu peux lire
man fstab.
Bonne chance
Bonjour,
J'ai réussi à résoudre tous mes problèmes. En fait, le dual boot que j'avais installé sur mon ordinateur avait un soucis. J'ai donc réinstallé ubuntu et tous les problèmes liés aux droits se sont résolus.
J'ai eu un autre problème avec la commande rbenv : je n'arrivais pas à changer la version de
Lorsque je faisais la commande
J'ai trouvé la solution sur ce forum : https://stackoverflow.com/questions/65817956/your-ruby-version-is-2-7-0-but-your-gemfile-specified-3-0-0
Merci pour votre réponse rapide et votre aide, vos explications m'ont vraiment été utiles.
J'ai réussi à résoudre tous mes problèmes. En fait, le dual boot que j'avais installé sur mon ordinateur avait un soucis. J'ai donc réinstallé ubuntu et tous les problèmes liés aux droits se sont résolus.
J'ai eu un autre problème avec la commande rbenv : je n'arrivais pas à changer la version de
ruby.
Lorsque je faisais la commande
rbenv global 2.6.5puis
ruby -v, la version de
rubyne changeait pas.
J'ai trouvé la solution sur ce forum : https://stackoverflow.com/questions/65817956/your-ruby-version-is-2-7-0-but-your-gemfile-specified-3-0-0
Merci pour votre réponse rapide et votre aide, vos explications m'ont vraiment été utiles.