brew link unbound `Döndürür` / usr / local / sbin yazılabilir değil


4

Unboundbrew komutunu kullanarak yüklemeye çalışıyorum .

İşte için çıktı brew install unbound:

Warning: unbound 1.6.7 is already installed, it's just not linked.
You can use `brew link unbound` to link this version.

Gördüğünüz gibi, brew link unboundsınırsız 1.6.7 ile bağlantı kurmak için kullanmam istendi .

Ancak aşağıdaki hatayı aldığım için bağlantı kuramadım:

Linking /usr/local/Cellar/unbound/1.6.7...
Error: Could not symlink sbin/unbound
/usr/local/sbin is not writable.

Buradaki diğer yığın akışı bende .

Ve cevap sudo chown -R $(whoami) /usr/localaşağıdaki hatayı yaratır:

chown: /usr/local: Operation not permitted

MacOS High Sierra Sürüm 10.13.2 kullanıyorum. Homebrew versiyonum ise 1.4.3.

Bu sorunu nasıl çözebilirim?


Lütfen OQ’nuza, MacOS’un hangi sürümünün sorununuzla ilgili olduğunu ekleyin.
dan

Olarak koşmayı denedin sudomi?
Praveen Premaratne

Yanıtlar:


8

Varsayılan olarak / usr / local / sbin mevcut değil. Klasör, demleme takılarak oluşturulmalı, sahip / izinler $ (whoami): admin / 775 olarak ayarlandı. / Usr / local / dizinindeki çoğu / tüm klasörler, demleme yapan kullanıcıya aittir - bu, varsayılan kurulum ve yapılandırmanın bir parçasıdır.

Öte yandan, bazı üçüncü taraf araçlar daha önce bu klasöre kurulmuş olabilir (örn. AFAIR procexp veya Smartmontools orada yüklü olmalıdır). O zaman sahip / izinler muhtemelen root: wheel / 755 veya root: wheel / 775 olarak ayarlanmıştır.

Sorununuzu çözmek için / usr / local / sbin dosyasının olup olmadığını ve klasör izinlerini kontrol edin.

Aşağıdaki komut, mevcut değilse ve dünyayı yazılabilir hale getirir, ancak sahibini değiştirmezse bu klasörü oluşturur: group:

if [ ! -d /usr/local/sbin ]; then sudo mkdir /usr/local/sbin; fi && sudo chmod 777 /usr/local/sbin

Şimdi sınırlanmamış olanı bağlayabilirsiniz:

brew link unbound

Dünyanın yazılabilir adımını şu şekilde geri alabilirsiniz:

sudo chmod 775 /usr/local/sbin

Klasörü ~ / .bash_profile dizinindeki kullanıcının PATH'sine veya sistemin PATH'sini / etc / paths içerisinde eklemeyi unutmayın.


Eğer hatayı alırsanız:

Error: Could not symlink sbin/unbound
/usr/local/sbin is not writable.

kullanıcı, gerçekte çalıştırılan komutla klasöre yazma iznine sahip değildir.

Komut sudo chown -R $(whoami) /usr/local, hataya rağmen tüm alt klasörlerin sahibini ve içeriğini $ (whoami) olarak değiştirecek chown: /usr/local: Operation not permitted. Bunun tek istisnası / usr / local / dizininde SIP korumalı bir öğe olacaktır. Varsayılan olarak, hiçbir dosya ve klasör olsa da korunmaz.

Bu nedenle hata mesajı yanlıştır ve muhtemelen sudo chown -R ...komutunuzu girerek zaten başarılı olmuşsunuzdur ve sadece bir kez daha sınırsız bağlamayı denemelisiniz .

Klasör izinlerini girerek kontrol edebilirsiniz:

ls -lae /usr/local/sbin

Korunan tüm öğeleri yerel alt dizinlerinde girerek alabilirsiniz:

ls -lae -R /usr/local | grep restricted

6

Koşmak brew doctorbenim için hile yaptı.

Tüm eksik klasörleri, sorunlara neden olduğu bilinen izinleri olan klasörleri ve başka bir işlem bir şeyleri değiştirdiğinde ya da işleri değiştirdikten sonra yapmanız gereken diğer düzeltmeleri tanılar.


0

Koşmak brew doctorsenin için sorunları teşhis edecek ... Benim için sudo mkdir -p /usr/local/sbinve benim sudo chown -R $(whoami) /usr/local/sbiniçin hile yaptım sonra çalıştırarak php ile bağlantılı brew link php

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.