我只是想知道,我最近安装了ack(在Ubuntu的ack-grep),我不知道如何inputack来获得ack-grep(由于某种原因ack被汉字翻译器所占用)。
有没有更好的办法,而不是只是别在shell的东西(它不是这样的全球性,不能唤起它在VIM例如)。
非常感谢!
您将ack-grep
链接或复制到/usr/local/bin
以便在PATH中保持优先:
sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack
或者像戴维build议的那样,如果你不需要的话,
sudo apt-get remove ack
另一个解决scheme是使用dpkg-divert
来告诉dpkg
你希望所有的软件包在本地重命名它们的/usr/bin/ack
,然后把ack-grep
到path中的ack-grep
。
在Ubuntu / Debian中,您可以“转移” ack-grep
:
sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep
使用Debian Alternatives系统。
$ 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
该命令很难得到正确的结果,但是由于以下原因,该解决scheme优于dpkg-divert:
有关Debian Alternatives的更多信息,请访问: http : //wiki.debian.org/DebianAlternatives
安装这个选项可以调用ack-grep,并使用man ack
来读取manpage。
最不显眼的是:
别名ack = ack-grep
最简单的事情就是通过cpan安装ack。 它将安装在/ usr / local / bin中,优先于/ usr / bin。 赶紧跑:
sudo cpan App::Ack
或者如果您没有cpan客户端:
curl -L cpanmin.us | perl - --sudo App::Ack
假设汉字翻译器不是/ usr / bin / ack,并且它的位置比/ usr / bin更晚,那么你可以这样做:
sudo ln -sib /usr/bin/ack-grep /usr/bin/ack
如果目标存在,将提示您确认操作,如果select是,则会创build备份。
我会去符号链接选项,因为如果你复制你的bash文件,它可以节省将别名转移到另一台机器的危险。
去这个,对我的Ubuntu 12.04版本工作正常
sudo apt-get install ack-grep sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack
我的解决scheme不是很干净,因为它写在/bin/
但只要/usr/bin/ack
是一个二进制文件而不是符号链接,对我来说这样更容易。
sudo update-alternatives --install /bin/ack ack /usr/bin/ack 100 sudo update-alternatives --install /bin/ack ack /usr/bin/ack-grep 102
select使用哪一个
sudo update-alternatives --config ack