Demlemek doktor diyor: “Uyarı: / usr / local / include yazılamaz.”


352

Demlemek doktor diyor:

Uyarı: / usr / local / include yazılamaz. Homebrew tarafından yönetilmeyen bir yazılım "sudo make install" yazılımınız varsa bu gerçekleşebilir.

Bir demlemek bu dizine bir başlık dosyası yazmaya çalışırsa, bağlantı adımında yükleme başarısız olur.

Muhtemelen chown/ usr / local / dahil etmelisiniz

Bunu çözmek için farklı komutlar denedim ama hala burada kaldım.

10.8.2'de homebrew kullanıyorum


1
Homebrew 0.9.4'te "/ usr / local / lib" için de benzer bir hata aldım ve bu da aşağıdaki çözümle çözüldü.
JeremiahLee

Yanıtlar:


680

Onun ve içindeki her şeyin sahipliğini alın.

Mac OS High Sierra veya daha yenisi: (aşağıdaki yorumlarda Kirk'e gidin)

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

Macos'un önceki sürümleri:

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

Sonra bir tane daha yap

$ brew doctor

13
İşlem izni verilmedi?
topwik

68
Bunun yerine herhangi bir avantajı var $ sudo chown -R `whoami` /usr/local/mı?
Labu

2
@WillemLabu daha az işlem çatalı mı? whoami etkili kullanıcı kimliği ve man sayfasının söylediği gibi eski :) bash OSX ve USER ayarlanıyor bir yerde varsayılan kabuk.
jrwren

7
/ Usr / local'ın sahipliğini bir kullanıcıya değiştirmenin temiz bir çözüm olup olmadığını merak ediyorum. 'Wheel' grubuna $ USER eklemek daha iyi olmaz mıydı? Veya / usr / local grubunu yönetici grubuyla değiştir?
Michael Lehn

13
Mac OS Homebrew göre High Sierra chown /usr/localartık çalışmıyor. Bunun yerinesudo chown -R $(whoami) $(brew --prefix)/*
Kirk Hammett

115

Benim için işe yarayan da

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local

20
Bu tek aklı başında düzeltme, çok kullanıcılı bir os / usr / local sahipliğini gerçekten aklı başında değil
Alexander Torstling

3
Bu adama biraz oy vermelisin! ;) Bu harika çalıştı.
jrista

1
Bu daha iyi bir çözüm IMHO
jacurtis

5
Yüksek Sierra'da değil. "/ Usr / local dosya modu değiştirilemiyor: İşleme izin verilmiyor"
user980018

1
@ user980018 Aynı şeyle karşılaştım - işte kullandığım geçici çözüm
Casey Davidson

38

Benim için işe yarayan

$ sudo chown -R yourname:admin /usr/local/bin

37

El Capitan'da benim için çalışan tek kişi:

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

5
chown: / usr / local: Operasyona izin verilmiyor
AlxVallejo

1
@AlxVallejo bunu yapıyor / usr / local / bin benim için çalıştı
marcotama

23

Eğer biri High Sierra ve bu sorunu yaşamaya aşağıdaki adımları takip ( Not: / usr / local High Sierra içinde chown'd edilemez kutu ):

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

Ardından demleme bağlantısıyla bağlanmayı deneyin. Benzer bir sorun yaşıyordum ve yukarıdaki çözümlerin hiçbiri High Sierra için işe yaramadı. Umarım bu birine yardımcı olur.


21

High Sierra için:

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

Ardından, demleme komutlarınızı deneyin.

Sayı # 3285


2
Daha önce demlendi ve High Sierra'ya yükselttiyseniz, bunun neden reddedildiğinden emin değilsiniz, Homebrew'u yeniden yüklemek sorunu çözüyor. Bu en kolay yaklaşım
sam9046

İronik bir şekilde, senaryo diğer cevapların önerilerini tam olarak yapıyor.
Yörüngedeki Hafiflik Yarışları

Bu benim için çalıştı ama önce önceki kullanarak kaldırdım: ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )"
abbas

12

Bu sorunu kendinizde düzeltmek .bash_profileve her karşılaştığınızda çalıştırmak için komutun diğer adını kullanabilirsiniz :

Dosyanın sonuna şunu ~/.bash_profileekleyin:

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

Ve şimdi terminalinizin içinde koşabilirsiniz:

$ fix_brew

12

Bu benim için macOS 10.12'de çalıştı

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

Homebrew aşağıdaki hatayla güncelleme sorunu vardı:

/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

8

Bazıları için:

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

"lib", "bin" veya "içerme" veya "başka ne varsa" yerine kullanılır

Homebrew Uyarı "gerekir" özellikle ne yazılabilir değil açıklamak ve daha sonra takip için bir komut sözdizimi vermek, ancak Uyarı aslında sözdizimi aslında ne söz değil aksine ":" kullanmanız gerekir ??


Uyarıdaki sözdizimi biraz kafa karıştırıcı, inanıyorum, Homebrew için baş katkıda bulunana, bu konuda bir şey değiştirip değiştirmeyeceklerini sormak için e-posta gönderdim, cevap bekliyorum, belki de Uyarı'nın verbbyge gelecekteki demlemek güncellemelerinde değişecek ..
Jonathan James

Teşekkürler! Bu, etrafta dolaşmanın adil bir miktarından sonra işe yaradı.
thiswayup


5

MacOS 10.13'te aynı hata

/usr/local/includeve /usr/local/ /usr/libyaratılmadı. Elle oluşturdum ve brew linksonunda çalıştım.


3

Eğer yoksa / usr / local / include ve / usr / local / lib oluşturmanız gerekir:

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

3

Ben yerken Ne, benim için çalıştı daha bilgisayarımda 1'den kullanıcıyı.

Terminal kullanarak:

  • Koşu brew doctor
    • Birden fazla görmek /usr/local/...yazılabilir hata değil
  • Mac'in Sistem Bütünlüğü Korumasını Devre Dışı Bırakma: https://apple.stackexchange.com/a/208481/55628
  • Aşağıdakileri çalıştırın
  • sudo chown -R $(whoami) /usr/local/*
  • brew doctor && brew upgrade && brew doctor

Macbook Pro OSX High Sierra'yı çalıştırma (sürüm 10.13.3.)

DÜZENLEME 1:

Lütfen bu MAC'inizde MySQL çalıştırmayla ilgili bir soruna neden olun.

Yerel sunucumu başlatabilmek için:

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

Bunu çalıştırdıktan sonra yerel MySQL Sunucunuzu başlatabilirsiniz.


1
Mükemmel! Teşekkür ederim!
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

Bu, gerekli tüm dizinleri oluşturur ve ona doğru sahipliği verir.

Bu komutları çalıştırdıktan sonra şunları kontrol edin: brew doctor

Bu Mojave için çalışıyor.


2

Altında /usr/localbir özyinelemeli yapmak için tümünün kontrolünü almanız gerekirchown/usr/local

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


2

Sam9046'nın mütevazı yorumunu benim durumumda çalışan alternatif ve potansiyel olarak çok daha kolay bir çözüm olarak yankılandırmak istiyorum : homebrew'u tekrar sıfırdan kaldırın ve yükleyin . Herhangi bir sudo komutu gerekmez.

Önceden yüklenmiş paketlerinizi etkilemediğinden emin olmanız gerekiyorsa, yukarıdaki komut dosyasından kaldırma komut dosyasına da göz atabilir / değiştirebilirsiniz. Benim durumumda bu sadece ev makinemdi, bu yüzden yeni başladım.



2

Öncelikle dizini oluşturmanız gerekir:

sudo mkdir /usr/local/include

İkinci:

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

1

Tüm kullanıcılarımız etkin dizine (etkin UID 50x ###### değişen) bağlı sonra bu benim organizasyon oldu.

Şimdi, x'in y'ye ait olduğu tüm dosyaların sahipliğinin değiştirilmesi söz konusudur.

Burada 501, hala tüm homebrew dosyalarıyla ilişkilendirilmiş eski sayısal kullanıcı kimliğim.

Eski kullanıcı kimliği şununla bulunabilir: ll /usr/local/Cellar

Şimdi sahipliği güncelleyin sudo find /usr/local -user 501 -exec chown -h $USER {} \;

Bu şekilde, homebrew tarafından kontrol edilmeyen veya başka bir sistem kullanıcısına ait olmayan dosyaların sahipliğini değiştirmekten kaçınırız.


1

/ Bin dizinine gidin ve şunu yazın:

chown -R $ (whoami): yönetici / usr / local / bin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.