如何在Windows上安装和使用ack库?


69

我从未使用过Perl,但是ack确实给我留下了深刻的印象,我想将其用于源代码搜索等。

谁能指导我如何在Windows上使用这个出色的库?

Answers:



38

并非所有测试都能在Windows的所有版本上通过。即使安装测试失败,您也很可能从ack获得100%的功能。如果测试失败导致无法正常安装,则以下是强制安装的命令:

perl -MCPAN -e "CPAN::Shell->force(qw(install App::Ack));"

3
谢谢,这实际上让我安装了它!:D
尼克·诺尔森

1
或使用节省很多输入时间cpanm -f App::Ack。添加-n到跳过测试,因为它们目前还没有真正通过……除了跳过它们不会影响其他事情,这样可以节省您的时间,但同时也让您不知道它们是否会通过……
bambams 2015年

感谢您未通过测试的信息,但安装正常。在找到这篇文章之前,我一直在寻找tarball解决方案,但这要容易得多。
bballdave025 '18

33

如果您已经安装了msysgit,则无需安装Perl,因为您已经拥有一个版本。您只需要下载ack的独立版本并将其放在bash路径1中的某个位置即可。然后,您可以从msysgit bash提示符下运行ack。

如果还希望能够从Windows命令提示符下运行ack,则需要在Windows路径2中的某个位置创建一个批处理脚本,其内容如下:

@"C:\Program Files\Git\bin\perl" C:\path\to\ack-standalone.pl %*

(显然,您需要编辑以上路径以匹配msysgit的安装以及ack脚本的放置位置。)

1:我只是将自己的卡在mysysgit bin目录中:C:\Program Files\Git\bin\ack。这不是最明智的位置,但是可以。
2:同样,我只是ack.bat在msysgit bin目录中创建了文件C:\Program File\Git\bin


5
我只是使用文件名(不带扩展名)ack-standalone.pl放入。此后,从Git Bash运行开始。无需批处理文件或修改路径。C:\Program Files\Git\binackack
Grilse

2
@Grilse是的,我的回答确实是这样(尽管我想我的措词可能更清楚)。如果要从Windows的命令提示符中运行脚本,则必须批处理文件和修改路径。(这也可以解释得更好。)
Rich

1
好吧,如果您可以更清楚地编辑您的答案来更清楚地表达这个词,那就太好了!
Grilse

@Grilse完成。(迟到总比不到好!)
Rich

23

如果安装了cygwin,则只需下载独立版本。Perl与cygwin一起安装。步骤如下:

$ vim .bash_profile

从各行中删除注释:

# if [ -d "${HOME}/bin" ] ; then
#  PATH="${HOME}/bin:${PATH}"
# fi

加载更改:

$ source .bash_profile

制作一个bin目录:

$ mkdir ~/bin

下载ack(从主页):

$ curl https://beyondgrep.com/ack-2.22-single-file > ~/bin/ack && chmod 0755 ~/bin/ack

注意:默认情况下,您将必须手动安装curl,因为它不是cygwin随附的。


1
您注释掉.bash_profile的行是~/bin在将其添加到路径之前检查是否存在的行。由于您创建了bin目录,因此检查可以保留并且可以进行(并且应该保留,以防bin目录被删除)。
crdx

1
cygwin安装后,所有3行均被注释掉。正如我所指出的,您应该删除评论。我不确定为什么中间行缺少注释符号,但是我已经对其进行了编辑并将其添加回去。
Swoogan

不错的独立文件解决方案。感谢您也提供有关PATHand的信息.bashrc
bballdave025 '18年

20

您还应该运行以下命令来启用颜色突出显示: cpan Win32 :: Console :: ANSI


2
这应该是一个评论,而不是一个答案,因为它不是一个答案。
乔恩·L。

5

App::Ack由于某些测试未通过,我不得不强制cpan安装:

C:\> cpan
cpan> force install App::Ack
cpan> q

2

在我进入ack网站并看到此内容之前,对我没有任何帮助。

在此处输入图片说明

我在cmd提示符下运行了以下命令:

choco install ack


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.