Ketika saya mencoba menjalankan rails console
saya mendapatkan kesalahan ini:
/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)
Pencarian cepat membawa saya ke posting ini dan saya telah mencoba beberapa hal:
brew reinstall postgresql
(ini memang DB untuk proyek ini)
dan
cd /usr/local/opt/readline/lib
ln libreadline.8.0.dylib libreadline.6.2.dylib
(readline versi saya adalah 8)
dan
brew link readline --force
Tapi tidak satupun dari ini yang memperbaikinya.
Saya baru-baru ini menambahkan pry-coolline
, guard
dan guard-livereload
permata ke proyek saya jika itu membuat perbedaan (konsol rel dimuat dengan baik sebelum itu). Saya menjalankan macOS terbaru.
(Pembaruan) Saya menggunakan rel pengungkit sebagai konsol rel saya, jika itu membuat perbedaan.
Ada bantuan? Terima kasih.
ruby-on-rails
libreadline
Jonathan Tuzman
sumber
sumber
brew reinstall readline
Jawaban:
kesalahan tersebut tampaknya terlempar saat mencari
/usr/local/opt/readline/lib/libreadline.7.dylib
.Sudahkah Anda mencoba menghubungkannya?
Jadi sesuatu seperti:
Baru saja mencobanya di macOS Mojave, ruby 2.5.3p105 dan Rails 5.2.2 dan berfungsi.
sumber
ln
bukan hal-hal yang sebenarnya saya ketahui: /cd /usr/local/opt/readline/lib
brew link readline --force
membuat tautan di/usr/local/opt/readline/lib
.brew link readline --force
dari Candland, yang berhasil untuk sayaMenginstal ulang versi Ruby saya sepertinya telah memperbaikinya:
sumber
rbenv install 2.5.1
bekerja untuk saya dalam konteks saya. Ini berjalan menyamping setelah saya menjalankansudo xcode-select -s /Library/Developer/CommandLineTools
untuk memperbaiki masalah yang saya alami di tempat lain. fwiwbundle install
menginstal ulang permata dengan ekstensi asli.bisakah kamu mencoba
Anda berada di jalur yang benar tetapi sepertinya rails mencari libreadline.7.dylib dan libreadline.7.dylib tidak ada di folder.
sumber
Ya, jawaban terbaik adalah menginstal ulang.
Anda bisa mendapatkan versinya dengan mudah dengan mengetik:
Dengan
rbenv
, perintahnya adalah:dengan
rvm
:sumber
rbenv install <ruby-version>
gagal dengan "rake" dari konflik rake dengan executable yang diinstal dari konflik redis-rack . Saya harus larirbenv uninstall <ruby-version> && rbenv install <ruby-version>
Solusi yang sangat sederhana yang tidak melibatkan pembangunan kembali gemset RVM ATAU pustaka sym-linking.
Tambahkan ke Gemfile Anda:
Jika Anda melakukan grup bundler
Lalu lari
Beri tahu saya jika tidak berhasil.
sumber
Paling sering dalam aplikasi Ruby, hal ini disebabkan oleh permata yang memiliki ekstensi (permata mengatakan "Membangun ekstensi asli .."), yang dibuat menggunakan versi tertentu, dalam hal ini
readline
,.Pada dasarnya, ada dua solusi:
Baik, Anda dapat menghubungkan permata versi 8 ke versi yang hilang. Ini akan berfungsi dalam banyak kasus, tetapi jika kompatibilitas mundur rusak, itu tidak akan berhasil.
Atau, jika permata tersebut benar-benar mendukung versi 8, Anda dapat menginstal ulang permata tertentu itu, atau "asli" dengan menjalankannya
gem pristine --all
.EDIT : Dalam lingkup "apa yang telah saya coba", menginstal ulang PostgreSQL, juga merupakan salah satu binari, dibangun menggunakan versi tertentu, yang mungkin juga memerlukan pembangunan kembali, untuk bekerja dengan pustaka sistem, seperti readline.
sumber
Punya masalah ini:
perbuatan...
melakukan trik untuk saya untuk macOS Catalina
sumber
Jadi saya telah memeriksa beberapa jawaban di sini tetapi saya rasa mereka tidak dapat bekerja dengan penginstalan mac vanilla Mojave. Saya menggunakan 10.14.4 saat melakukan ini:
dapatkan homebrew dari https://brew.sh
$ brew install coreutils
: ini menginstal pkg gnu coreutils untuk mac, kami menginginkangreadlink
dari ini karena tautan baca macOSX tidak sama dengan tautan baca gnu. Ini sangat membingungkan tetapi seperti itulah kehidupan di macland.$ echo 'alias readlink=greadlink' >> ~/.bash_aliases
Saya menemukan macs readlink menjadi sedikit kurang jadi saya mengganti readlink yang ada dengan aliasing greadlink. (Anda dapat membuat ini dapat digunakan oleh semua pengguna$ alias readlink=greadlink >> /etc/bashrc
yang akan memungkinkan setiap pengguna untuk dapat menggunakannya.$ ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
Saya menautkan file yang sudah ditautkan.8.
alih-alih '.8.0.' file karena jika diperbarui ke.8.1.
maka tautan baca saya tidak akan merusak atau melewatkan fitur di perpustakaan. Saya cukup yakin kami akan memformat mac kami sebelum 9+ keluar.sumber
Saya akan merekomendasikan untuk tidak melakukan symlink pada perpustakaan asli secara manual. Seperti OS X 10.4, jalur perpustakaan include standar
/usr/include
tidak lagi digunakan dan dikunci oleh SIP (membuatnya sulit untuk dipindahkan).Apple mengirimkan "penginstal lama" agar Anda dapat menginstal header di "lokasi lama", yang juga akan menyelesaikan jalur Anda untuk menemukan header yang diinstal dengan benar
brew
.Lihat di sini untuk artikel rinci tentang apa yang sedang terjadi .
sumber
libreadline.8.dylib
kelibreadline.7.dylib
yang hilang. yaitu menjalankan perintah:ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
Masalah saya sama saja saat berlari
lftp
.Hanya menjalankan
brew upgrade
telah menyelesaikan masalah saya, karena telah diperbarui (antara lain):sumber
Latar Belakang: Ini terjadi ketika saya mencoba menginstal tig, tetapi saya pikir ini adalah masalah umum yang mungkin Anda alami sehingga Anda perlu menautkan perangkat lunak yang diinstal secara manual ke jalur yang benar yang diinginkan perangkat lunak lain.
Jika Anda tidak dapat menemukan readline yang diinstal pada Mac Anda, Anda harus menjalankannya
Setelah Anda memasang tenggat waktu, brew akan meminta Anda untuk menautkannya. Tetapi sebenarnya Anda tidak dapat menghubungkan dengan menjalankan
Bahkan Anda tidak dapat menghubungkan dengan menjalankan
Mac OS akan memperingatkan Anda bahwa ini sangat berbahaya dan menghentikan Anda melakukannya.
Versi readline terbaru adalah versi 8, jadi Anda akan melihat pesan kesalahan seperti
Batas waktu pembuatan bir dipasang pada
Jadi Anda harus menautkannya secara manual ke tempat yang diinginkan perangkat lunak Anda dengan menggunakan perintah ls
Nikmati!
sumber