Versão incorreta do sed ao compilar no OSX

2

Estou tentando instalar o crosstool-ng no OSX 10.6.8. No estágio de configuração, eu corro ./configure --prefix=/opt/cross e recebo a seguinte saída:

! ./configure --prefix=/opt/cross
checking build system type... x86_64-apple-darwin10.8.0
checking host system type... x86_64-apple-darwin10.8.0
checking for a BSD-compatible install... /opt/local/bin/ginstall -c
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking whether sed understands -r -i -e... no
configure: error: 

Parece que sed deve aceitar -r como argumento, mas não aceita. Pesquisar sed aqui também sugere que -r é um argumento válido, mas quando eu run man sed Eu não acho que minha versão permita isso:

SED(1)                    BSD General Commands Manual                   SED(1)

NAME
     sed -- stream editor

SYNOPSIS
     sed [-Ealn] command [file ...]
     sed [-Ealn] [-e command] [-f command_file] [-i extension] [file ...]

Meu sistema contém uma versão incorreta de sed ? O que posso fazer para tornar meu sed compatível com crosstool-ng ?

    
por Bill Cheatham 30.03.2013 / 15:38

1 resposta

2

GNU sed usa -r e OSX ' BSD sed usa -E para ativar expressões regulares estendidas. O GNU sed também entende -E , que é um recurso não documentado, mas o BSD sed não entende -r . Então você precisa instalar o GNU sed primeiro e temporariamente mudar seu caminho de busca para que o configure o veja primeiro, ou talvez você possa tentar criar um wrapper em volta do sed para que o -r seja traduzido para -E . Então, ainda pode não funcionar, porque a opção -i funciona um pouco diferente ..

    
por 31.03.2013 / 09:50