Зробіть файли в `/ usr / local`, які можна записувати для домашньої мови


35

Я намагався примусити домашню роботу добре працювати, але, здається, все все /usr/localне піддається запису, і все перепадає.

Це постійно говорить мені про рекурсивність chown /usr/local, і я спробував це. Операція відхилена, тому я це зробив. Здавалося, це працює, але з моторошною тишею, яку я чую, в Unix вважають ввічливою. На жаль, будь-які успішні спроби brew updateзустрітися з однаковою какофонією помилок.

Я повторно виконую команду, -vі, здається, що операція заборонена для нічого, що знаходиться всередині.

Наскільки відповідь, ймовірно, "дізнайся UNIX", я просто намагаюся виконувати деякі вимоги до роботи для підручника з Ruby, так що це кілька кроків вище, де я зараз перебуваю.

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

Чи brew doctorговорить вам щось корисне? Опублікуйте вихід тут.
Ян C.

@IanC. Це довгий список того, що все, що стосується заварки, не піддається запису. Чи є утиліта stackexchange pastebin? Це надзвичайно багато .
Тігт

Ну, це дивно. Зараз його набагато менше, ніж було.
Тігт

Тільки FYI: Я щойно побіг brew updateі виявив, що "Homebrew більше не потребує права власності на / usr / local". Більше інформації в цьому питанні . Очевидно, щоб дійти до цього пункту, вам все одно потрібно буде тимчасово оновити дозволи на / usr / local :)
acobster

Відповіді:


26

Це слід вирішити, змінивши хімічні речовини в цьому каталозі наступним чином:

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

Якщо ви не знаєте своєї групи, просто введіть id -g.


Важлива частина полягає в тому, -Rщоб зробити його рекурсивним. І вам, мабуть, доведеться зайнятися chownвикористанням sudo. Для групи користувачів я зазвичай використовую staffOS X.
nwinkler

Цікаво. Чому використання групи настільки відрізняється від користувача?
Тігт

4
Чому правильно / usr / local бути власником вашого користувача? Я думаю, що це ризик для безпеки, оскільки існує багато інших програм, які використовують / usr / local і можуть мовчки перейнятись. Чи справді пивоваріння потребує чогось такого драстичного?
dfrankow

1
Я вважаю, що це небезпечно, оскільки він вибирає групу "персонал", а це означає, що кожен користувач в ОС може потім змінити вміст / usr /. Ви, ймовірно, повинні перейти на "адміністратор".
Індолінг

1
@dfrankow так, це помилка домородіння. Вони навіть не думали, що станеться, якщо на одній машині є два користувачі.
poige

22

Ви повинні використовувати sudo для запуску команди з підвищеними правами, наприклад:

sudo chown -R `whoami` /usr/local

Я зробив. "Операція відмовлена, тому я це зробив".
Тігт

1
Для користувачів рибних раковин це будеsudo chown -R (whoami) /usr/local
кібін

10

Я вчора зіткнувся з цією проблемою з macOS 10.13.4, і я намагався отримати sudo chgrp -R admin /usr/localабо sudo chown -R <your-username>:<your-group-name> /usr/localотримати Operation not permittedпомилку навіть при використанніsudo

Тож я спробував лише chgrpдля Homebrewпов’язаної папки admin(Мій користувач у adminгрупі, залежить від користувача, якого ви працюєте, можливо, ви можете змінити на іншу групу) і надати adminгрупі запис доступу до цих папок за допомогою цих команд

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/

Після виконання цих команд я можу встановити новий пакет без жодних проблем. Якщо ви знову потрапили в будь-яку проблему з дозволом, спробуйте виконати перші дві команди, замінивши ім’я папки на те, на яке ви потрапляєте з проблемою дозволу.

Сподіваюся, це допоможе іншим користувачам з macOS 10.13.

Примітка. Навіть незважаючи на те, що зміна власника /usr/localабо зміна групи /usr/localта надання доступу для вашої групи може працювати, НІКОЛИ не робіть цього, коли ви також змінюєте іншу непов'язану папку. Змінення потрібної вам папки набагато безпечніше.


це дійсно добре для мене! <3 подяки
DariusV

Це слід проголосувати як правильну відповідь! Спасибі за вашу допомогу!
Yini

2

щоб вирішити проблеми з дозволами в каталогах, ми можемо виконати таку команду:

brew prune


0

Відповідь Рези на це запитання спрацювала для мене:

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

Ви не можете змінити дозвіл на / usr / local, але ви можете змінити потрібний дозвіл для папок під ним

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.