【发布时间】:2011-04-16 15:14:07
【问题描述】:
自从发现 perlbrew 以来,我是一个快乐的 CPAN 用户。但我从未想过如何阅读模块的变更日志。例如,在查看 CPAN shell 中带有“r”的过时版本时,我想轻松检查更改日志以决定是否升级。
当然,我可以下载模块,解压它,然后四处寻找更新日志。但我希望有更简单的方法。你是怎么做到的?
我正在使用旧的 CPAN shell。如果 CPANPLUS 或 cpanminus 支持这个,我会考虑切换。
【问题讨论】:
自从发现 perlbrew 以来,我是一个快乐的 CPAN 用户。但我从未想过如何阅读模块的变更日志。例如,在查看 CPAN shell 中带有“r”的过时版本时,我想轻松检查更改日志以决定是否升级。
当然,我可以下载模块,解压它,然后四处寻找更新日志。但我希望有更简单的方法。你是怎么做到的?
我正在使用旧的 CPAN shell。如果 CPANPLUS 或 cpanminus 支持这个,我会考虑切换。
【问题讨论】:
我只看CPAN Search。每个发行版的主页链接到主要文件,您还可以浏览整个发行版。您不必下载或解压分发包。
您也可以使用 cpan 命令的 -C 开关,这样您就不必进入 CPAN.pm shell:
$ cpan -C Some::Module
我不知道有什么东西会立即显示所有过时模块的更改文件。这在终端中可能会有点混乱。您也许可以使用 -O 开关来安装一些东西:
$ cpan -O | perl -anle 'print $F[0] if $. > 9' | xargs cpan -C
$. > 9 位用于跳过 CPAN.pm 输出和表头。确实很丑。
如果你想做一些更花哨的事情,你可以在管道的最后一部分创建一些脚本来单独运行 cpan -C 并将结果保存到文件中。将所有文件放在 Changes 目录中,Bob 是你的叔叔。这比我想做的要多得多。我只是更新内容,如果出现问题,稍后再查看更改。
【讨论】:
cpan-outdated 几乎可以满足您开箱即用的需求:
$ cpan-outdated --compare-changes
对于您拥有的每个过时的模块,上面会在您的所有 Changes 文件和最新的 CPAN 之间产生差异。但是,如果您有很多过时的模块,这可能会有点冗长和混乱!
幸运的是,添加这些选项只需要进行一些更改:
$ cpan-outdated --pkg Catalyst::View::TT --compare-changes
$ cpan-outdated --filter-pkg Catalyst --compare-changes
我的更新可以在 Github 上找到:http://github.com/draegtun/cpan-outdated。这是diff of my changes 到tokuhirom cpan-outdated
/I3az/
【讨论】: