Ich möchte grep auf meinem Mac auf eine neuere Version als 2.5.1 aktualisieren, die mit Mac OS 10.7.2 geliefert wurde. Meine Frage ist: Was ist der beste Weg, um grep (oder ein ähnliches Programm) für den Mac zu aktualisieren? Ich könnte Fink oder MacPorts verwenden, um eine neue Version zu installieren und meine Pfadvariable so festzulegen, dass sie im entsprechenden Zweig des Dateibaums nachschaut, oder ich könnte das grep-Programm in usr/bin aktualisieren, oder vielleicht gibt es einen anderen Ansatz, den ich nicht in Betracht gezogen habe. Da ich relativ neu im Umgang mit der Befehlszeile und dem Unix-Backend des Mac bin, mache ich mir Sorgen, etwas zu zerstören. Dennoch wäre ich bereit, die neueste stabile Version von grep aus den Quellen zu kompilieren und in /usr/bin zu installieren, wenn das die geeignete Methode ist. Falls sich jemand fragt, warum ich grep von 2.5.1 aktualisieren möchte, habe ich zwei Gründe: Erstens lerne ich, grep mit einem Referenzbuch zu verwenden, das auf 2.5.3 basiert (wahrscheinlich ähnlich, weiß ich); zweitens und wichtiger möchte ich lernen, wie man solche Programme einfach aktualisiert, um mein eigenes System effektiv zu verwalten.
Antworten
Zu viele Anzeigen?Wie du gesagt hast, kannst du Fink, MacPorts, etc. verwenden...
Aber wenn du nur grep aktualisieren möchtest, könntest du die Quellen herunterladen und sie kompilieren.
Wenn du dich für diese Option entscheidest, installiere sie nicht in /usr/bin.
Wenn du das tust, überschreibst du etwas, das dein Betriebssystem benötigt.
Mit einer anderen Version könntest du also Probleme haben, da das Betriebssystem eine andere Version erwartet.
Außerdem könntest du Probleme haben, wenn du dein Betriebssystem aktualisierst, da es deine eigene Version überschreiben könnte.
Also, wenn du es kompilieren möchtest, platziere es in /usr/local/bin
(normalerweise mit der --prefix
Option) und aktualisiere deine Pfadumgebungsvariable.
Das ist der sichere Weg.
Normalerweise ist das Kompilieren eines solchen Programms einfach nur der Standard ./configure
, make
und sudo make install
Kram.
Aber schau dir zuerst die Kompilierungsoptionen an, indem du Folgendes eingibst:
./configure --help
Die folgende Lösung stammt von http://www.heystephenwood.com/2013/09/install-gnu-grep-on-mac-osx.html
# Aktiviere dupliziere und installiere
brew tap homebrew/dupes
brew install homebrew/dupes/grep
# Installiere die perl-kompatible reguläre Ausdrucksbibliothek
brew install pcre
# Füge den Symlink an einem Ort in $PATH hinzu
ln -s /usr/local/Cellar/grep/2.14/bin/ggrep /usr/bin/ggrep
# Füge ein Alias hinzu
alias grep="ggrep"
# Überprüfe, ob du es hast!
$ grep --version
grep (GNU grep) 2.14
Copyright (C) 2012 Free Software Foundation, Inc.
Lizenz GPLv3+: GNU GPL version 3 oder neuer .
Dies ist freie Software: Du kannst sie ändern und weiterverbreiten.
Es gibt KEINE Gewährleistung, soweit gesetzlich zulässig.
Geschrieben von Mike Haertel und anderen, siehe .
# Wenn du möchtest, dass es dauerhaft ist, kannst du die Alias-Zeile zu deinem ~/.bash_profile hinzufügen
# Du möchtest wahrscheinlich, dass das Alias auch nach Neustarts bestehen bleibt
echo 'alias grep="ggrep"' >> ~/.bash_profile
Es ist in letzter Zeit einfacher geworden:
brew install grep
Was dazu führt, dass Zeilen wie die folgenden erscheinen:
==> Abhängigkeiten für grep installieren: pcre
==> Installiere grep-Abhängigkeit: pcre
==> Lade https://homebrew.bintray.com/bottles/pcre-8.43.high_sierra.bottle.tar.gz herunter
######################################################################## 100.0%
==> Gieße pcre-8.43.high_sierra.bottle.tar.gz ein
/usr/local/Cellar/pcre/8.43: 204 Dateien, 5.5MB
==> Installiere grep
==> Lade https://homebrew.bintray.com/bottles/grep-3.3.high_sierra.bottle.2.tar.gz herunter
######################################################################## 100.0%
==> Gieße grep-3.3.high_sierra.bottle.2.tar.gz ein
==> Hinweise
Alle Befehle wurden mit dem Präfix "g" installiert.
Wenn Sie diese Befehle mit ihren normalen Namen verwenden möchten, können Sie ein "gnubin"-Verzeichnis zu Ihrem PATH aus Ihrer bashrc hinzufügen, z.B.:
PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
==> Zusammenfassung
/usr/local/Cellar/grep/3.3: 21 Dateien, 880.7KB
==> Hinweise
==> grep
Alle Befehle wurden mit dem Präfix "g" installiert.
Wenn Sie diese Befehle mit ihren normalen Namen verwenden möchten, können Sie ein "gnubin"-Verzeichnis zu Ihrem PATH aus Ihrer bashrc hinzufügen, z.B.:
PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
Dann würden Sie Folgendes verwenden:
ggrep --color=auto
Überall dort, wo Sie zuvor grep ausgeführt hätten.