Wie installiere ich ack-grep 2.0 mit apt-get?

7

Derzeit verwende ich ack-grep 1.92. Jetzt möchte ich ack-grep 2. + verwenden.

Offizielle Dokumentation besagt, dass ich ack-grep 2.0 mit apt-get installieren kann, aber wenn ich versuche zu installieren, heißt es, dass es bereits die neueste Version ist.

Ich habe auch versucht, es mit einer bestimmten Version zu installieren, wie:

sudo apt-get install ack-grep 2.10

Es installiert etwas, aber ack-grep ist immer noch 1.92.

Wie kann ich die neueste Version installieren?

Sanghyun Lee
quelle
Ihre Frustration darüber, dass Pakete etwas außerhalb des Tages liegen, ist weit verbreitet. Ich entschuldige mich, wenn es bei beyondgrep.com/install so klingt, als würde etwas darüber gesagt, welche Version in einem bestimmten Paketmanager verfügbar ist. Über der Paketliste steht auf dieser Seite "Bitte beachten Sie, dass die Betreuer von ack nichts mit diesen Paketen zu tun haben. Wenn ein bestimmtes Paket veraltet ist oder nicht funktioniert, müssen Sie mit den Paketierern arbeiten, nicht mit den ack Team. " Gibt es etwas, das ich auf der Seite tun könnte, um klarer zu machen, dass die Verpackung nicht in meinen Händen ist?
Andy Lester
@ AndyLester Danke für eine freundliche Antwort. Mein Missverständnis ist auf mein mangelndes Wissen über Ubuntu-Pakete und mein unachtsames Lesen zurückzuführen. Ich denke, es wäre gut, einige Links über "wie man installiert" wie diese Seite zu setzen. :)
Sanghyun Lee
1
Wichtig zu lesen askubuntu.com/questions/151283/…
Braiam

Antworten:

4

Sie können nicht installieren noch ack-grep 2.10 mit apt-get , weil ack-grep 2.10 ist noch nicht in Ubuntu - Repositories enthalten. Mit dem folgenden Befehl können Sie sehen, welche Versionen in Repositorys verfügbar sind:

apt-cache showpkg ack-grep

Sie können es jedoch installieren, indem Sie es hier herunterladen:

Es ist eine Deb-Datei, so dass Sie auch interessiert sein können durch:

Radu Rădeanu
quelle
2
Sie können die aktuelle Version von ack installieren, indem Sie curl http://beyondgrep.com/ack-2.12-single-file > /usr/bin/ack && chmod 0755 !#:3
Folgendes
3
Für zukünftige Leser: Beachten Sie, dass diese URL im Befehl veraltet ist. Der beste Weg, um die Installation einer einzelnen Datei durchzuführen,
Andy Lester
3

Sie müssen nicht warten, bis frech (Ubuntu 13.10) veröffentlicht wird, um die Version von ack-grep zu verwenden. Sie können nur ein Paket und seine nicht erfüllten Abhängigkeiten aus einer zukünftigen Version mit den richtigen Einstellungen für das Pinning installieren.

Siehe diese Beispiele:

Installieren Sie Pakete aus einer neueren Version, ohne sie zu erstellen (apt pinning).

Installieren Sie ein einzelnes spezifisches Paket aus der zukünftigen Distribution

Steven K.
quelle
3

Wenn Sie Ubuntu 13.10 verwenden, können Sie ack-grep 2.04.2 über das Ubuntu Software Center installieren. Das ack-grep-Paket stammt aus dem Universum-Repository. ack-grep ist ein Metapaket, mit dem ack ab 18.04 abgerufen werden kann. Führen Sie sudo apt install ackack anstelle von ack-grep aus und führen Sie es aus.

Um ein Beispiel dafür zu geben, was ack-grep tun kann, finden Sie hier einen Befehl zum Anzeigen von acht Zeilen an einer Stelle in der Mitte des Bash-Handbuchs, die größer als 300 KB ist. Daher ist es unpraktisch, eine referenzierte Zeilennummer in der Bash zu finden manuell durch Scrollen im Terminal nach unten, aber es ist einfach mit ack-grep zu tun:

man bash | ack-grep . --lines=4581-4588

... gibt den folgenden Textblock aus dem Bash-Handbuch als Ausgabe aus:

pwd [-LP]
       Drucken Sie den absoluten Pfadnamen des aktuellen Arbeitsverzeichnisses.
       Der gedruckte Pfadname enthält keine symbolischen Links, wenn die Option -P aktiviert ist
       wird bereitgestellt oder die physische Option -o für den Befehl set builtin
       aktiviert. Wenn die Option -L verwendet wird, kann der gedruckte Pfadname verwendet werden
       symbolische Links enthalten. Der Rückgabestatus ist 0, sofern kein Fehler vorliegt
       tritt beim Lesen des Namens des aktuellen Verzeichnisses oder eines auf
       Es wird eine ungültige Option geliefert.

Der Befehl, der dem obigen Befehl in 18.04 und höher entspricht, verwendet ackanstelle von ack-grepund andere Zeilennummern, da das Bash-Handbuch in 18.04 länger ist. ackfunktioniert genauso wie ack-grepund gibt die gleichen Ergebnisse aus:

man bash | ack . --lines=4970-4977
Karel
quelle