Homebrew: определение Cask 'java' неверно

Недавно я начал получать следующую ошибку при обновлении своих бочек:

Error: Cask 'java' definition is invalid: Token '{:v1=>"java"}' in header line does not match the file name.

У меня MacOS 10.14.4 и моя версия Homebrew:

→ brew --version
Homebrew 2.1.2
Homebrew/homebrew-core (git revision 6811d1; last commit 2019-05-11)
Homebrew/homebrew-cask (git revision ba4e3; last commit 2019-05-11)

Вот результат brew cask upgrade --verbose --debug:

Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
angular-cli          atlassian-cli        libpqxx              terraforming
app-engine-python    elasticsearch        osm2pgrouting
asciidoctorj         jenkins-lts          postgresql

==> Casks with `auto_updates` or `version :latest` will not be upgraded
==> Upgrading 1 outdated package:
Error: Cask 'java' definition is invalid: Token '{:v1=>"java"}' in header line does not match the file name.
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:73:in `cask'
/usr/local/Caskroom/java/.metadata/1.8.0_51-b16/20150725210402.758/Casks/java.rb:1:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:62:in `instance_eval'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:62:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/cask_loader.rb:178:in `load'
/usr/local/Homebrew/Library/Homebrew/cask/cmd/upgrade.rb:39:in `block in run'
/usr/local/Homebrew/Library/Homebrew/cask/cmd/upgrade.rb:37:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/cmd/upgrade.rb:37:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/cmd/abstract_command.rb:36:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/cmd.rb:92:in `run_command'
/usr/local/Homebrew/Library/Homebrew/cask/cmd.rb:158:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/cmd.rb:123:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:9:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:102:in `<main>'
Error: Kernel.exit
/usr/local/Homebrew/Library/Homebrew/cask/cmd.rb:162:in `exit'
/usr/local/Homebrew/Library/Homebrew/cask/cmd.rb:162:in `rescue in run'
/usr/local/Homebrew/Library/Homebrew/cask/cmd.rb:146:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/cmd.rb:123:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:9:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:102:in `<main>'

и вывод brew tap:

beeftornado/rmtree
heroku/brew
homebrew/cask
homebrew/core
homebrew/services

Вот вывод brew doctor, если это поможет:

→ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and which additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew-provided
script of the same name. We found the following "config" scripts:
  /Users/myUser/anaconda3/bin/icu-config
  /Users/myUser/anaconda3/bin/krb5-config
  /Users/myUser/anaconda3/bin/freetype-config
  /Users/myUser/anaconda3/bin/xslt-config
  /Users/myUser/anaconda3/bin/libpng16-config
  /Users/myUser/anaconda3/bin/python3.6m-config
  /Users/myUser/anaconda3/bin/libpng-config
  /Users/myUser/anaconda3/bin/xml2-config
  /Users/myUser/anaconda3/bin/python3-config
  /Users/myUser/anaconda3/bin/curl-config
  /Users/myUser/anaconda3/bin/ncursesw6-config
  /Users/myUser/anaconda3/bin/pcre-config
  /Users/myUser/anaconda3/bin/python3.6-config
  /Applications/Postgres.app/Contents/Versions/9.4/bin/gdal-config

Warning: Some installed formulae are not readable:
  dotwrp: Unsupported special dependency :fortran
(base)

Я искал, но не могу найти способ исправить это. Какие-либо предложения?

Бег brew update решает проблему?

Ashwanth Kumar 11.05.2019 19:31

К сожалению нет :(

DaniG2k 11.05.2019 19:31

Я побежал brew update; brew upgrade; brew cask upgrade; brew cleanup;

DaniG2k 11.05.2019 19:31

Может быть что-то похожее на эту проблему? -- github.com/Homebrew/homebrew-cask/issues/53079

Ashwanth Kumar 11.05.2019 19:37

В этом потоке говорится удалить и переустановить Homebrew. Это может быть проблематично, так как я бы удалил ВСЕ установленные пакеты вместе с Homebrew. Это довольно драматический способ решить ошибку, которую я получаю нет?

DaniG2k 12.05.2019 00:11

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

Ashwanth Kumar 12.05.2019 03:01

@AshwanthKumar готово

DaniG2k 12.05.2019 08:36

А как насчет brew doctor?

Ortomala Lokni 15.05.2019 23:20

@OrtomalaLokni теперь также добавил вывод этой команды. Спасибо

DaniG2k 16.05.2019 04:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
18
9
5 614
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Решается следующим образом:

  1. Отредактировал бочку java:
vim /usr/local/Caskroom/java/.metadata/1.8.0_51-b16/20150725210402.758/Casks/java.rb
  1. Изменена первая строка с:

cask :v1 => 'java' do

к

cask 'java' do

  1. Удалены комментарии undent в конце бочки, которые доставляли мне проблемы.

  2. Побежал brew uninstall --cask java

Проблема решена ?

Если бы я мог проголосовать за этот ответ пятьдесят раз, я бы это сделал! Я боролся со сломанной установкой Java, буквально, годами. Я сделал еще один шаг, который заключался в том, чтобы выполнить «деинсталляцию варочной бочки --force java».

A. Rick 13.02.2020 00:22

Любая идея, что вызывает эту проблему, чтобы начать с?

Louis Thibault 05.08.2020 12:30

Шаг 3 был шагом, который решил проблему для меня.

sbkrogers 08.08.2020 15:39

Это было действительно полезно. Что все делают после, удаляя java? Вы снова устанавливаете через homebrew или проходите через родную установку OSX? Согласно моим заметкам, я установил Java через brew cask после обновления до Yosemite 5 лет назад. Но я не помню, почему я его установил.

antun 10.11.2020 22:24

Спасибо! Для будущих искателей: мне также пришлось закомментировать строку, читающую license :gratis, чтобы заставить ее работать. Мне пришлось нет изменить комментарий undent в конце бочки.

Dave Land 14.11.2020 00:24

применил те же инструкции, чтобы удалить старую версию прошивки, и это сработало! Спасибо!

Edoardo 17.11.2020 15:12

Мне также пришлось удалить два блока, содержащих if MacOS.release <= :mavericks, из-за Error: Cask 'java' is unreadable: undefined method release' для OS::Mac:Module`

Nick 26.11.2020 13:53

Шаг 4 теперь: brew uninstall --cask java

techpeace 19.03.2021 21:51

Я использовал это решение для аналогичной ошибки, но для виртуального бокса: Ошибка: определение 'виртуального бокса' недопустимо: токен '{:v1=>"virtualbox"}' в строке заголовка не соответствует имени файла. Бесконечно благодарен!

jaco 26.07.2021 17:17

Вы можете очистить формулы бочек старого стиля следующим образом:

grep "cask :v1 =>" --files-with-match /usr/local/Caskroom/*/.metadata/*/*/Casks/*.rb \
  | xargs gdirname | xargs gdirname | xargs rm -r

Предполагая, что вы установили coreutils с префиксом g, поэтому gdirname запускает разновидность GNU dirname

Спасибо, это спасло меня от Cask 'virtualbox' definition is invalid: Token '{:v1=>"virtualbox"}' in header line does not match the file name.

kross 30.01.2021 02:59

Другие вопросы по теме