Homebrew hatalarında yükleme


112

Rvm ve ruby ​​1.9.2 yüklemeye çalışılıyor

Zaten homebrew ve git yükledim, ancak izin hataları almaya devam ettiğim için tam güncellemeleri alamadım. Snow Leopard yeniden yüklendi ve izinler onarıldı.

Şimdi bu olur ...

$ brew install wget

Hata: / usr / local / Cellar'a yazılamıyor


stackoverflow.com/questions/4804169/… kabul edilmiş yanıt olarak işaretlenmelidir - bu sorunun yanıtlanmadığını görmeyen ziyaretçilerin devam edeceğinden
korkuyorum

Yanıtlar:


274

sudo chown -R $USER /usr/local

Kendinize /usr/local/tam orada bu hattı kullanma mülkiyetini vermeniz gerekecek . Homebrew'i kurmak için resmi belgelerin üst kısmındaki yakut tek astarı kullandıktan sonra bunu kendim yapmak zorunda kaldım. Benim için bir cazibe gibi çalıştı. sudoHomebrew için ihtiyacınız olan tek zaman bu olmalı .

Ruby one-line'ın bunu yapıp yapmadığından emin değilim. Eğer öyleyse, o /usr/localzamandan beri sistemimde başka bir şey kontrolü ele aldı .

Düzenleme : Bunu tamamen kaçırdım, ancak @ samvermette yapmadı ( cevabıma verilen yanıtlara bakın): yukarıdaki bu komutu çalıştırırsanız ve homebrew aracılığıyla özel kullanıcı izinleri gerektiren bir şey yüklediyseniz mysql, bu izinleri geri verdiğinizden emin olun ( yukarıdaki komut, içinizdeki her şeye özyinelemeli sahiplik verir /usr/local( $USER). mysql durumunda, bu…

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


16
Lütfen dikkat : bu komut / usr / local / mysql / data sahipliğini kullanıcıdan kaldıracak mysql. Benim durumumda bu mysql'nin başlamasını engelledi. Bunu şu şekilde düzeltin:sudo chown -RL mysql:mysql /usr/local/mysql/data
samvermette

24
Ben kullanarak mysql sorunu kaçınılması sudo chown -R $USER /usr/local/Cellarolarak /usr/local/zaten benim için doğru izinlere sahip
Parker

1
Ne yazık ki, kullanıcılar gelir ve kullanıcılar gider… belki bir gün İbrahim geri gelir ve onu işaretler. Olabilir. (Muhtemelen hayır.)
Ben Kreeger

4
Bu cevabı beğenmedim. Yalnızca homebrew ile ilgili soru olmasına rağmen, sistemi yalnızca bir kullanıcının kullandığını ve bu kullanıcının her şeye / usr / local sahibi olması gerektiğini varsayar. Demleme çok kullanıcılı sistemlerle çalışmıyor mu? İşe yarasa bile özensiz bir cevap. Ayrıca, bir kullanıcının bu durumla nasıl karşılaşmış olabileceğini açıklamıyor. İpucu - Kanonik talimatları kullanarak HomeBrew'u kurdum, ardından bir TimeMachine yedeklemesinden (başka bir makineye) geri yükledim. Dosya sahipliğini değiştirenin geri yükleme olduğundan şüpheleniyorum.
Jason R. Coombs

1
@ JasonR.Coombs'a katılıyorum; insanlar pratik ve güvenlik sonuçlarını anlamadan bu özensiz çözümü kullanmamalıdır. / Usr / local içindeki herhangi bir yazılım artık, kullanıcınızın altında çalışan herhangi bir şey tarafından üzerine yazılabilir ve bir güvenlik deliği açılabilir. İlk chown komutunu körü körüne çalıştırarak başka bir şeyi (MySQL'e ek olarak) mahvetmeniz tamamen mümkündür, bu noktadan sonra, az önce batırmış olabileceğiniz her şeyi tanımlamak ve düzeltmek için çok geç olacaktır.
soymak

41

Bu sorunu Mavericks'e yükselttikten sonra yaşadım ve bu sayfa, hata mesajını araştırırken en iyi arama sonucuydu. Aramaya devam ettim ve bu cevabı stack overflow.com'da buldum . Kısaca söylemek gerekirse:

sudo chmod a+w /usr/local/Cellar

Bu benim için sorunu çözdü ve yalnızca hata mesajında ​​belirtilen belirli yol için izinleri değiştirdiğinden, diğer kurulumlarda olumsuz yan etkilere sahip olma olasılığı düşük görünüyordu.

Bu yanıtı, benim yaptığım gibi bu sayfayı ilk bulan herkes için buraya koyuyorum. Ancak, kredi jdi'ye gitmelidir .


2
Herkes artık / usr / local / Cellar'a yazabileceğinden, bu bir güvence değil mi?
David Welch

Bu yanıt, diğer klasörlere (örneğin /usr/local/bin) erişim gerektiren paketler için başarısız olur .
Jason R. Coombs

11

Yalnızca Yönetici kullanıcıların yazmasına izin verebilirsiniz /usr/local/?

chgrp -R admin /usr/local
chmod -R g+w /usr/local
chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew

O zamandan beri Admin grubuna ait olan her kullanıcı yeni bağımlılıklar kurabilecektir.


Çok yöneticili makineler için daha iyi bir çözüm gibi görünüyor (yine de / usr / local / lib dizinimde aspell'in çalışması için g + x gerekiyordu).
James Snook

1
' 'Demlemek bağlantı' adım başarıyla tamamlanmadı' hatası da içinde ne geçerli olabilir almamak için bu konuya , yani sudo chgrp -R admin /usr/local/DDDD+ sudo chmod -R g+w /usr/local/DDDDDDDD olduğu bin , hisse , Kütüphane / LinkedKegs , opt
superk

1
Anwer için Thnx, "sudo" kullanmak zorunda kaldım, bu yüzden bu komut çalışmazsa, sudo ile
öneklemeye



1

Mevcut kullanıcının / usr / local sahibi olan grubun bir üyesi olmasını sağlamayı öneririm. Varsayılan olarak bu grubun olduğuna inanıyorum wheel. Kendinizi o grubun bir üyesi yapmak için:

$ sudo dscl . append /Groups/wheel GroupMembership $USER

Uygun olmayan bir çekiç olmasına rağmen, amaçlanan etkiye sahiptir - /usr/localyalnızca yükseltilmiş üyeler tarafından kullanılması (okuma / yazma) amaçlanan öğelere erişim sağlar . Bu yaklaşım, sistemdeki birden fazla (yetkili) kullanıcının homebrew kullanmasını sağlayarak grup üyeliklerinden yararlandığı için yukarıdakilerin faydalarına sahiptir.


0

Homebrew'i nasıl kurdunuz? Onların resmi kurulum talimatları bir yakut komut dosyası çalıştırmayı içerir. Bu, sizin için izin sorunlarıyla ilgilenmelidir.

Bir komut dosyası çalıştırmak istemiyorsanız, bu sayfanın / usr / local dizini için gereken izinlerdeki değişikliği açıklayan "Geliştiriciler için / usr / local konumuna yükleme" adlı bir bölümü vardır.


Bir komut dosyası kullandım ve yükledim ama yine de güncelleme sorunları vardı. Kullanıcı verilerini yeni bir dizüstü bilgisayara taşıdım. Github b / c'den birkaç geçici çözüm yapmak zorunda kaldım, komut dosyası ilk başta çalışmadı.
İbrahim

-3

DÜZENLEME : Yorumlarda belirtildiği gibi, sudo'yu homebrew ile kullanmak kötü bir fikir, bu yüzden aşağıdaki cevabı kullanmayın!


Komutu sudo ile çalıştırırsanız da bu hatayı önleyebilirsiniz:

$ sudo brew install wget

Ancak kullanmaya özen gösterin sudoçünkü birçok hata yapabilirsiniz.


Bu yaklaşım, homebrew'in kök olarak çağrılmaya izin vermeyen (sudo aracılığıyla) son sürümlerinde başarısız olur.
Jason R. Coombs
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.