Niepoprawna wersja sed podczas kompilacji w OSX

2

Próbuję zainstalować crosstool-ng na OSX 10.6.8. Na etapie konfiguracji uruchamiam ./configure --prefix=/opt/crossi otrzymuję następujące dane wyjściowe:

! ./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: 

Wygląda na to, że sed powinien zaakceptować -r jako argument, ale nie. Patrząc w górę sed tutaj sugeruje to również -r jest ważnym argumentem, ale kiedy biegnę man sed Nie sądzę, że moja wersja na to pozwala:

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 ...]

Czy mój system zawiera niepoprawną wersję sed? Co mogę zrobić, aby mój sed kompatybilny z crosstool-ng?

Bill Cheatham
źródło

Odpowiedzi:

2

GNU sed używa -r i OSX ' BSD sed używa -E aby włączyć rozszerzone wyrażenia regularne. GNU sed także rozumie -E która jest nieudokumentowaną funkcją, ale BSD sed nie rozumie -r. Więc musisz najpierw zainstalować GNU sed i tymczasowo zmienić ścieżkę wyszukiwania, aby konfiguracja zobaczyła go najpierw, a może mógłbyś spróbować utworzyć opakowanie wokół sed, tak aby -r zostaje przetłumaczony na -E . Wtedy nadal może nie działać, ponieważ -i opcja działa nieco inaczej ..

Scrutinizer
źródło