Tentando atualizar o Homebrew com brew update
, recebi o seguinte erro
error: The following untracked working tree files would be overwrittenby merge:
Library/Formula/argp-standalone.rb
Library/Formula/cocot.rb
Please move or remove them before you can merge.
Aborting
Updating e088818..5909e2c
Error: Failed while executing git pull origin refs/heads/master:refs/remotes/origin/master
Encontrei uma postagem no blog de alguém que teve um problema semelhante depois de instalar o Mountain Lion (o que eu fiz essa semana também). Ele explica como ele removeu os arquivos mencionados na mensagem de erro
I removed these files:
$ cd $(brew --prefix)
$ rm cocot.rb
However, removing these files didn't help with the brew update. Instead I had to manually update brew through git:
$ cd $(brew --prefix)
$ git fetch origin
$ git reset --hard origin/master
$ brew update
Already up-to-date.
Supondo que essas instruções estejam corretas (o que eu talvez não deva assumir), tentei seguir estas instruções e fazer
$ cd $(brew --prefix)
$ rm cocot.rb
No entanto, ele disse 'arquivo não existe' quando tentei rm cocot.rb
Uma coisa que não tenho certeza é: cd $(brew --prefix)
são essas as palavras exatas que digito ou preciso substituir o prefixo por alguma coisa? o cd foi bem-sucedido, então estou assumindo que estava correto - ele me mudou para / usr / local, mas não havia arquivo para remover. O conteúdo de / usr / local é
Cellar clamXav git mysql var Library doc heroku mysql-5.5.15-osx10.6-x86_64 README.md etc include rvm bin foreman lib share
De qualquer forma, você sabe como posso corrigir a 'atualização de preparação'
Atualização: Depois de remover os arquivos de acordo com as instruções de favoretti e tentar chown -R <your_username> $(brew --prefix)/.git
, ocorreu o seguinte erro:brew update
error: The following untracked working tree files would be overwritten by merge:
Library/Aliases/gperftools
Library/Aliases/hashdeep
Library/Aliases/htop
Library/Aliases/nodejs
Library/Aliases/ocio
Library/Aliases/oiio
Library/Aliases/pgrep
Library/Aliases/pkill
Library/Aliases/qt4
Library/Aliases/twolame
Library/Aliases/wxwidgets
Library/Contributions/cmds/brew-aspell-dictionaries
Library/Contributions/cmds/brew-beer.rb
Library/Contributions/cmds/brew-dirty.rb
Library/Contributions/cmds/brew-graph
Library/Contributions/cmds/brew-grep
Library/Contributions/cmds/brew-leaves.rb
Library/Contributions/cmds/brew-linkapps.rb
Library/Contributions/cmds/brew-ls-taps.rb
Library/Contributions/cmds/brew-man
Library/Contributions/cmds/brew-md5-to-sha1
Library/Contributions/cmds/brew-mirror-check.rb
Library/Contributions/cmds/brew-pull.rb
Library/Contributions/cmds/brew-readall.rb
Library/Contributions/cmds/brew-server
Library/Contributions/cmds/brew-services.rb
Library/Contributions/cmds/brew-switch.rb
Library/Contributions/cmds/brew-test-bot.rb
Library/Contributions/cmds/brew-tests.rb
Library/Contributions/cmds/brew-unpack.rb
Library/Contributions/cmds/brew-which.rb
Library/Contributions/cmds/git
Library/Contributions/cmds/svn
Library/ENV/4.3/apr-1-config
Library/ENV/4.3/bsdmake
Library/ENV/4.3/c++
Library/ENV/4.3/c89
Library/ENV/4.3/c99
Library/ENV/4.3/cc
Library/ENV/4.3/clang
Library/ENV/4.3/clang++
Library/ENV/4.3/cpp
Library/ENV/4.3/g++
Library/ENV/4.3/gcc
Library/ENV/4.3/git
Library/ENV/4.3/i686-apple-darwin11-llvm-g++-4.2
Library/ENV/4.3/i686-apple-darwin11-llvm-gcc-4.2
Library/ENV/4.3/ld
Library/ENV/4.3/llvm-g++
Library/ENV/4.3/llvm-g++-4.2
Library/ENV/4.3/llvm-gcc
Library/ENV/4.3/llvm-gcc-4.2
Library/ENV/4.3/make
Library/ENV/4.3/mig
Library/ENV/4.3/sed
Library/ENV/4.3/svn
Library/ENV/4.3/xcrun
Library/ENV/libsuperenv.rb
Library/ENV/pkgconfig/leopard/libcrypto.pc
Library/ENV/pkgconfig/leopard/libcurl.pc
Library/ENV/pkgconfig/mountain_lion/libcurl.pc
Library/ENV/pkgconfig/mountain_lion/libexslt.pc
Library/ENV/pkgconfig/mountain_lion/libxml-2.0.pc
Library/ENV/pkgconfig/mountain_lion/libxslt.pc
Library/Formula/abcl.rb
Library/Formula/abcmidi.rb
Library/Formula/aiccu.rb
Library/Formula/akka.rb
Library/Formula/alac.rb
Library/Formula/alure.rb
Library/Formula/appledoc.rb
Library/Formula/arangodb.rb
Library/Formula/argp-standalone.rb
Library/Formula/argtable.rb
Library/Formula/autopano-sift-c.rb
Library/Formula/avian.rb
Library/Formula/avidemux.rb
Library/Formula/avro-cpp.rb
Library/Formula/aws-cloudsearch.rb
Library/Formula/aws-sns-cli.rb
Library/Formula/backupninja.rb
Library/Formula/bact.rb
Library/Formula/bam.rb
Library/Formula/basex.rb
Library/Formula/berkeley-db4.rb
Library/Formula/bind.rb
Library/Formula/blazeblogger.rb
Library/Formula/bochs.rb
Library/Formula/boost149.rb
Library/Formula/bsdconv.rb
Library/Formula/bsdmake.rb
Library/Formula/buildapp.rb
Library/Formula/bup.rb
Library/Formula/byacc.rb
Library/Formula/cadubi.rb
Library/Formula/camellia.rb
Library/Formula/casperjs.rb
Library/Formula/ccextractor.rb
Library/Formula/cconv.rb
Library/Formula/cdo.rb
Library/Formula/cdpr.rb
Library/Formula/cgvg.rb
Library/Formula/checkstyle.rb
Library/Formula/chordii.rb
Library/Formula/chruby.rb
Library/Formula/cifer.rb
Library/Formula/clhep.rb
Library/Formula/cntlm.rb
Library/Formula/cocot.rb
Library/Formula/cogl.rb
Library/Formula/collada-dom.rb
Library/Formula/crash.rb
Library/Formula/crossroads.rb
Library/Formula/crosstool-ng.rb
Library/Formula/css-crush.rb
Library/Formula/csync.rb
Library/Formula/ctemplate.rb
Library/Formula/curlftpfs.rb
Library/Formula/cutter.rb
Library/Formula/cvsutils.rb
Library/Formula/darkstat.rb
Library/Formula/darner.rb
Library/Formula/dart.rb
Library/Formula/dasm.rb
Library/Formula/debianutils.rb
Library/Formula/dfc.rb
Library/Formula/dgtal.rb
Library/Formula/dhcping.rb
Library/Formula/di.rb
Library/Formula/dmtx-utils.rb
Library/Formula/drip.rb
Library/Formula/dsniff.rb
Library/Fo
Aborting
Updating e088818..c1fbc29
Error: Failed while executing git pull origin refs/heads/master:refs/remotes/origin/master
Respostas:
fonte
git add .
seguido porgit stash
: Pcd $(brew --prefix)
e redefinir o estágio git com ogit reset --hard HEAD
seugit status
, não retornar a limpeza do diretório de trabalho, também será necessário limpar o estado executandogit clean -df
.git reset --hard HEAD
(o que não funcionaria para mim), eu fizgit fetch --all
egit reset --hard origin/master
Você precisa fazer o seguinte:
E então faça o
Basicamente, para explicar um pouco mais:
diz
cd
para alterar o diretório para o que forbrew --prefix
exibido. Se você tentar executar obrew --prefix
comando, verá algo nas linhas de:Portanto, o comando nesse caso seria equivalente a
cd /usr/local
.brew
Versões mais recentes têm fórmulas sob seu prefixo de instalação eLibrary/Formula/
, portanto, é aí que você precisa procurar esses arquivos desatualizados / alterados.Observe que, se você mesmo tiver alterado essas fórmulas por um motivo específico (como fixar uma versão), essa ação os reverterá de volta aos padrões e poderá produzir efeitos indesejados.
A @TedPennings observou nos comentários que isso funcionou para ele, mas sua sequência foi:
my_username:admin
, ou seja,sudo chown -R ted:admin $(brew --prefix)
git fetch origin
egit reset --hard origin/master
fonte
sudo git reset --hard
, outros e uma maneira melhor seria permissões de correção e fazerchown -R <your_username> $(brew --prefix)/.git
drwxrwxr-x 16 root admin 646 Dec 27 20:30 /usr/local/
sudo chown -R ted:admin $(brew --prefix)
em seguida, execute os dois comandos do git acima,git fetch origin
egit reset --hard origin/master
Isso é causado por um bug antigo no
update
código que há muito tempo foi corrigido. No entanto, a natureza do bug exige que você faça o seguinte:Se
brew doctor
ainda se queixar de modificações não confirmadas, execute também este comando:fonte
Nota: as etapas 2 e 3 funcionaram para mim desde que eu fiz as etapas 5 e 4 antes de receber o erro. A atualização de distribuição antes de alterar o proprietário da pasta causou todo o problema.
fonte
/usr/local
com outras permissões. Para mim, foi o MacPGP que se instalou com privilégios de root./usr/local
as permissões. Obrigado!Eu tive um problema semelhante em que minha biblioteca de pacotes de cervejas foi baixada como usuário root e, em seguida, não pude executar a atualização de cervejas, pois o git se queixava de não conseguir mesclar o arquivo.
A solução foi fazer: -
fonte
A redefinição do repositório de distribuição deve ser a maneira mais eficiente, se você não se importa em descartar possíveis modificações nas fórmulas que podem ter sido aplicadas:
fonte
Consegui consertar isso na minha máquina adicionando permissão de gravação (e setgid bit) do grupo de administração nestes caminhos:
O s define a identificação do grupo na execução, para que as permissões de gravação não sejam perdidas na próxima vez que um usuário administrador diferente atualizar ou atualizar o Homebrew.
Esta resposta é um tanto incompleta porque, quando tento fazer,
brew cleanup --force
há um problema de permissões quando o Homebrew tenta remover o conteúdo em / usr / local / Cellar /. (Infelizmente não estou conseguindo investigar isso mais no momento.)fonte
Outra opção é apenas usar
git stash
.O comando brew update executa a
git pull
, portanto, se houver algum arquivo alterado (ou mesmo um atributo de arquivo, que aconteceu comigo quando eu mudei as permissões no diretório recursivamente), é necessário corrigir os conflitos. Usargit stash
é uma maneira; leva todas as alterações e as coloca de lado para que você efetivamente reverta para a última versão de repo atualizada. O 'local' do Homebrew é por padrão/usr/local
e é instalado como um repositório git. Você pode procurar uma.git
pasta para ver por si mesmo. Estou escrevendo um script de desinstalação do homebrew para ser postado no meu perfil do GitHub em breve com mais informações.fonte
nota - para USUÁRIO, use o comando quem, por exemplo, seu nome de usuário
fonte
sudo chown -R $USER /usr/local/bin
adicionar os$
postes a variável env USER, que contém o nome de usuário atual.Essa abordagem pode ser mais simples do que algumas. Envolve:
Passos (com notas para quem quer explicações):
Visão geral:
Pelo que sei, a causa real desse problema é uma alteração no URL do repositório. É agora
brew
e foibrew.git
. (URL completo e atualizado: https://github.com/Homebrew/brew )Nota 1: Este primeiro comando leva você de qualquer lugar da estrutura de arquivos ao diretório correto. A estrutura de diretórios é diferente para mim do que os outros mostram acima (Mac OS 10.11.16), mas com este comando, essas diferenças não devem importar.
Nota 2: este segundo comando adiciona o URL remoto correto a um novo alias; Fiz isso apenas no caso de essa abordagem não alcançar o que eu queria e precisar do endereço anterior novamente. Como o novo controle remoto funcionou, convidarei alguém para comentar sobre como alterar o URL com alias por origem. Felizmente, atualizarei a resposta para refletir o que funcionou para você.
Nota 3: Este quarto comando tem exatamente o resultado desejado: ele relata um grande número de atualizações, incluindo o relatório particularmente agradável de "==> Migrado HOMEBREW_REPOSITORY para / usr / local / Homebrew!" (ênfase deles).
fonte
brew update
.Este post me ajudou depois de atualizar para o El Capitan. No meu caso,
chown
não estava funcionando ("zsh: comando não encontrado: chown"), portanto, a etapa 1 foi adicionar esta linha ao meu .zshrc:export PATH="$PATH:/usr/sbin"
Eu já havia tentado várias das respostas mais populares acima, por isso tenho certeza de que tudo
git status
estava limpo quando colei o comando crítico da postagem do blog:sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
fonte
Isso deve funcionar.
fonte