Cara menghindari "tidak dapat memuat file seperti itu - utils / popen" dari homebrew di OSX

327

Saya mendapatkan kesalahan saat menjalankan brewdi terminal:

 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- utils/popen (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/utils.rb:6:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/global.rb:9:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/brew.rb:16:in `<main>'

Ini adalah pengaturan permata saya:

- RUBYGEMS VERSION: 2.0.14
- RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
  - ruby
  - universal-darwin-13
- GEM PATHS:
  - /Library/Ruby/Gems/2.0.0
  - /Users/ronaldkwan/.gem/ruby/2.0.0
  - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
- GEM CONFIGURATION:
  - :update_sources => true
  - :verbose => true
  - :backtrace => false
  - :bulk_threshold => 1000
kerokero
sumber
1
Bisakah Anda menambahkan informasi? Perintah apa yang sebenarnya Anda jalankan?
Unihedron
saya baru saja mengetik "brew" menjadi unix
kerokero
Apa yang terjadi ketika Anda berlari brew doctor?
grenierm5
kesalahan yang sama. di sini adalah pengaturan permata env saya
kerokero
Sepertinya instalasi ruby ​​Anda tidak lengkap. Coba instal ulang atau gunakan instalasi ruby ​​lain.
gorootde

Jawaban:

803

Masalahnya terutama terjadi setelah memperbarui OS X ke El Capitan (OS X 10.11) atau macOS Sierra (macOS 10.12).

Ini karena masalah izin file dengan proses SIP baru El Capitan atau yang lebih baru . Coba ubah izin untuk /usr/localdirektori:

$ sudo chown -R $(whoami):admin /usr/local  

Jika masih tidak berhasil, gunakan langkah-langkah ini di dalam sesi terminal dan semuanya akan baik-baik saja:

cd /usr/local/Library/Homebrew  
git reset --hard  
git clean -df
brew update

Ini mungkin karena homebrew tidak diperbarui.

Vineet Kapoor
sumber
39
Saya memiliki masalah yang disebabkan oleh pembaruan El Capitan. Ini memecahkan masalah. Terima kasih.
Vivek
4
Sama di sini, upgrade ke El Capitan memecahkannya, saya harus mengatur ulang izin terlebih dahulu dan kemudian menjalankan perintah git dan membuat pembaruan berhasil. Terima kasih.
Bob
4
Ini adalah jawaban yang tepat jika Anda menghadapi masalah itu setelah memutakhirkan ke El Capitan :)
chemic
3
Mengalami masalah ini setelah memutakhirkan ke macOS Sierra . Ini menyelesaikannya, terima kasih! Meskipun demikian, mengubah izin /usr/localtampaknya tidak diperlukan sekarang. "Homebrew tidak perlu lagi memiliki kepemilikan / usr / lokal. Jika mau, Anda dapat kembali /usr/localke kepemilikan bawaan dengan: sudo chown root:wheel /usr/local"
Bert
5
Metode kedua bekerja untuk saya. Saya hanya perlu menemukan di mana HOMEBREWdirektori berada. Dalam kasus saya:/usr/local/Library/Homebrew
Alexander
378

Pertama, buka sesi terminal dan jalankan:

cd /usr/local/
git status

untuk melihat apakah Homebrew bersih.

Jika kotor, jalankan:

git reset --hard && git clean -df

kemudian

brew doctor
brew update

Jika masih rusak, coba ini di sesi Anda:

sudo rm /System/Library/Frameworks/Ruby.framework/Versions/Current
sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8 /System/Library/Frameworks/Ruby.framework/Versions/Current

Ini akan memaksa Homebrew untuk menggunakan Ruby 1.8 dari instalasi sistem.

richarddong
sumber
7
Mungkin jawaban yang bagus, tapi BTW saya mendapatkan kesalahan lain ketika menjalankan kedua perintah memberi (saya sebutkan kalau ada yang mau membahas skenario ini lebih lanjut): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: Operasi tidak diizinkan
PandaWood
4
Saya cukup menginstal ulang homebrew dengan versi yang baru dan mulai berfungsi. Periksa homebrew homepage dengan tautan untuk memasang, dan ketika Anda mencobanya akan mengeluh bahwa homebrew sudah diinstal dan mengajari Anda cara menghapus instalan.
pertz
Jadi, mencopot / menginstal ulang membuat Homebrew bekerja kembali untuk saya. Itu juga menghapus semua yang telah diinstal, pada dasarnya merusak sistem saya. Jadi bukan solusi yang bagus.
Evan Knowles
Jika Anda mendapatkan kesalahan dengan ruby ​​dan Anda menggunakan RVM, cobalah mengeluarkan rvm use systemuntuk memastikan Anda menggunakan ruby ​​Mac OS X saat menjalankanbrew update
DavidJ
Perhatikan bahwa Ruby default pada versi terbaru dari OS X adalah 2.0, bukan 1.8.
bfontaine
82

Hapus instalan homebrew:

 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Kemudian pasang kembali

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Peringatan: Skrip ini akan menghapus: / Library / Caches / Homebrew / - thks benjaminsila

Odemolliens
sumber
1
Saya menjalankan uninstall Homebrew dan menginstal ulang. Memperbaiki masalah. @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Peringatan: Skrip ini akan menghapus: / Library / Caches / Homebrew /
BenJaminSila
3
Semacam pendekatan shotgun tetapi ini bekerja lebih mudah daripada mencoba mengelola izin file ...
BenKarl
1
Bekerja untuk saya Pada sistem yang ditingkatkan menjadi 10.12 (Sierra), setelah uninstall / instal kembali saya dapat menjalankan 'brew doctor' dan mengikuti petunjuk di sana untuk memperbaiki beberapa masalah izin. Bekerja dengan baik sekarang
codesponge
Setelah hard drive crash, repositori git saya yang mendasarinya rusak dan sementara git reset tidak akan berfungsi, hapus instal ulang. Namun, saya harus menginstal ulang semua paket yang diinstal.
bsumirak
26

Dalam kasus saya, saya hanya perlu menghapus executable Homebrew menggunakan:

sudo rm -f `which brew`

Kemudian instal ulang Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Inanc Gumus
sumber
2
Jika Anda buntu setelah ini di loop install / uninstall buatan, gunakan tautan berikut - github.com/Homebrew/homebrew/issues/44460
fortm
Apakah Anda mendapatkan pesan ini dengan mencoba perintah ke-2 (yang tampaknya merupakan indikasi bahwa ada sesuatu yang salah, meskipun bukan kesalahan)? - Konten saat ini dari / usr / local adalah bin Cellar CODEOFCONDUCT.md CONTRIBUTING.md dll Kerangka kerja git termasuk lib Library LICENSE.txt pilih Qt4.7 README.md bagikan SUPPORTERS.md var .git
.gitigngit
@ PandaWood tidak, saya tidak. apa isi pesan kesalahan yang Anda gambarkan dengan 'pesan ini' di komentar Anda?
Inanc Gumus
@deeperx Semuanya setelah "-". Pada akhirnya, saya harus menghapus brew dan menginstal ulang lagi
PandaWood
@ PandaWood Apakah Anda menggunakan koma yang benar? Bisakah Anda menyalinnya langsung ke sini?
Inanc Gumus
24

Setelah memperbarui ke El Capitan, /usr/localmemiliki root:wheelhak.

Ubah hak kembali ke pengguna menggunakan:

sudo chown -R $(whoami):admin /usr/local

dan:

brew doctor && brew update

Ini membantu saya untuk membuat Homebrew bekerja kembali.

Josef Rysanek
sumber
2
bukankah itu cukup berbahaya?
FRAGA
Izin /usr/localdiubah di OS untuk alasan keamanan - jadi, hanya karena Anda telah "mengembalikan hak seperti sebelumnya" tidak berarti itu hal yang baik untuk dilakukan.
leanne
8

Pertama saya dieksekusi:

sudo chown -R $(whoami):admin /usr/local

Kemudian:

cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
d0ping
sumber
1
FYI, instalasi Homebrew saya berada di /usr/local/Homebrew/jadi saya harus menggunakan cd $(brew --prefix)/Homebrew.
Joshua Pinter
3

Masalah ini harus diperbaiki di Homebrew versi terbaru. Coba instal ulang, yang dijelaskan di beranda Homebrew .

Fred
sumber
1

Bagi saya rasanya Anda kehilangan file header untuk popen, yang merupakan pustaka sistem C.

Periksa apakah Anda telah menginstal xcode berhasil dengan alat baris perintah dan telah menerima lisensi.

Lihat utas ini untuk informasi lebih lanjut: Cara menginstal Xcode Command Line Tools

Dennis
sumber
0

Untuk mengembalikan pengaturan Homebrew Anda, coba ini:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
mrded
sumber