Lorsque j'essaye de courir, rails console
j'obtiens cette erreur:
/Users/TuzsNewMacBook/.rvm/gems/ruby-2.3.7/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require':
dlopen(/Users/TuzsNewMacBook/.rvm/rubies/ruby-2.3.7/lib/ruby/2.3.0/x86_64-darwin18/readline.bundle, 9):
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
Une recherche rapide m'a conduit à cet article et j'ai essayé plusieurs choses:
brew reinstall postgresql
(c'est bien la DB pour ce projet)
et
cd /usr/local/opt/readline/lib
ln libreadline.8.0.dylib libreadline.6.2.dylib
(ma version de readline est 8)
et
brew link readline --force
Mais aucun de ceux-ci ne l'a résolu.
J'ai récemment ajouté pry-coolline
, guard
et des guard-livereload
gemmes à mon projet si cela fait une différence (la console des rails est bien chargée avant celles-ci). J'utilise les derniers macos.
(Mise à jour) J'utilise des leviers comme console de rails, si cela fait une différence.
De l'aide? Merci.
ruby-on-rails
libreadline
Jonathan Tuzman
la source
la source
brew reinstall readline
Réponses:
l'erreur semble se produire lors de la recherche
/usr/local/opt/readline/lib/libreadline.7.dylib
.Avez-vous essayé de créer un lien symbolique?
Donc quelque chose comme:
Je viens d'essayer cela sur macOS Mojave, ruby 2.5.3p105 et Rails 5.2.2 et j'ai fonctionné.
la source
ln
ne sont pas des choses dont je sais quoi que ce soit: /cd /usr/local/opt/readline/lib
brew link readline --force
créer les liens dans/usr/local/opt/readline/lib
.brew link readline --force
Candland, qui a fonctionné pour moiLa réinstallation de ma version Ruby semble avoir résolu le problème:
la source
rbenv install 2.5.1
travaillé pour moi dans mon contexte. Cela a mal tourné après avoir courusudo xcode-select -s /Library/Developer/CommandLineTools
pour résoudre un problème que je rencontrais ailleurs. fwiwbundle install
réinstaller les gemmes avec des extensions natives.peux-tu essayer
vous êtes sur la bonne voie, mais il semble que rails cherche libreadline.7.dylib et libreadline.7.dylib n'est pas là dans le dossier.
la source
Oui, la meilleure réponse est de réinstaller.
Vous pouvez obtenir la version facilement en tapant:
Avec
rbenv
, la commande est ie:avec
rvm
:la source
rbenv install <ruby-version>
échoué avec "rake" des conflits de rake avec l'exécutable installé du conflit redis-rack . Je devais courirrbenv uninstall <ruby-version> && rbenv install <ruby-version>
Une solution très simple qui n'implique pas la reconstruction de votre gemset RVM OU des bibliothèques de liens symboliques.
Ajoutez à votre Gemfile:
Si vous faites des groupes de bundler
Puis cours
Faites-moi savoir si cela ne fonctionne pas.
la source
Le plus souvent dans les applications Ruby, cela est causé par des gemmes qui ont des extensions (les gemmes disant "Construire des extensions natives .."), qui sont construites en utilisant une version spécifique de, dans ce cas
readline
,.En gros, il existe deux solutions:
Soit vous pouvez créer un lien symbolique vers la version 8 du gem, vers la version manquante. Cela fonctionnera dans de nombreux cas, mais si la rétrocompatibilité est rompue, ce ne sera pas le cas.
Ou, si la gemme supporte réellement la version 8, vous pouvez réinstaller cette gemme spécifique, ou la «vierges» en exécutant
gem pristine --all
.EDIT : Dans le cadre de votre "ce que j'ai essayé", la réinstallation de PostgreSQL est également l'un des binaires, construit en utilisant une version spécifique, qui peut également nécessiter une reconstruction, pour fonctionner avec une bibliothèque système, telle que readline.
la source
Vous avez ce problème:
Faire...
fait l'affaire pour moi pour macOS Catalina
la source
J'ai donc vérifié quelques réponses ici, mais je ne pense pas qu'elles puissent fonctionner avec une installation mac vanilla Mojave. J'utilise 10.14.4 pendant que je faisais ceci:
obtenir un homebrew sur https://brew.sh
$ brew install coreutils
: ceci installe le pkg gnu coreutils pour mac, nous voulons legreadlink
de ceci car le readlink de macOSX n'est pas le même que le readlink de gnu. C'est extrêmement déroutant mais telle est la vie en macland.$ echo 'alias readlink=greadlink' >> ~/.bash_aliases
J'ai trouvé que le readlink de macs manquait un peu, j'ai donc remplacé le readlink existant en aliasant greadlink. (vous pouvez le rendre utilisable par tous les utilisateurs,$ alias readlink=greadlink >> /etc/bashrc
ce qui permettra à chaque utilisateur de pouvoir l'utiliser.$ ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
J'ai lié le.8.
fichier déjà lié au lieu de ".8.0." fichier car s'il devait être mis à jour,.8.1.
mon readlink ne cassera pas ou ne manquera pas les fonctionnalités de la bibliothèque. Je suis sûr que nous formaterons nos macs avant la sortie de 9+.la source
Je recommanderais de ne pas créer manuellement des liens symboliques sur les bibliothèques natives. Comme sous OS X 10.4, le chemin de la bibliothèque d'inclusion standard
/usr/include
n'est plus utilisé et est verrouillé par SIP (ce qui rend difficile le déplacement des éléments).Apple fournit un «programme d'installation hérité» pour que vous puissiez installer les en-têtes dans «l'ancien emplacement», ce qui résoudra également votre chemin pour trouver correctement les en-têtes installés via
brew
.Voir ici pour une description détaillée de ce qui se passe .
la source
libreadline.8.dylib
àlibreadline.7.dylib
laquelle manquait. ie exécuter la commande:ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
Mon problème était le même lors de l'exécution
lftp
.Le simple fait de courir
brew upgrade
a résolu mon problème, car il a été mis à jour (entre autres):la source
Contexte: Cela s'est produit lorsque j'ai essayé d'installer tig, mais je pense que c'est un problème courant que vous pourriez avoir: vous devez lier manuellement le logiciel installé dans le bon chemin qu'un autre logiciel souhaite.
Si vous ne trouvez pas readline installé sur votre Mac, vous devez exécuter
Après avoir installé la date limite, brew vous demandera de le lier. Mais en fait, vous ne pouvez pas lier en exécutant
Même vous ne pouvez pas créer de lien en courant
Mac OS vous avertira que c'est extrêmement dangereux et vous empêchera de le faire.
La dernière version de readline est la version 8, vous verrez donc le message d'erreur comme
La date limite d'installation de la bière à
Vous devez donc le lier manuellement à l'endroit souhaité par votre logiciel en utilisant la commande ls
Prendre plaisir!
la source