/ Usr / local sahipliğinin kullanıcı adımdan köke değişmesine neyin neden olduğunu nasıl anlayabilirim?


13

homebrewBazı web geliştirme uygulamaları için paket yöneticisi olarak kullanıyorum . Tutmak için brewyukarı güncel koşuyorum update brewher iki üç günde ve aynı zamanda çalışacak brew doctor. Genellikle, bu iyi ve brewdemlemeye hazır olduğumu söylüyor.

Ancak arada sırada aşağıdaki hatayı alıyorum:

Uyarı: / usr / local / etc yazılamaz.

Homebrew tarafından yönetilmeyen bir yazılım "sudo make install" yazılımınız varsa, bu olabilir. Bir formül bu dizine bir dosya yazmaya çalışırsa, bağlantı adımında yükleme başarısız olur.

Muhtemelen chown/ usr / local / etc

Uyarı: / usr / local dizini yazılamaz. Homebrew'u yüklediğinizde bu dizin yazılabilir olsa bile, diğer yazılımlar bu dizindeki izinleri değiştirebilir. Airfoil'in "InstantOn" bileşeninin bazı sürümlerinin bunu yaptığı bilinmektedir.

Muhtemelen / usr / local'ın sahipliğini ve izinlerini kullanıcı hesabınıza değiştirmelisiniz.

İzinleri kullanıcı adıma sıfırlamak yeterince kolay. Sonrasında iyi brewgörünüyor.

Ama bunun olmasına ne sebep oluyor?

İzinlerin değişmesine neyin neden olduğunu gösteren bir günlük var mı?


3
Hiçbir günlük ama rood tarafından sahip olunan / usr / local Unix standart olduğunu ve bu nedenle orada herhangi bir yapı bunu beklediğiniz unutmayın. Çözüm, bir dizini hem paket yöneticisi (Homebrew) hem de standart Unix derlemesi ile karıştırmayın - Bunlardan biri için başka bir dizin kullanın
user151019 25:15

3
Paket yöneticisinin kullandığı konuma aynı konuma yazılım eklemek kötü bir fikirdir, bu nedenle sahiplik ve izinler de değişir /usr/local. Ancak ısrar ederseniz, kendi kurduğunuz paketler için make installkullanmadan sudokullanabilirsiniz.
fd0

1
OS X'i yükseltme genellikle / usr / local sahipliği ve izinlerini sıfırlar.
mspasov

1
@ Diğerleri ah sorudan ziyade Homebrew'dan okudum
user151019

1
Mac'inize varsayılan olarak yüklenecek şekilde yapılandırılmış başka ne (elle veya başka bir paket yöneticisi aracılığıyla) yüklediniz /usr/local?
dan

Yanıtlar:


13

Aynı sorunu yaşadım ve Sophos otomatik güncellemesinin suçlandığı ortaya çıktı. Bunu çalıştırarak anladım:sudo fs_usage | grep "usr/local"

Biraz zaman aldı, ama sonunda Sophos'un "Installation" arka plan programının / usr / local'ın izinleriyle uğraştığını gördüm.

Hala bu davranış için uygun bir çözüm bulmaya çalışıyorum.

EDIT: Sophos bu sorunu giderdi inanıyorum, bu cevabın yorumlarındaki bağlantıya bakın. En azından benim için sabit gibi görünüyor!


4
Burada bir tartışma var: community.sophos.com/products/free-antivirus-tools-for-desktops/… Bu, Kasım 2015'te düzeltilmelidir
JoeZuntz

@JoeZuntz Güzel bul! Gerçekten bir düzeltme bastırıyorlar.
Diğerleri

@others bu bilgi için teşekkürler. 10.11.1'e yükselttikten sonra her şeyi düzeltebildim ve homebrew'u tekrar çalıştırdım, ancak daha sık olmamakla birlikte, her demleme yükseltmesine gittiğimde, izinler tekrar değişti. Hangi yazılım izinleri / usr / local değiştirmeye devam etti beni rahatsız ediyordu.
Tim X

@TimX Evet biraz berbat ... Neyse ki Sophos 20 Kasım'da gelecek haftanın sonunda yama yapıyor gibi görünüyor.
Diğerleri

4

Filewave'in suçlu olduğu ortaya çıkıyor. Filewave, okulumuz tarafından yazılım güncellemelerini göndermek için kullanılan bir sistem yönetim yazılımıdır. Giriş için teşekkürler.


2

İzin hırsızını nasıl alacağım hakkında kabaca bir fikrim var. Bu sorununuza bir çözüm değil, daha çok bir çözüm.

Bu klasörü izlemek için Automator'da veya Hazel (klasör eylemleri) ile bir bekçi köpeği yazmaya ne dersiniz?

  • Klasör herhangi bir şekilde değiştirilirse, izinlerin ve o anda erişilen işlem kimliğinin anlık görüntüsü alın fuser <foldername>.
  • işlem tablosunda işlem kimliğini ( ps auxwwwwww | grep <process id>) ararsınız ve son olarak
  • toplanan bu bilgilerle kendinize bir e-posta yazın.

Ne yazık ki ben hiçbir Automator sadhu değilim, ama Google tarafından böyle bir sorun için birçok çözüm olduğunu öğrendim.


0

Time Machine kullanıyorsanız, Backups.backupdbTerminal'de keşfederek izinlerin değiştiği yaklaşık süreyi bulabilirsiniz . ls -ldZaman damgalı klasörlerde kullanın , ör.

ls -ld /Volumes/Backup/Backups.backupdb/Mac/2015-12-25-120000/Macintosh\ HD/usr/local 

Bu, sahip ve grup bilgilerini gösterir.

Değişikliğin gerçekleştiği tarihe ulaştıktan sonra, sisteminizde başka nelerin değişebileceğini öğrenebilirsiniz. Basit bir teknik Finder Dosyası kullanmaktır ›Bir Last modified datekriter bulun ve ekleyin . Diğer iyi araçlar findve mdfindTerminal.


-1

Bu, sisteminizi güncellemenin bir yan etkisidir; OS X, / usr / local kök sahip bir klasörde bulunduğundan, güncelleme işlemi sırasında büyük olasılıkla bazı genel izin "onarım" yapar.


AFAICT, El Capitan'a yükseltme benim için soruna neden olan şey
Giuseppe

-3

Manuel olarak yapmak yerine Disk Utilityselect Macintosh HDsonra run Verify Disk Permissionve sonra Repair Disk Permissiongerekirse kullandınız mı ?

Şimdi bu sorununuzu çözmemelidir, ancak ev yapımı demirin izinleri ne zaman değiştirdiğini görmek iyi bir 'bilinen' başlangıç ​​noktasıdır. Eğer şans varsa altta yatan sorunu gösterebilir.

Ayrıca new update -vçıkış ayrıntılı daha artı eski günlükleri için buradayız ~/Library/Logs/Homebrewuyarınca homebrew günlüğü yapar Nerede?


2
Disk Utility/usr/localbu dizin Yosemite'nin yeni bir yüklemesinde bulunmadığından, izinleri doğrulamaz veya onaramaz .
dan

Bu hipotezi /usr/localbana ait olan ve koşarak yeni Yosemite üzerinde kontrol ettim DU. Herhangi yoktur /usr/localdahilinde DUgünlüğüne. Ve /usr/localhala bana ait.
dan
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.