Frage ack-grep um in ubuntu zu antworten


Ich habe mich gerade gefragt, ich habe vor Kurzem ack (ack-grep in ubuntu) installiert, und ich kann nicht herausfinden, wie man einfach ack eintippt, um ack-grep zu bekommen (aus irgendeinem Grund wird ack von einer Kanji-Übersetzer-Sache übernommen).

Gibt es einen besseren Weg als das Aliasing der Sache in der Shell (das ist nicht global und kann es beispielsweise nicht in vim hervorrufen).

Danke vielmals!


19
2017-12-25 05:16


Ursprung




Antworten:


Sie verknüpfen oder kopieren ack-grep zu /usr/local/bin damit es im PATH prioritär wird:

sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack

Oder, wie Davey vorgeschlagen hat, loswerden ack wenn du es nicht brauchst:

sudo apt-get remove ack

Eine andere Lösung würde die Verwendung beinhalten dpkg-divert erzählen dpkg dass alle Pakete ihre haben sollen /usr/bin/ack Lokal umbenannt und dann verlinkt ack-grep zu ack in dem Weg.


16
2017-12-25 10:51





In Ubuntu / Debian können Sie "umleiten" ack-grep:

sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep

20
2017-12-08 11:49





Verwenden Sie das Debian-Alternativen-System.

$ update-alternatives --install /usr/bin/ack ack /usr/bin/ack-grep 100 \
--slave /usr/share/man/man1/ack.1p.gz ack.1p.gz /usr/share/man/man1/ack-grep.1p.gz

Der Befehl ist schwierig zu korrigieren, aber die Lösung ist dpkg-divert aus folgenden Gründen überlegen:

  1. Erzwingt oder ordnet die Paketinstallation nicht zu
  2. Aktiviert das Einstellen einer Slave-Verbindung für die Manpage

Weitere Informationen zu Debian-Alternativen finden Sie hier: http://wiki.debian.org/DebianAlternativen

Die Installation der Alternative ermöglicht den Aufruf von ack-grep als ack und Lesen der Manpage mit man ack.


8
2017-07-19 23:40



Das ist die beste Antwort IMHO! - Renaud
Dies ist der "richtige" Debian / Ubuntu-Weg, dies zu tun. - tgies


Am wenigsten aufdringlich:

alias ack = ack-grep


7
2017-11-25 05:02



Bei der Frage wird nach etwas anderem als dem Alias ​​gefragt, wobei zu beachten ist, dass diese Lösung ziemlich begrenzt ist und nicht helfen kann, aus Vim- oder Bash-Skripten auszubrechen. - Ian Greenleaf Young
@IanGreenleaf wow, du hast Recht - peinlich, das 4 Jahre später zu sehen! Hoppla :/ - broady


Am einfachsten ist es, ack über cpan zu installieren. Es wird in / usr / local / bin installiert, was Vorrang vor / usr / bin hat. Renn einfach:

sudo cpan App::Ack

oder wenn Sie den cpan-Client nicht haben:

curl -L cpanmin.us | perl - --sudo App::Ack

7
2017-10-31 05:43



Funktionierte nicht für mich auf Ubuntu 10.04 LTS. Fehlermeldung: "Sei nicht albern, du kannst daniel bosold nicht installieren". Aber sudo cpan -i App::Ack tut. - geekQ
Bin ich der Einzige, der das für nicht sicher hält? - SaveTheRbtz


Angenommen, der Kanji-Übersetzer ist nicht bereits / usr / bin / ack und sein Speicherort befindet sich später in Ihrem Pfad als / usr / bin, dann können Sie Folgendes tun:

sudo ln -sib /usr/bin/ack-grep /usr/bin/ack

Dies fordert Sie auf, die Operation zu bestätigen, wenn das Ziel existiert, und eine Sicherung zu erstellen, wenn Sie Ja auswählen.


2
2017-12-25 05:30



Leider lebt der Kanji Ack in / usr / bin, also wenn du ohne ihn leben kannst: sudo apt-get remove ack - davey


Ich würde mit der Symlink-Option gehen, da es die Gefahr der Übertragung dieses Alias ​​auf einen anderen Computer speichert, wenn Sie Ihre Bash-Datei kopieren.

gehen Sie damit, funktioniert gut auf meinem Build von Ubuntu 12.04

sudo apt-get install ack-grep
sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack

0
2018-01-24 05:10





Meine Lösung ist nicht so sauber, weil sie schreibt /bin/ aber solange /usr/bin/ack ist eine binäre und keine Symlink, war einfacher für mich, auf diese Weise zu beheben.

sudo update-alternatives --install /bin/ack ack /usr/bin/ack 100
sudo update-alternatives --install /bin/ack ack /usr/bin/ack-grep 102

Um zu wählen, welches man benutzt

sudo update-alternatives --config ack

0
2018-04-02 13:42