2010-09-24 59 views
5

由于发现perlbrew,我是一个快乐CPAN用户。但是我从来没有想到的是如何读取模块的更新日志。例如,看着过时的,在CPAN命令“R”的时候,我想轻松地检查更新日志,以决定是否要升级与否。你如何阅读CPAN更新日志?

我当然可以下载模块,解开它,并四处寻找更新日志。但我希望有一个更简单的方法。你怎么做呢?

我使用的是旧CPAN命令。如果CPANPLUS或cpanminus支持这一点,我会考虑切换。

回答

3

cpan-outdated几乎做了你需要开箱什么:

$ cpan-outdated --compare-changes 

以上产生于你的单个过时模块所有Changes文件,并从CPAN最新之间的差异。但是,如果你有很多过期的模块,这可能会拖延很长一段时间。

幸运的是只用了一些变更,添加这些选项:http://github.com/draegtun/cpan-outdated

$ cpan-outdated --pkg Catalyst::View::TT --compare-changes 

$ cpan-outdated --filter-pkg Catalyst --compare-changes 

我的更新可以在Github这里找到。这里是diff of my changestokuhirom cpan-outdated

/I3az/

+0

这将是非常酷添加到CPAN(1)。我必须“看看你在那里做了什么”:) :) – 2010-09-24 16:47:05

+0

@brian d foy:所有的荣誉都应该去Tokuhirom(http://github.com/tokuhirom),因为我的改变非常小。 – draegtun 2010-09-24 17:10:57

+0

非常好,这正是我一直在寻找的。谢谢! – 2010-09-26 09:16:27

6

我只看上CPAN Search。每个发行版的主页面链接到主文件,并且您还可以浏览整个发行版。您不必下载或打开发行包。

您还可以使用CPAN命令的-C开关,这样你就不必进入CPAN.pm壳:

$ cpan -C Some::Module 

我不知道任何东西会告诉你在更改文件一次为所有过时的模块。这在终端上可能会有点混乱。您也许能够拼凑的东西与-O开关:

$ cpan -O | perl -anle 'print $F[0] if $. > 9' | xargs cpan -C 

$. > 9位有跳过CPAN.pm输出和表头。确实很难看。

如果你想做更多的事情,你可以让管道的最后部分一些脚本单独运行cpan -C并将结果保存到文件中。把所有的文件放在Changes的目录中,Bob是你的叔叔。这比我关心的要多得多。我只是更新一些东西,稍后再看看这些变化是否会破坏。

+0

谢谢,我错过了-C标志,因为我总是用外壳,而它不是公开为命令在那里。这应该很容易实现,也许我给自己一个新的项目在这里:-) – 2010-09-24 08:17:28

+0

另外,我同意看到所有的变化,一次会太乱了,我只想要一个特定的模块。 – 2010-09-24 08:18:32