Homebrew için `/ usr / local` içindeki dosyaları yazılabilir yap


35

Homebrew’in güzel bir şekilde çalışmasını sağlamaya çalıştım, fakat içindeki /usr/localher şey yazılabilir değil ve her şey düşüyor.

Sürekli tekrarlamamı söylüyor chown /usr/localve ben de denedim. Operasyon reddedildi, ben de iptal ettim. İşe benziyordu, ama duyduğum ürkütücü bir sessizlikle Unix’te kibar kabul ediliyor. Ne yazık ki, herhangi bir başarılı girişimde brew updateaynı hata kostümü ile karşılaşılmaktadır.

Komutu yeniden gönderdim -vve görünüşe göre herhangi bir şey için işleme izin verilmedi.

Cevabınız muhtemelen "UNIX öğren" dir. Sadece Ruby'deki bir eğitim için bazı iş gereksinimlerine uymaya çalışıyorum, bu yüzden şu anda bulunduğum yerden birkaç adım yukarıda.

brew doctor:

Warning: /usr/local/Frameworks isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/Frameworks
Warning: /usr/local/Cellar isn't writable.
You should `chown` /usr/local/Cellar
Warning: /usr/local/etc isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/etc
Warning: /usr/local/include isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/include
Warning: /usr/local/lib isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib
Warning: /usr/local/lib/pkgconfig isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib/pkgconfig
Warning: /usr/local/opt isn't writable.
You should `chown` /usr/local/opt
Warning: /usr/local/share isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/share
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:

    /usr/local/share/man
    /usr/local/share/man/man1
    /usr/local/share/man/man3
    /usr/local/share/man/man5
    /usr/local/share/man/man7
    /usr/local/share/man/man8
Warning: /usr/local/var isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/var

Sana brew doctoryararlı bir şey söyledi mi? Çıktıyı buraya postala.
Ian C.

@IanC. Demlenmeyle ilgili her şeyin uzun bir listesi yazılabilir olmamak. Bir yığın değiştirme pastebin yardımcı programı var mı? Bir var çok şey bunun.
Tigt

Bu çok garip. Şu an olduğundan çok daha az var.
Tigt

Just FYI: Sadece koştum brew updateve keşfettim ki, "Homebrew artık / usr / local sahipliğine sahip olmak zorunda değil." Bu soruda daha fazla bilgi . Açıkçası bu noktaya gelmek için hala / usr / local :) izinlerini geçici olarak güncellemeniz gerekecek :)
acobster

Yanıtlar:


26

Bu, dizindeki izinleri değiştirerek aşağıdaki şekilde çözülmelidir:

$ cd /usr/local
$ sudo chown -R <your-username>:<your-group-name> *

Grubunuzu bilmiyorsanız, sadece yazın id -g.


Önemli olan, -Rözyinelemeli hale getirmektir. Ve muhtemelen chownkullanmanız gerekir sudo. Kullanıcı grubu için genellikle staffOS X’de kullanıyorum
nwinkler

İlginç. Grubu kullanmak neden sadece kullanıcıdan çok farklı?
Tigt

4
Neden / usr / local kullanıcısına ait olmak doğru? Bence / usr / local kullanan ve sessizce ele geçirilebilecek başka birçok program olduğundan, bu bir güvenlik riskidir. Demlemek gerçekten çok sert bir şeye mi ihtiyaç duyuyor?
dfrankow

1
Bunun 'personel' grubunu seçtiği için tehlikeli olduğuna inanıyorum, yani işletim sistemindeki her kullanıcı / usr / 'ın içeriğini değiştirebilir. Muhtemelen 'admin' 'e geçmelisin.
17:30

1
@dfrankow evet, bu bir homebrew fırtınası. Aynı makinede iki kullanıcı varsa ne olacağını bile bilmiyorlardı.
poige

22

Komutu yükseltilmiş priledges ile çalıştırmak için sudo kullanmalısınız :

sudo chown -R `whoami` /usr/local

Yaptım. "Operasyon reddedildi, ben de iptal ettim."
Tigt

1
Balık kabuğu kullanıcıları için olacaksudo chown -R (whoami) /usr/local
kibin

10

Ben MacOS 10.13.4 ile dün bu konuyu bakan ve denedim sudo chgrp -R admin /usr/localya sudo chown -R <your-username>:<your-group-name> /usr/localhangi olsun Operation not permittedkullanılarak olsa bile hatasudo

Sadece çalıştı ben Yani chgrpiçin Homebrewiçin ilgili klasöre admin(My kullanıcı olduğunu adminve hibe Çalıştırdığınız kullanıcı bağlıdır, grubun, farklı bir gruba değişikliğine beed olabilir) adminbu komutları kullanarak gruba bu klasörlere yazma erişimi

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

Bu komutları çalıştırdıktan sonra sorun çıkarmadan yeni bir paket yükleyebilirim. Herhangi bir izin sorununa basarsanız, ilk iki komutu tekrar çalıştırmayı deneyin.

Bunun diğer kullanıcılara macOS 10.13 ile yardımcı olacağını umuyorum.

Not: /usr/localGrubun sahibini değiştirmek veya grubunu değiştirmek ve grubunuza /usr/localerişim izni vermek çalışsa da , diğer alakasız klasörü de değiştirirken ASLA yapmamalısınız. İhtiyacınız olan klasör (leri) değiştirmek çok daha güvenlidir.


bu gerçekten benim için iyi gidiyor! <3 teşekkürler
DariusV

Bu doğru cevap olarak oylanmalı! Yardımın için teşekkürler!
Yini

2

Dizinlerdeki izin sorunlarını çözmek için aşağıdaki komutu uygulayabiliriz:

brew prune

1

Benim için çalıştı.

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

0

Reza'nın bu sorudaki cevabı benim için çalıştı:

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

/ Usr / local öğesinin iznini değiştiremezsiniz, ancak altındaki klasörler için doğru iznini değiştirebilirsiniz.

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.