nâng cấp bia đã phá vỡ Vim trên OS X (dyld: Thư viện không được tải)


47

Tôi đã không chạy brew update && brew upgradetrong một thời gian dài.

Tôi vừa thực hiện một bản nâng cấp lớn đã phá vỡ Vim của tôi.

Đây là những gì tôi nhận được sau khi chạy vim:

dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
Trace/BPT trap: 5

Tôi đã xem qua một số trang web nhưng không có trang nào thực sự hữu ích.

Họ nói rằng nó có thể liên quan đến rvmnhưng brew uninstall vim; rvm system; brew install vimkhông giúp được gì. Tôi cũng đã cố cài đặt lại MacVim của mình nhưng nó không giải quyết được vấn đề.

Thêm export PATH="/usr/local/bin:$PATH"vào tôi .bash_profilecũng không giúp được gì.

Đây là danh sách để tham khảo trong tương lai:

Điều gì đã xảy ra với Vim của tôi? Làm thế nào tôi có thể sửa chữa nó?


Bây giờ có lẽ bạn có thể thử: xcode-select --installvà sau đó brew upgrade, như được đề xuất trong phần Nâng cấp macOS tại các vấn đề chung
giảm dần

Câu trả lời:


48

Dung dịch

Cố gắng cài đặt lại rubyvim, vd

brew reinstall ruby vim

Xử lý sự cố

Dưới đây là những gợi ý khác nếu không giúp được:

  • Tìm bất kỳ tham chiếu đến DYLD_LIBRARY_PATH, DYLD_FALLBACK_LIBRARY_PATHhoặc DYLD_FRAMEWORK_PATHcác biến môi trường và loại bỏ chúng khỏi kịch bản shell khởi động (ví dụ ~/.bashrc, ~/.bash_profilevv).

3
Chỉ cần nâng cấp lên sierra cao và điều này đã lừa Cảm ơn.
e_x_p

1
Tôi gặp vấn đề với mac vim nên tôi đã sử dụng cái này thay thế brew reinstall ruby macvimvà hoạt động như một bùa mê :)
Crisoforo Gaspar 17/12/17

6
Sau khi nâng cấp lên sierra cao, tôi đã chạy brew updatebrew upgradenâng cấp rất nhiều phần mềm lên các phiên bản sierra cao và khắc phục sự cố của tôi.
maffo

27

tl; dr

brew link --overwrite ruby

Chi tiết

Trên thực tế, nó hóa ra khá đơn giản. Tôi đã làm theo gợi ý để chạy brew doctorvà tôi đã nhận được những kết quả này:

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
    ruby

Thế là tôi chạy brew link ruby. Đây là những gì tôi nhận được:

Linking /usr/local/Cellar/ruby/2.3.1... v
Error: Could not symlink bin/rake
Target /usr/local/bin/rake
already exists. You may want to remove it:
  rm '/usr/local/bin/rake'

Kết quả là tôi quyết định chạy brew link --overwrite rubyvà bây giờ Vim của tôi đang hoạt động trở lại!


2
Chết tiệt brew upgradelàm chuyện này với tôi rất nhiều. Cảm ơn bạn rất nhiều vì đã cung cấp một bộ hướng dẫn rõ ràng để khắc phục điều này.
Sukima

7

Tôi gặp phải một lỗi tương tự khi làm việc brew upgradekhi libperl không được tải.

dyld: Library not loaded: /usr/local/opt/perl/lib/perl5/5.24.1/darwin-thread-multi-2level/CORE/libperl.dylib
  Referenced from: /usr/local/Cellar/vim/8.0.0636/bin/vim
  Reason: image not found

Khắc phục là cài đặt lại phụ thuộc bị hỏng và vim:

brew uninstall --ignore-dependencies perl
brew uninstall vim
brew install vim

1
Lỗi của tôi liên quan đến thư viện ruby ​​trong op nhưng sau khi thử một vài sửa lỗi liên kết, tôi thấy rằng tôi cần gỡ cài đặt / cài đặt vim. Gần đây tôi đã cập nhật ruby.
jerome

Tôi đã tìm thấy các bước tương tự ở đây github.com/Homebrew/brew/issues/2356#issuecomment-301830565 và nó đã hoạt động.
gabe

4

Đối với tôi, tôi thấy rằng brew bằng cách nào đó đã cài đặt macvim và nó tiếp tục xung đột với hệ điều hành stock vim. Nỗ lực sử dụng vim thông thường và chạy các lệnh git, chẳng hạn như các lỗi được tạo ra này:

$ git commit --amend
dyld: Library not loaded: /System/Library/Perl/5.16/darwin-thread-multi-2level/CORE/libperl.dylib
  Referenced from: /usr/local/Cellar/macvim/7.4-73/MacVim.app/Contents/MacOS/Vim
  Reason: image not found
error: vi died of signal 6
error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.

Vì vậy, tôi đã tiếp tục và gỡ cài đặt bất kỳ gói liên quan đến vim mà brew đã cài đặt:

$ brew list

Và chắc chắn loại bỏ macvim với $ brew uninstall macvimgiải quyết vấn đề


Đây là vấn đề của tôi là tốt. Câu trả lời chính xác; cảm ơn!
quay

1

Tôi đã thử cài đặt lại, xem lại, loại bỏ tất cả các phiên bản có sẵn, vv cho ruby ​​và vim nhưng không có gì thực sự có ích.

Vì vậy, tôi quyết định đổi tên tập tin dylib của mình từ

/usr/local/opt/ruby/lib/libruby.2.3.dylib

đến

/usr/local/opt/ruby/lib/libruby.2.3.0.dylib

Kết quả của việc đổi tên đó là bây giờ nó hoạt động hoàn toàn tốt.


Bạn có thể muốn xem xét sử dụng một liên kết tượng trưng ở đây thay vì đổi tên tệp, do đó, bất cứ điều gì tham chiếu libruby2.3.dylib cũng không bị hỏng.
Derwent

0

Nếu bạn nhận được một tin nhắn như sau:

dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.4.1.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
error: vim died of signal 6
error: There was a problem with the editor 'vim'.
Please supply the message using either -m or -F option.

và bạn quản lý Ruby của mình bằng rvm, sau đó đặt đúng một biến môi trường sẽ khiến vim của bạn hoạt động trở lại.

Thực hiện theo các bước sau để xem nó có áp dụng cho môi trường của bạn không:

Có phải định nghĩa DYLD_LIBRARY_PATH và có đúng không?:

$ env|grep DYLD_LIBRARY_PATH

Ruby được cài đặt ở đâu?

$ type ruby
ruby is hashed (/Users/<USER>/.rvm/rubies/ruby-2.4.1/bin/ruby)

Điều đó cho thấy rằng ruby ​​của tôi được quản lý bởi rvm.

Libruby.2.4.1.dylib nằm ở đâu?

find /Users/<USER>/.rvm/rubies/ruby-2.4.1  -name "*.dylib"

Thêm thư mục "lib" và nối nó vào tệp khởi động của bạn:

echo -e "\nexport DYLD_LIBRARY_PATH=/Users/<USER>/.rvm/rubies/ruby-2.4.1/lib" >> ~/.bashrc

Lưu ý: Sử dụng tệp đã từng khởi động (~ / .profile, ~ / bash_exports, v.v.) có ý nghĩa đối với máy trạm của bạn.

Bây giờ, khi bạn bắt đầu một phiên cuối mới, vim của bạn sẽ hoạt động trở lại.


0

Trong trường hợp của tôi, hóa ra ruby ​​đã được cài đặt nhưng vì lý do không được liên kết, vì vậy:

liên kết ruby


0

Lỗi của tôi (điều này xảy ra sau khi cập nhật homebrew):

dyld: Thư viện không được tải: /usr/local/opt/ruby/lib/libruby.2.6.dylib Tham khảo từ: / usr / local / bin / vim Lý do: không tìm thấy hình ảnh [1] 2800 hủy bỏ vim

Điều này mất một giờ trong cuộc sống của tôi. Giải pháp của tôi:

Cài đặt lại ruby ​​$ brew cài đặt lại ruby

Phản hồi từ Homebrew:

ruby chỉ là keg, có nghĩa là nó không được liên kết thành / usr / local, vì macOS đã cung cấp phần mềm này và cài đặt phiên bản khác song song có thể gây ra tất cả các loại rắc rối.

Nếu trước tiên bạn cần phải có ruby ​​trong lần chạy PATH của mình: echo 'export PATH = "/ usr / local / opt / ruby ​​/ bin: $ PATH"' >> ~ / .zshrc

Để trình biên dịch tìm ruby, bạn có thể cần phải đặt: export LDFLAGS = "- L / usr / local / opt / ruby ​​/ lib" export CPPFLAGS = "- I / usr / local / opt / ruby ​​/ include"

Để pkg-config tìm ruby, bạn có thể cần phải đặt: xuất PKG_CONFIG_PATH = "/ usr / local / opt / ruby ​​/ lib / pkgconfig" ==> Tóm tắt 🍺 /usr/local/Cellar/ruby/2.6.3: 19.372 , Lỗi 32,4 MB: Không thể xóa keg sao lưu ruby! Làm như vậy một cách thủ công: sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1.reinstall

Tôi đã làm theo hướng dẫn của homebrew và tự gỡ bỏ bản sao lưu ruby

$ sudo rm -rf /usr/local/Cellar/ruby/2.4.2_1.reinstall

Sau khi nhập mật khẩu và cố gắng mở lại vim với

$ vim

Vim mở ra và tôi mỉm cười một chút và gạt đi những giọt mồ hôi thất vọng. :)


-1

Tôi đã ngừng sử dụng Homebrew vì tất cả các vấn đề và vấn đề bảo mật của nó.

Trong mọi trường hợp, tôi đã nâng cấp từ OSX Yosemitelên OSX High Sierravà macvim ngừng hoạt động trong Terminal. Tôi đã nhận được lỗi:

dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
  Referenced from: /Applications/MacVim.app/Contents/MacOS/Vim
  Reason: image not found
Abort trap: 6

Tôi đã thử XUẤT KHẨU một đường dẫn như trong câu trả lời của I3x, nhưng tôi vẫn gặp lỗi tương tự (vâng, tôi đã mở một cửa sổ Terminal mới).

Vì vậy, tôi đã tải xuống macvim một lần nữa. Khi tôi được thông báo đã có MacVim.app trên máy tính của mình, tôi đã dừng cài đặt và tôi đã đổi tên thành MacVim_origen.app. Sau đó, tôi tiến hành cài đặt một macvim mới. Sau đó, macvim hoạt động trở lại trong Terminal. Tôi khởi chạy nó bằng lệnh tắt:

$ m 1.py 

1
Khi đưa ra tuyên bố như tất cả các vấn đề và vấn đề bảo mật, thì xem xét bao gồm các liên kết đến tài liệu hướng dẫn. (=
ELLIOTTCABLE


Ơ thưởng thức downvote của bạn, sau đó. Tôi chỉ đơn giản là đưa ra một lời giải thích về lý do tại sao bạn có một, như là một thực tiễn được chấp nhận (giống như trích dẫn nguồn của bạn) ở đây trên Stack Exchange. ¯\_(ツ)_/¯
ELLIOTTCABLE

-1
brew uninstall --force ruby perl vim && brew install vim 

Đây là những gì làm việc cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.