El Capitan'da terfi demeti


38

Ben sadece yükseltme yaptım El Capitanve güncellemeye çalıştığımda brewaşağıdaki hatayı aldım:

$ brew update
Error: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami):admin /usr/local

Tavsiyeye devam etmeden önce chown, El Capitan'ın yeni çıktığı göz önüne alındığında, burada ilerlemenin doğru yolu bu mu? Bu adım neden gerekli ve bu komutu çalıştırmanın olası istenmeyen sonuçları nelerdir?

Durumda ben de El Capitan hakkında iki konuyu buldum, yardımcı olur brew: 40837 ve 41665 ama bu soruna bir çözüm belli değildi. brewEl Capitan'da güvenilir bir şekilde kullanmaya devam etmek için ne yapabilirim ?


2
Peki mesajın önerdiği gibi yaptın mı, mülkiyeti değiştirdin /usr/localmi?
user3439894

Bu, aynı makinede birden fazla kullanıcı (veya farklı profilleri olan birden fazla hesabı olan bir kullanıcı) için mükemmel bir soru ortaya çıkarır.
Walt Stoneburner

4
Yazma sudo chown -Rbana willies verir. Diğer parametrelerin ne olduğu önemli değil. Homebrew’in içinde bulunduğumdan daha fazlası var /usr/localve bu kesinlikle güvenli bir emir değil. Time Machine aracılığıyla, El Capitan'ın alt dizinleri değil chown, yalnızca yazdığını onayladım /usr/local. Böylece özyinelemeli olmayan bir ters çevirme ile kurtulmayı başarabildim, yani sudo chown $(whoami):admin /usr/local. YMMV.
duozmo

@duozmo haklı. -Rİçinde sudo chown -Rgerçekten ağır teslim edilir. Bu etki alanı üzerinde bir bütün olarak etki alanı iddia Brew için /usr/local
eşittir

Yanıtlar:


31

Demek istediğim, sana çözümü orada veriyorlar. Ben de aynı problemi yaşadım ve koştum:

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

ve işe yaradı.


1
+1 Ayrıca, kullanıcı tanımımı tanımlandığı gibi sıfırlamam gerekiyordu. Bu küçük çimdik sonrası başka sorun yok - homebrew ve paketlerim 10.11'de çok güvenilirdi.
bmike

22
Bu soruya gerçekten cevap vermiyor: Bir neden, Apple’ın bir nedenden dolayı / usr / local'i kapattığını ve bu düzeltmenin El Capitan için uygun olmadığını varsayıyor olabilir. Şimdi Apple'ın bir rehberlik sağlayıp sağlamadığını görmek için gidiyorum. Soru şu ki ... ... El Capitan'ın yeni ortaya çıkması durumunda, buraya devam etmenin doğru yolu bu mu?
Michael Welch,

1
@MichaelWelch Cevap bu düzenlemeden önce gönderildi.
DisplayName

1
Maalesef @DisplayName Zaman damgalarına bakmalıydım.
Michael Welch,

2
Bu doğru cevap. Bakınız github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/… - $ brew doctorBir flacbağımlılığın eksik olduğunu keşfettim . $ brew install flacİnatla $ brew updatebirkaç kez daha kaçmak zorunda kaldıktan sonra .
Ando

9

Artık bununla ilgili kafalarımızı kırmamız gerekmiyor. Tavsiyeyi riske attım ve önerilen izin değişikliğini yaptım. Sonra, en yeni homebrew'e güncelleme yaparken şu güven verici mesajı aldım:

Homebrew artık / usr / local sahipliğine sahip olmak zorunda değil. Dilerseniz / usr / local komutunu varsayılan sahipliğine geri döndürebilirsiniz: sudo chown root: wheel / usr / local


Peki bu sorunu nasıl çözebilirim?
Rajesh Maurya

@RajeshMaurya çözümü karolus tarafından kullanıyor
JannieT

8

Yukarıdaki bazı güvenlik sorularına göre, iletişim kutusu başarılı bir demleme güncellemesinden sonra sıfırlama talimatları verir. Koşu sonrası

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

Ve sonra

brew update

Güncelleme başarılı bir şekilde çalıştıktan sonra, iletişimin şunu yapması gerektiğini belirtmesi gerekir:

sudo chown root:wheel /usr/local

Bundan sonra, MacOS 10.12 ile ilgili güvenlik kaygılarını hafifletmelidir.


chown: / usr / local: Operasyona izin verilmiyor
Rajesh Maurya

6

Verilen çözüm yoktu değil iş için beni:

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

Bu varyasyon benim için çalıştı:

sudo chown -R $USER /usr/local/


1
sudo chown -R $ USER / usr / local / son makrolarda benim için çalıştı
Alex Trott

1
chown: / usr / local /: Operasyona izin verilmiyor
Rajesh Maurya

ekle sudosonra root seviye şifresini yaz
Brian Spiering

1
Hala açık: / usr / local /: Root şifresini yazsam bile işleme izin verilmiyor.
2myCharlie,

0

Bu komutu kullanarak düzeltirim sudo chown -R admin /usr/local.


-1

Lütfen SIP’e şununla bakın:

csrutil status

sistem bütünlüğü koruması "etkin" olarak ve son Apple özelliği "kısıtlı" olarak ayarlandı:

csrutil 

3
Bu, soruda belirtilen sorunu nasıl çözer?
nohillside

-1

Benim için çalıştı.

sudo chgrp -R admin /usr/local
sudo chmod -R g+w /usr/local

1
Bu çözümlerin ikisi de benim için çalışmıyor. Hala gösteriyor: chown: / usr / local: Operasyona izin verilmiyor
2myCharlie

-2

sistem bütünlüğü korumasının devre dışı bırakılması gerekiyor. Bununla yapabilirsin.

sudo nvram boot-args="rootless=0";osascript -e 'tell app "loginwindow" to «event aevtrrst»’

Bu, Sistem Bütünlüğü Koruma sistemini tümüyle devre dışı bırakır. Kurtarma Modundan da yapabileceğinizi düşünüyorum. Sudo ile bir şeyler yaparken hala root şifrenizi girmeniz gerekiyor, fakat SIP tarafından kilitlenmediniz. Ayrıca yanlışlıkla izinleri ayarlamaya çalışırken dizinleri açmaya da gitmezsiniz.


3
Aşağıdaki mülkiyeti değiştirmek için SIP'yi devre dışı bırakmaya gerek yoktur /usr/local.
yokuş yukarı
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.