Dokter Brew mengatakan: "Peringatan: / usr / local / include tidak dapat ditulis."

352

Dokter Brew mengatakan:

Peringatan: / usr / local / include tidak bisa ditulisi. Ini bisa terjadi jika Anda "sudo make install" perangkat lunak yang tidak dikelola oleh Homebrew.

Jika minuman mencoba untuk menulis file header ke direktori ini, instalasi akan gagal selama langkah tautan.

Anda mungkin harus chown/ usr / local / include

Saya sudah mencoba berbagai perintah untuk menyelesaikan ini, tetapi saya masih terjebak di sini.

Saya menjalankan homebrew pada 10.8.2

gaggina
sumber
1
Saya mendapat kesalahan serupa untuk "/ usr / local / lib" di Homebrew 0.9.4 yang juga diselesaikan dengan solusi di bawah ini.
JeremiahLee

Jawaban:

680

Ambil kepemilikan itu dan semua yang ada di dalamnya.

Mac OS High Sierra atau yang lebih baru: (ty to Kirk di komentar di bawah)

$ sudo chown -R $(whoami) $(brew --prefix)/*

Versi makro sebelumnya:

$ sudo chown -R $USER:admin /usr/local/include

Lalu lakukan lagi

$ brew doctor
Jrwren
sumber
13
operasi tidak diizinkan?
topwik
68
Adakah yang lebih menguntungkan $ sudo chown -R `whoami` /usr/local/?
Labu
2
@ WillemLabu satu garpu proses kurang? whoami adalah id pengguna yang efektif dan seperti yang dikatakan halaman manual sudah usang :) bash adalah shell default pada OSX dan suatu tempat USER sedang bersiap-siap.
jrwren
7
Saya bertanya-tanya apakah mengubah kepemilikan / usr / local ke pengguna merupakan solusi bersih. Bukankah lebih baik menambahkan $ USER ke grup 'wheel'? Atau ubah grup / usr / local ke grup admin?
Michael Lehn
13
Menurut Homebrew di Mac OS High Sierra chown /usr/localtidak berfungsi lagi. Alih-alih menggunakansudo chown -R $(whoami) $(brew --prefix)/*
Kirk Hammett
115

Apa yang berhasil untuk saya juga

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local
Durul Dalkanat
sumber
20
Ini adalah satu-satunya perbaikan yang waras, tidak benar-benar waras untuk mengambil kepemilikan / usr / local di multiuser os
Alexander Torstling
3
Perlu memberi orang ini suara! ;) Ini bekerja dengan baik.
jrista
1
Ini adalah solusi yang lebih baik IMHO
jacurtis
5
Ya, tidak di High Sierra. "Tidak dapat mengubah mode file di / usr / local: Operasi tidak diizinkan"
user980018
1
@ user980018 Saya baru saja mengalami hal yang sama - inilah solusi yang saya gunakan
Casey Davidson
38

Apa yang berhasil untuk saya adalah

$ sudo chown -R yourname:admin /usr/local/bin
Ana Isabel
sumber
37

Satu-satunya yang bekerja untuk saya di El Capitan adalah:

sudo chown -R $(whoami) /usr/local
Serak
sumber
5
chown: / usr / local: Operasi tidak diizinkan
AlxVallejo
1
@AlxVallejo melakukannya di / usr / local / bin bekerja untuk saya
marcotama
23

Jika Anda berada di Sierra Tinggi dan mengalami masalah ini, ikuti langkah-langkah di bawah ini ( Catatan: / usr / lokal tidak dapat ditemukan di Sierra Tinggi ):

sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*

Kemudian coba tautkan dengan brew link. Saya mengalami masalah serupa dan tidak ada solusi di atas yang berhasil untuk High Sierra. Semoga ini bisa membantu seseorang.

Pro
sumber
21

Untuk High Sierra:

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

Kemudian, coba perintah minuman Anda.

Edisi # 3285

Mahi
sumber
2
Tidak yakin mengapa ini dibatalkan, jika Anda sebelumnya membuat bir yang diinstal dan ditingkatkan ke Sierra Tinggi, menginstal ulang perbaikan Homebrew masalah. Ini adalah pendekatan termudah
sam9046
Ironisnya itu karena skrip melakukan persis apa yang disarankan jawaban lain.
Lightness Races in Orbit
Ini bekerja untuk saya, tetapi pertama saya menghapus yang sebelumnya menggunakan: ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )"
abbas
12

Anda dapat alias perintah untuk memperbaiki masalah ini di .bash_profile dan menjalankannya setiap kali Anda menemukannya:

Di akhir file ~/.bash_profile, tambahkan:

alias fix_brew='sudo chown -R $USER /usr/local/'

Dan sekarang di dalam terminal Anda, Anda dapat menjalankan:

$ fix_brew
karlingen
sumber
12

Ini bekerja untuk saya di macOS 10.12

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

Saya punya masalah memperbarui homebrew dengan kesalahan berikut:

/usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Maks
sumber
8

Untuk beberapa orang akan menjadi:

sudo chown -R JonJames:admin /usr/local/lib

di mana "lib" digunakan sebagai lawan dari "bin" atau "include" atau "apa pun"

Peringatan Homebrew "harus" menjelaskan apa yang secara spesifik tidak dapat ditulisi dan kemudian memberi Anda sintaks perintah untuk diikuti, namun Anda harus menggunakan ":" sebagai lawan dari apa yang disebutkan Peringatan yang sebenarnya bukan sintaks yang benar ??

Jonathan James
sumber
Sintaks dalam Peringatan agak membingungkan, saya percaya, saya mengirim email kontributor utama untuk Homebrew untuk menanyakan apakah mereka akan mengubah apa pun tentang hal itu, menunggu balasan, mungkin pertanda peringatan akan berubah dalam pembaruan pembuatan bir berikutnya ..
Jonathan James
Terima kasih! Ini bekerja setelah cukup banyak mencari.
jalan ini
7

Bekerja untukku

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

$ cd /usr/local/Library && git stash && git clean -d -f
Alexander Salas Bastidas
sumber
5

Kesalahan yang sama pada MacOS 10.13

/usr/local/includedan /usr/local/ /usr/libtidak diciptakan. Saya secara manual dibuat dan brew linkakhirnya berhasil.

Miguel
sumber
3

Anda perlu membuat / usr / local / include dan / usr / local / lib jika tidak ada:

$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include
waldencoder
sumber
3

Apa yang berhasil untuk saya, sementara saya punya lebih banyak dari 1 pengguna di komputer saya.

Menggunakan terminal:

  • Lari brew doctor
    • Melihat banyak /usr/local/...bukan kesalahan yang bisa ditulisi
  • Menonaktifkan Perlindungan Integritas Sistem Mac: https://apple.stackexchange.com/a/208481/55628
  • Jalankan yang berikut ini
  • sudo chown -R $(whoami) /usr/local/*
  • brew doctor && brew upgrade && brew doctor

Menjalankan Macbook Pro OSX High Sierra (versi 10.13.3.)

EDIT 1:

FYI - Mohon diberitahukan ini menyebabkan masalah dengan menjalankan MySQL di MAC Anda.

Untuk dapat memulai server lokal saya, saya harus menjalankan:

sudo chown -R mysql:mysql /usr/local/mysql/data

Setelah Anda menjalankan ini, Anda dapat memulai Server MySQL lokal Anda.

JayRizzo
sumber
1
Luar biasa! Terima kasih!
shmuli
3
sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin

sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin

Ini akan membuat semua direktori yang diperlukan dan memberikannya kepemilikan yang benar.

Setelah menjalankan perintah ini, periksa: brew doctor

Ini bekerja untuk Mojave.

Sven
sumber
2

Anda perlu mengontrol keseluruhan /usr/localuntuk melakukan itu Anda perlu melakukan rekursif di chownbawah/usr/local

sudo chown -R YOUR_USERNAME:admin /usr/local/

tambahkan-semi-titik dua
sumber
2

Saya hanya ingin menggemakan komentar sederhana sam9046 sebagai alternatif dan solusi yang mungkin jauh lebih mudah yang berhasil dalam kasus saya: copot dan pasang kembali homebrew dari awal. Tidak diperlukan perintah sudo.

Anda juga dapat menelusuri / memodifikasi skrip penghapusan instalan dari tautan di atas jika Anda perlu memastikan itu tidak akan memengaruhi paket Anda yang sebelumnya diinstal. Dalam kasus saya ini hanya mesin rumah saya, jadi saya baru saja memulai.

adamkski
sumber
2

Pertama, Anda perlu membuat direktori:

sudo mkdir /usr/local/include

Kedua:

sudo chown -R $(whoami) $(brew --prefix)/*
gugapc
sumber
1

Saya mengalami hal ini di organisasi saya setelah semua pengguna kami terikat pada direktori aktif (secara efektif mengubah UID dari 50x menjadi ######).

Sekarang ini hanyalah kasus mengubah kepemilikan semua file di mana dimiliki oleh x ke y.

Di mana 501 adalah id pengguna numerik lama saya yang masih terkait dengan semua file homebrew.

ID pengguna lama dapat ditemukan menggunakan ll /usr/local/Cellar

Sekarang perbarui kepemilikan sudo find /usr/local -user 501 -exec chown -h $USER {} \;

Dengan cara ini kami menghindari mengubah kepemilikan pada file yang tidak dikontrol oleh homebrew atau milik pengguna sistem lain.

Tarun
sumber
1

Pergilah ke direktori / bin dan ketik:

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

Yusuf
sumber