【问题标题】:How do you read CPAN changelogs?您如何阅读 CPAN 变更日志?
【发布时间】:2011-04-16 15:14:07
【问题描述】:

自从发现 perlbrew 以来,我是一个快乐的 CPAN 用户。但我从未想过如何阅读模块的变更日志。例如,在查看 CPAN shell 中带有“r”的过时版本时,我想轻松检查更改日志以决定是否升级。

当然,我可以下载模块,解压它,然后四处寻找更新日志。但我希望有更简单的方法。你是怎么做到的?

我正在使用旧的 CPAN shell。如果 CPANPLUS 或 cpanminus 支持这个,我会考虑切换。

【问题讨论】:

    标签: perl cpan


    【解决方案1】:

    我只看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 是你的叔叔。这比我想做的要多得多。我只是更新内容,如果出现问题,稍后再查看更改。

    【讨论】:

    • 谢谢,我错过了 -C 标志,因为我总是使用 shell,并且它没有作为命令公开。这应该很容易实现,也许我在这里给自己找了一个新项目:-)
    • 另外,我同意一次查看所有更改太混乱了,我只希望它用于特定模块。
    【解决方案2】:

    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 changestokuhirom cpan-outdated

    /I3az/

    【讨论】:

    • 添加到 cpan(1) 中会很酷。我必须“看看你在那里做了什么”:)
    • @brian d foy:所有的荣誉都应该归功于 Tokuhirom (github.com/tokuhirom),因为我的更改非常小。
    • 太好了,这正是我想要的。谢谢!
    猜你喜欢
    • 2011-01-11
    • 2011-09-24
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多