目前我正在使用 ack-grep 1.92。现在我想使用 ack-grep 2.+。
官方文档说我可以使用 apt-get 安装 ack-grep 2.0,但是当我尝试安装时,它说它已经是最新版本。
我也尝试使用指定的版本进行安装,例如:
sudo apt-get install ack-grep 2.10
它安装了一些东西,但是 ack-grep 仍然是 1.92。
我如何安装最新版本?
答案1
您无法安装然而使用 apt-get ack-grep 2.10,因为 ack-grep 2.10 尚未包含在 Ubuntu 存储库中。要查看存储库中有哪些版本可用,可以使用以下命令:
apt-cache showpkg ack-grep
但你可以从这里下载来安装:
它是一个 deb 文件,因此您可能对以下内容感兴趣:
答案2
您不必等待 saucy (Ubuntu 13.10) 发布即可使用其版本的 ack-grep。您可以使用正确的 apt-pinning 首选项从未来版本中安装一个软件包及其未满足的依赖项。
请参阅以下示例:
答案3
如果您使用的是 Ubuntu 13.10,则可以使用 Ubuntu 软件中心安装 ack-grep 2.04.2。ack-grep 包来自 universe 存储库。ack-grep 是一个元包,用于在 18.04 及更高版本中提取 ack。运行sudo apt install ack
并执行 ack 而不是 ack-grep。
举一个 ack-grep 功能的示例,下面是一个命令,用于显示 bash 手册中间某处的八行内容,该文件大于 300Kb,因此通过在终端中向下滚动来查找 bash 手册中的引用行号很不方便,但使用 ack-grep 很容易做到:
man bash | ack-grep . --lines=4581-4588
...给出来自 bash 手册的以下文本块作为输出:
密码 [-LP] 打印当前工作目录的绝对路径名。 如果 -P 选项,则打印的路径名不包含符号链接 或为 set 内置命令提供 -o physical 选项 已启用。如果使用 -L 选项,则打印的路径名可能 包含符号链接。除非发生错误,否则返回状态为 0 读取当前目录的名称或 提供了无效的选项。
在 18.04 及更高版本中,与上述命令等效的命令使用ack
而不是 和ack-grep
不同的行号,因为 18.04 中的 bash 手册更长。ack
其工作原理相同ack-grep
并输出相同的结果:
man bash | ack . --lines=4970-4977
答案4
Leonard Ehrenfried 在此处创建了适用于 Precise 12.04 的 ack2 PPA:
http://leonard.io/blog/2013/10/ack2-package-for-ubuntu-1204-precise/
https://launchpad.net/~leonard-ehrenfried/+archive/ack2
对于像我一样使用 Quantal 12.10 的用户,添加 PPA 后仍然可以使用,只需将“ quantal
”替换为“ precise
”/etc/apt/sources.list.d/leonard-ehrenfried-ack2-quantal.list