无法在 Ubuntu 17.10 存储库中找到 ack

14 perl 17.10

我正在尝试通过安装ackapt但它似乎在 repos 中不再可用。两个都:

sudo apt install ack
sudo apt install ack-grep
Run Code Online (Sandbox Code Playgroud)

给出以下错误:

E: Package 'ack-grep' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

它在 17.10 存储库中不再可用吗?

Ste*_*ler 12

Ack在 Ubuntu 17.10 Artful 中测试失败,并且在通过之前它已被排除在 Ubuntu 之外。Perl 在 Artful 上升级,新 Perl 不支持旧的 ack 版本。新版本没有通过所有测试。测试失败是由于在 Ubuntu 下运行的测试框架存在问题(即使它在 Debian 中运行良好)。 通过的新版本将很快发布

同时,解决方法是按照ack 主页上的建议通过 CPAN 安装它。如果您还没有安装 CPAN,则需要先安装它:

sudo apt install cpanminus
Run Code Online (Sandbox Code Playgroud)

然后你可以用它来安装 ack:

sudo cpanm install App::Ack
Run Code Online (Sandbox Code Playgroud)

它将构建并测试它,因此大约需要 2 分钟,但完成后它将在您的路径中/usr/local/bin/ack.

我喜欢这个安装选项,因为它使用标准的 apt 和 cpan 存储库。它使用将通过自动化工具升级的 Perl 库。它可以在 Ansible 等自动化工具中轻松实现。

  • 实际上,就目前而言,Perl 或 Ack *不是*问题(在几乎相同的 Debian 构建系统中,相同版本的测试通过)。目前它被认为是 Ubuntu 构建系统中的一个错误。 (3认同)
  • 据推测,如果您正在安装 cpanminus,您实际上想要使用它进行安装:`sudo cpanm App::Ack`。 (2认同)

小智 6

遗憾的ack是不在 17.10 存储库中。解决方法是按照其网站上的说明手动安装它。

这是我所做的:

$ sudo su
# curl https://beyondgrep.com/ack-2.18-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack
Run Code Online (Sandbox Code Playgroud)

  • 尽管从随机网站安装软件看起来有点困难,但 Beyondgrep.com 是官方 ack 网站。 (2认同)

小智 2

正如 @muru 在上面的评论中指出的那样,该软件包自 17.10 中损坏以来已被删除,所以是的,ack目前在 17.10 存储库中没有。

我想我应该关注https://packages.ubuntu.com/search?suite=artful&keywords=ack以了解它何时再次可用。