Ошибка при создании общих файлов и папок

Обновлено: 21.11.2024

Закрыто. Этот вопрос не соответствует правилам переполнения стека. В настоящее время ответы не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.

Закрыт 2 года назад.

При установке tig HomeBrew отображает следующие проблемы при установке зависимости:

15 ответов 15

После ответа Алекса я смог решить эту проблему; кажется, что это проблема, не связанная с устанавливаемыми пакетами, а с правами доступа к доморощенным папкам.

Для некоторых пакетов вам также может понадобиться сделать это в /usr/local/share или /usr/local/opt :

Разве повторное владение всеми файлами /usr/local/bin для текущего использования не создает каких-либо проблем для системы или других пользователей?

Разве sudo chown -R whoami :admin /usr/local/bin не будет эквивалентно команде в ответе без необходимости замены yourusename на ваше фактическое имя пользователя?

На моем Mac (10.9.5) разрешения /usr/local/bin (и друзей), кажется, возвращаются к drwxr-xr-x+ и корневому колесу каждый день. Я должен перенастраивать разрешения каждый раз, когда хочу установить brew install . Я предполагаю, что ОС сбрасывает разрешения, чтобы защитить меня? Как я могу остановить это? (Я пробовал chflags uchg… но это мешает установке brew.)

Я добавил свой аккаунт в группу "Колесо". Это позволяет мне «sudo chmod -R g+w /usr/local» — это позволяет членам группы «wheel» записывать в папки. Кажется безопаснее, чем сменить владельца этих конфиденциальных папок на менее безопасную учетную запись, чем root.

Вместо того, чтобы запускать какую-либо конкретную команду, я бы рекомендовал запустить brew doctor и серьезно отнестись ко всем предупреждениям. Могут быть и другие проблемы, с которыми вы застряли, и которые не могут быть отражены в этом вопросе.

Кроме того, поскольку brew со временем обновляется, определенные команды могут оставаться или не оставаться действительными. brew doctor , тем не менее, гарантирует, что вы будете получать актуальные средства устранения неполадок.

Не могу поверить, что ваш ответ менее популярен. Это, безусловно, более разумно, чем догадки, высказанные выше.

brew doctor не решит проблему, он только сообщит вам об этом, а когда вы прислушаетесь к совету врача, brew скажет, что не может этого сделать. Это не решение

Возможно, кто-то улучшил его. Теперь доктор варева предлагает мне запустить аналогичный cmd для самого популярного ответа, и после этого символическая ссылка варки работает. У меня мак, так что посмотрим сколько протянет. :-)

Это было очень полезно, спасибо. Исправлены некоторые другие специальные каталоги, чтобы пропустить указанное выше предложение.

Для тех, кто ищет /usr/local/sbin, ошибка недоступна для записи:

ОБНОВЛЕНИЕ: это может быть /usr/local/someOtherFolderName, например, /usr/local/include . Вам просто нужно создать эту папку с помощью:

Сначала создайте папку sbin, обратите внимание, что для этого требуются права sudo

sudo mkdir sbin

sudo chown -R $(whoami) $(brew --prefix)/*

заварить ссылку yourPackageName

у меня тоже сработало (OS X 11.2). Внезапно проблема с GNU fortran. но теперь все снова работает нормально. Спасибо за подсказку

Другие ответы верны, насколько они есть, но они не отвечают, почему может возникнуть эта проблема и как устранить эту основную причину.

Причина

Есть две возможные причины этой проблемы:

  1. Доморощенная установка была выполнена с использованием пользователя, отличного от того, которым вы сейчас пользуетесь. Homebrew ожидает, что только пользователь, установивший его изначально, захочет его использовать.
  2. Вы установили программное обеспечение, которое записывает данные в /usr/local без использования brew. Это причина, по которой варит доктор, если вы ее запустите.

Решение

Доморощенный мультиплеер

Если у вас есть несколько учетных записей пользователей и вы хотите, чтобы несколько из них могли использовать brew, вам необходимо выполнить несколько шагов, иначе вам придется постоянно менять владельца файловой структуры Homebrew каждый раз, когда вы менять пользователей, а это не очень хорошая идея.

Подробные инструкции можно найти в Интернете, но краткий ответ таков:

  1. Откройте Системные настройки
  2. Нажмите Аккаунты
  3. .
  4. Нажмите "+" (при необходимости сначала разблокируйте)
  5. В разделе Новая учетная запись выберите Группа
  6. .
  7. введите пиво
  8. Нажмите Создать группу
  9. .

Домашнее пиво для одного пользователя

Если вы не пытаетесь использовать более одного пользователя с Homebrew, тогда, вероятно, достаточно решения, предоставленного другими ответами, основанного на предложениях brew doctor:

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

sudo chown -R $(whoami) /Library/Caches/Homebrew

Подтверждение

После этих шагов brew doctor должен сообщить об успешном выполнении любым пользователем в группе brew при условии, что вы вышли из системы и снова вошли в систему, чтобы применить новое членство в группе (если вы выбрали многопользовательский маршрут). .Если вы только что исправили некоторые вещи для однопользовательского хоумбрю, то выходить из системы и снова входить в нее не нужно, так как ни одно из ваших членств в группах не изменилось.

Спасибо! Вероятно, мне следует больше узнать о группах пользователей unix. Я совершенно не знаю, как это работает, чтобы достаточно хорошо переварить рассуждения. Но звучит очень разумно, спасибо за подсказку!

группы unix проще, чем вы можете предположить: каждый файл имеет разрешения на чтение, запись и выполнение, доступные для «пользователя» и «группы», которым принадлежит этот файл, а также для «других». Если вы установите группу, которой принадлежит файл или папка, и добавите разрешения на запись в «группу» для этой папки, то любой пользователь в этой группе сможет писать в папку. Там действительно не больше, чем это. не так сложно, как разрешения в Windows.

Значит, это простой способ объединить систему разрешений набора файлов в группу, чтобы несколько пользователей могли легко добавляться и применять все эти разрешения за один раз?

Все еще кажется мне немного опасным иметь конфиденциальный каталог, такой как /usr/local/bin доступный для групповой записи, особенно. в многопользовательской среде. Это действительно "официальный" способ заваривания?

Я обнаружил, что для моей конкретной настройки работают следующие команды

И затем это показало мне, где были мои ошибки, а затем эта команда, немного отличающаяся от комментария выше.

Я обнаружил ту же проблему, мы можем решить ее в три этапа:-

Если у вас по-прежнему возникают проблемы со связыванием, скажем, для mysql , просто напишите

Варите, доктор, палец вверх! Не выполнял brew prune, но установил другие отсутствующие пакеты, и это сработало для mongodb.

Мне помогло. Но вместо brew prune использовал очистку brew, как предложил @hanumanDev. Спасибо вам обоим.

Для тех, кто столкнулся с этой проблемой (через 4 года после публикации этого поста) при работе с Mac OS High Sierra: описанные здесь шаги помогли мне решить проблему. По сути, просто описывает удаление и переустановку brew.

После выполнения этих шагов brew link заработал как часы!

Для меня решением было запустить brew update .

Итак, СДЕЛАЙТЕ ЭТО СНАЧАЛА.

Это может быть обычной практикой для людей, знакомых с домашним пивом, но я не из таких людей.

Редактировать: я обнаружил, что мне нужно обновиться, запустив brew doctor, как было предложено в ответе @kinnth на тот же вопрос.

Общий рабочий процесс устранения неполадок может выглядеть следующим образом: 1. запустите brew update 2. если это не поможет, запустите brew doctor и следуйте его указаниям 3. если это не поможет, проверьте переполнение стека

Всё, что делает пивовар, это указывает на то, что у меня в подвале есть нелюбимые кеги. так что это никак не решает проблему OP

@AlxVallejo Это то, что я сделал, чтобы решить проблему, которая возникла у меня, когда я получал почти такую ​​же ошибку, как и OP. Сообщение, которое вы получили от Brew Doctor, кажется мне другой проблемой. Рабочий процесс «1. запустите обновление brew 2. если это не поможет, запустите brew doctor и следуйте его указаниям 3. если это не поможет, проверьте переполнение стека», вероятно, все еще применяется.

Это связано с тем, что текущему пользователю не разрешено писать по этому пути. Таким образом, для изменения разрешений r/w (чтение/запись) вы можете либо использовать 1. терминал, либо 2. графическое окно «Получить информацию».

<р>1. Использование терминала

Погуглите, как использовать команды chmod/chown (изменить режим/сменить владельца) из терминала

<р>2. Использование графического «Получить информацию»

Вы можете щелкнуть правой кнопкой мыши папку/файл, права доступа к которому вы хотите изменить, а затем открыть Get Info, в котором появится окно, подобное приведенному ниже, в нижней части которого вы можете легко изменить права чтения/записи:

Не забудьте изменить разрешение обратно на «только чтение» после временной работы, если это возможно

Вместо Проводника откройте общую папку с помощью командной строки, используя следующую команду:

Дополнительную информацию см. в разделе Использование сети.

Включите функцию поддержки SMB 1.0 из панели управления, выполнив следующие действия:

Откройте панель управления.

Выберите «Программы» > «Программы и компоненты» > «Включить или отключить функции Windows» > «Поддержка общего доступа к файлам SMB 1.0/CIFS».

Отметьте Клиент SMB 1.0/CIFS и нажмите Enter.

Включите сетевое обнаружение и параметры общего доступа к файлам и принтерам, выполнив следующие действия:

Откройте панель управления.

Выберите Сеть и Интернет > Центр управления сетями и общим доступом > Дополнительные параметры общего доступа.

Выберите Включить сетевое обнаружение.

Выберите Включить общий доступ к файлам и принтерам в разделе Личное.

Выберите Сохранить изменения.

Установите для типа запуска указанных служб значение «Автоматически», чтобы компьютер был виден в сети. Вот как это сделать:

  1. Начать.
  2. Откройте Поиск, введите слово Службы и нажмите Enter.
  3. Измените свойство "Тип запуска" на "Автоматически" для следующих служб.
    • Хост поставщика функций обнаружения
    • Публикация ресурсов для обнаружения функций
    • Обнаружение SSDP
    • Хост устройства UPnP
  4. Перезагрузите систему.

Вы можете получать следующие сообщения об ошибках:

У вас нет разрешения на доступ\\

Разрешение

  1. Нажмите и удерживайте (или щелкните правой кнопкой мыши) общую папку.
  2. Выберите «Свойства», а затем выберите «Расширенный общий доступ» на вкладке «Общий доступ».
  3. Выберите «Разрешения», установите флажок «Разрешить полный доступ ко всем» и нажмите «Ввод».
  4. Нажмите "ОК" в диалоговом окне "Расширенный общий доступ".

Вот как предоставить разрешение «Полный доступ» всем:

  1. Выберите "Изменить" на вкладке "Безопасность".
  2. Выберите "Добавить", введите Все в поле "Введите имена объектов для выбора" и нажмите клавишу "Ввод".
  3. Отметьте Разрешить для полного доступа ко всем и нажмите Enter.
  4. Закройте диалоговое окно "Свойства".

Вот как убедиться, что протокол TCP/IP NetBIOS включен:

Откройте Поиск, введите слово Службы и нажмите Enter.

Дважды щелкните TCP/IP NetBIOS Helper на правой панели и убедитесь, что для свойства Тип запуска установлено значение Автоматически.

Перейдите в Панель управления > Сеть и Интернет > Центр управления сетями и общим доступом, выберите Изменить параметры адаптера на левой панели, а затем дважды щелкните Ethernet.

Выберите «Свойства» и дважды щелкните «Протокол Интернета версии 4 (TCP/IPv4)» на вкладке «Сеть».

Выберите «Дополнительно», выберите «Включить NetBIOS через TCP/IP» на вкладке WINS и нажмите «Ввод».

Дважды нажмите OK, чтобы закрыть диалоговое окно.

Вы не можете получить доступ к этой общей папке, поскольку политики безопасности вашей организации блокируют неавторизованный гостевой доступ

Разрешение

Вы можете включить гостевой доступ со своего компьютера одним из следующих способов:

Способ 1. Включите небезопасный гостевой вход с помощью редактора реестра

Откройте редактор реестра.

Перейдите в раздел Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation .

Вы должны создать ключ, если он не существует. Нажмите и удерживайте (щелкните правой кнопкой мыши) Windows, выберите «Создать» > «Ключ» и назовите ключ LanmanWorkstation.

Нажмите и удерживайте (щелкните правой кнопкой мыши) LanmanWorkstation, выберите «Создать» > «Значение DWORD (32-разрядное)», а затем назовите его AllowInsecureGuestAuth. Дважды щелкните его, задайте для параметра «Значение» значение 1 и нажмите клавишу ВВОД.

Способ 2. Включите небезопасный гостевой вход с помощью редактора локальной групповой политики

Откройте поиск, введите слово gpedit.msc и нажмите клавишу ВВОД.

Выберите Конфигурация компьютера > Административные шаблоны > Сеть > Рабочая станция Lanman.

На правой панели дважды щелкните Включить небезопасный гостевой вход.

Выберите "Включено" и нажмите клавишу ВВОД.

Код ошибки: 0x80004005. Неизвестная ошибка

Вместо автоматического получения IP-адреса укажите IP-адрес. Следуйте этим инструкциям:

Читайте также: