Ще один активний процес Homebrew вже триває


88

Коли я намагаюся зробити це:

brew install node

Я отримую таке повідомлення:

 /usr/local/Homebrew/Library/Homebrew/utils/lock.sh: line 19: /usr/local/var/homebrew/locks/update: Permission denied
-e:1:in `initialize': Bad file descriptor (Errno::EBADF)
    from -e:1:in `new'
    from -e:1:in `<main>'
Error: Another active Homebrew process is already in progress.
Please wait for it to finish or terminate it to continue.
Error: Permission denied - /usr/local/var/homebrew/locks/node.brewing

Будь-яка ідея, як це вирішити?

Відповіді:


206

Якщо наведена вище відповідь не вирішує вашу проблему, спробуйте видалити замки домашнього процесу за допомогою цієї команди:

rm -rf /usr/local/var/homebrew/locks

1
чому б не залишатися в безпеці за допомогою for file in ls * lock ; do mv $file $file.old; done?
ізоморфізми

1
ДЯКУЮ, це було ідеально!
lizziepika

Це недоцільно. Помилка полягає в неправильних дозволах; ці locksфайли мали на меті і видалення це НЕ найбезпечніший варіант.
Kamafeather

1
Я вказав спробувати це, якщо інша відповідь не спрацювала; Я мав на увазі рішення @ kalibrain. Мені довелося зробити і те, і інше.
omikes

47

Як підказує цей потік у певний момент, моя проблема полягала в тому, щоб вперше запустити команду brew із привілеями sudo. Це призводить до того, що brew намагається отримати доступ до привілейованих файлів і папок, і це не вдається. Якщо це саме для вас, запустіть ці команди і спробуйте встановити node ще раз.

sudo chown -R "$USER":admin /usr/local

brew cleanup


Так, проблема сталася після переміщення файлів для резервного копіювання та відновлення їх. Власнику файлів було встановлено невідомий GID; відновлення за допомогою chownповернуло всю функціональність назад без помилок.
Kamafeather

Крім того, переконайтеся, що дозволи виправлені, з ls -la /usr/local/. Якщо вони не є, спробуйте додати зірочку, щоб вказати всі підфайли (наприклад sudo chown -R "$USER":admin /usr/local/*).
Kamafeather


12

Просто введіть у термінал наступне:

brew cleanup

Це має очистити всі проблеми. Виконайте команду за допомогою:

brew doctor

Все зроблено.


9

У моєму випадку на OSX я перервав установку вузла, а потім намагаюсь запустити інсталяційний вузол знову, тому я отримав помилку, згадану у питанні.
Я спробував наведені нижче кроки з інших відповідей:

sudo chown -R "$USER":admin /usr/local

brew cleanup

і

rm -rf /usr/local/var/homebrew/locks

але це повідомлення з’являється знову - тому не знайте, чи допомогли вищезазначені кроки.

Потім я закрив вкладку терміналу і в новій запустив

brew install -v node

На успішне завершення установки вузла знадобилося 11 хвилин


1
на macOS зробити безпечніше sudo chown -R "$USER":admin /usr/local/*. Без зірочок я не отримав правильне розширення, і більшість підфайлів / папок не були торкнуті командою.
Kamafeather

3

Зміна дозволу на файл дозволить уникнути цієї помилки:

sudo chown <your-username>:admin /usr/local/Homebrew/Library/Homebrew/utils/lock.sh

Щоб отримати дозвіл на встановлення або оновлення homebrew:

Змініть налаштування дозволу для домашньої мови

sudo chown -R <your-username>:admin /usr/local/Homebrew

sudo chown -R <your-username>:admin /usr/local/var/homebrew

Потім запустіть установку або оновлення homebrew


Зміна дозволів /usr/local/Homebrewі /usr/local/var/homebrewсаме мені допомогло
бригадір,

0

Я не знаю, що відбувалося. Мій єдиний активний термінал чекав на введення, у фоновому режимі жодна робота не виконувалася. Я щойно намагався запустити інсталяцію RVM, яка не вдалася, і попросив мене оновити Homebrew, але це мало бути закінчено, оскільки термінал чекав на введення. Після декількох повторних викликів команд і через пару хвилин я перестав отримувати повідомлення.

Це на Mac OSX 10.13.6 з iTerm2.

⋊> brew --version
Homebrew 2.1.4
Homebrew/homebrew-core (git revision 97b15a; last commit 2019-06-07)
Homebrew/homebrew-cask (git revision 2a010; last commit 2019-06-07)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.