如何使用 apt-get 安装 ack-grep 2.0?

如何使用 apt-get 安装 ack-grep 2.0?

目前我正在使用 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 首选项从未来版本中安装一个软件包及其未满足的依赖项。

请参阅以下示例:

无需构建即可安装较新版本的软件包(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

相关内容