chklinks 3.09 版
Author: 依玛猫
Keywords: 网站超连结检查程式

正體中文 | 简体中文 | English

:::

# `chklinks` 3.09 版

## 最新消息

2007-12-06

  `chklinks` 最新版本 3.09 。新版修正像 MS-Windows 之类不支援 `getpwuid()` 呼叫的作业系统的问题。下载 `chklinks` 3.09 版。

2007-12-05

  `chklinks` 最新版本 3.08 。新版修正好几个说明文件的问题。下载 `chklinks` 3.08 版。

2007-12-05

  `chklinks` 最新版本 3.07 。所需 Perl 版本号码改用相容於旧版的号码格式，以消除 Perl 5.10 的警告讯息。版权更新为 GPLv3 。下载 `chklinks` 3.07 版。

2007-06-08

  `chklinks` 最新版本 3.06 。测试程式修正。下载 `chklinks` 3.06 版。

2007-06-07

  `chklinks` 最新版本 3.05 。修正 Perl 5.8 版以前无 UTF-8 模式的问题。下载 `chklinks` 3.05 版。

2007-06-06

  `chklinks` 最新版本 3.04 。修正说明文件。下载 `chklinks` 3.04 版。

2007-06-06

  `chklinks` 最新版本 3.03 。修正 `HTML::Parser` 的原始 UTF-8 警告讯息，加上支援以 `Module::Build` 安装。下载 `chklinks` 3.03 版。

2006-06-02

  `chklinks` 最新版本 3.02 。更正错误的数位签章。下载 `chklinks` 3.02 版。

2006-05-31

  `chklinks` 最新版本 3.01 。修正 `Makefile.PL` 漏掉的相依模组，并把漏掉的 HTML 文件加回来。下载 `chklinks` 3.01 版。

2006-05-30

  `chklinks` 最新版本 3.00 。改用 `HTML::LinkExtor` 解读网页并用 `LWP::RobotUA` 连线取得网页。支援 `http` 外的其它网址格式。支援网站的 Cookies 。遵守 `robots.txt` 设定的规则。下载 `chklinks` 3.00 版。

2005-10-02

  网站样式调整，加上无障碍网页的设计，以 CSS 边框代替 `<hr />` ，以符合无障碍网页空间的要求。

2005-04-27

  网站上的繁体中文字样更正为正体中文。

2003-05-26

  `chklinks` 最新版本 2.02 。预设由检查本页就好，改为检查整个网站。这样比较符合大多数的需求。下载 `chklinks` 2.02 版。

2003-05-25

  `chklinks` 最新版本 2.01 。加上安装程式、附加档案与 POD 说明档。下载 `chklinks` 2.01 版。

2003-05-25

  `chklinks` 最新版本 2.0.0 。首次公开上传到 SourceForge 。只有主程式。下载 `chklinks` 2.0.0 版。

2003-05-19

  SourceForge 专案通过。

2003-05-18

  申请 SourceForge 专案。

## 说明

`chklinks` 是单执行绪的 Perl 连结检查程式，用来检查网站上的超连结有没有疏漏。

`chklinks` 和 `linkchecker` 不同之处在於，`chklinks` 不是多执行绪的程式。 `chklinks` 检查时，不会同时启动一大堆连线同步检查，耗尽系统资源，导致当机。对大多数网管和使用者而言，这样做安全得多。

`chklinks` 遵守 `robots.txt` 设定的规则。若你的网站拒绝自动网页程式，导致 `chklinks` 无法执行，请在你的 `robots.txt` ，加入下列两行，放行 `chklinks` ：

>     User-agent: chklinks
>     Disallow:

`chklinks` 使用 `LWP::RobotUA` 连线，支援下列通讯协定： `http` 、 `https` 、 `ftp` 、 `gopher` 及 `file` 。`chklinks` 也可以检查一般的档案。（若要使用 `https` 通讯协定，需先安装 `Crypt::SSLeay` 。这是 `LWP::RobotUA` 的需求。）

`chklinks` 支援网站的 Cookies 。

## 系统需求

1. Perl 5.6 或以上。我还没有在更早的版本上成功执行过。若你可以在更早的版本上执行，请告诉我。你可以输入 `perl -v` 查询你目前的 Perl 版本。目前大多数的 Unix 系统都有 Perl 。如果你没有 Perl 或需要升级，可以到 Perl 网站下载安装最新版 Perl 。若你是用 MS-Windows ，可以下载安装 ActiveState 公司的 ActivePerl 。

2. 需搭配的 Perl 模组：

   `Date::Parse`

     这是辨识记录时间用的。若你是 ActivePerl 使用者，可以执行 `ppm install Date::Parse` 安装。

   `URI`

     这是解析、处理网址用的。若你是 ActivePerl 使用者，可以执行 `ppm install URI` 安装。

   `HTML::LinkExtor`

     这是由网页里找出连结用的。 `HTML::LinkExtor` 为 HTML-Parser 中的模组。若你是 ActivePerl 使用者，可以执行 `ppm install HTML::LinkExtor` 安装。

   `LWP::RobotUA`

     这是抓取网页用的。 `LWP::RobotUA` 为 libwww-perl 中的模组。若你是 ActivePerl 使用者，可以执行 `ppm install LWP::RobotUA` 安装。

   若没有上列 Perl 模组，请到 CPAN 程式库下载安装。

3. 选配的 Perl 模组：

   `Crypt::SSLeay`

     这是要让 `LWP::RobotUA` 支援 HTTPS 的功能。因加拿大联邦政府的规定， ActivePerl 无法提供 `Crypt::SSLeay` 的 PPM 套件安装。不过若你是 ActivePerl 使用者，还是可以改由其它套件库，执行 `ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd` 安装。

   若没有上列 Perl 模组，请到 CPAN 程式库下载安装。

## 下载

`chklinks` 的官方网站在：

- SourceForge 上的 `chklinks` 网站。

- `chklinks` SourceForge 专案页。

- `chklinks` CPAN 专案页。

- 旅舍依玛 `chklinks` 网页。

最新版 `chklinks` 可由下列位址下载：

- `chklinks` SourceForge 下载页。

- `chklinks` CPAN 专案页。

- 旅舍依玛 FTP 站。

依玛猫的 PGP 公钥在：

- `chklinks` SourceForge 网站上的依玛猫 PGP 公钥。

- 旅舍依玛上的依玛猫 PGP 公钥。

## 安装

### 以 `ExtUtils::MakeMaker` 安装

`chklinks` 用 Perl 标准的 `ExtUtils::MakeMaker` 安装，程序如下：

>     % perl Makefile.PL
>     % make
>     % make test
>     % make install

在 `make install` 前，请先确认你有在安装目录存档的权限。通常这时候要切换为 `root` ，才能安装存档。

若你是用 MS-Windows 下的 ActivePerl ， `make` 请改用 `nmake` 。 `nmake` 可 由微软的 FTP 站下载。

若要安装到其它地方，请设定好 `PREFIX` 。例如，一般使用者，要安装在自己的目录下时：

>     % perl Makefile.PL PREFIX=/home/jessica

要知道更多安装选项的细节，请参阅 `ExtUtils::MakeMaker` 的说明（请执行 `perldoc ExtUtils::MakeMaker` ）。

### 以 `Module::Build` 安装

若你喜欢，也可以用 `Module::Build` 安装，程序如下：

>     % perl Build.PL
>     % ./Build
>     % ./Build test
>     % ./Build install

在 `./Build install` 前，请先确认你有在安装目录存档的权限。通常这时候要切换为 `root` ，才能安装存档。

若要安装到其它地方，请设定好 `--prefix` 。例如，一般使用者，要安装在自己的目录下时：

>     % perl Build.PL --prefix=/home/jessica

要知道更多安装选项的细节，请参阅 `Module::Build` 的说明（请执行 `perldoc Module::Build` ）。

## 命令列参数

    ./chklinks [参数] 网址1 [网址2 [网址3 …]]
    ./chklinks [-h|-v]

-1,--onelevel

  检查本页就好，不继续查下去。

-r,--recursive

  检查完整个网站。预设是 `--recursive` 。

-b,--below

  只检查该目录下的连结。预设是 `--below` 。

-p,--parent

  上溯到全站的连结。

-l,--local

  只检查站上的连结，不检查站外连结。

-s,--span

  检查站外的连结（但不会查下去）。预设是 `--span` 。

-e,--exclude 路径

  排除该路迳。把该路径下的档案当成站外连结，只检查能不能连，不深入查下去。你可以指定很多个 `--exclude` 。

-i,--include 路径

  包含该路迳。和 `--exclude` 效果相反，用来抵销 `--exclude` 。排后面的优先处理。

-d,--debug

  显示详细的执行讯息。越多个 `--debug` ，讯息越详细。

-q,--quiet

  关闭执行讯息。和 `--debug` 效果相反，用来抵销 `--debug` 。

-h, --help

  显示程式说明。

-v, --version

  显示程式版本。

网址1, 网址2, 网址3

  要检查的网站网址。

## 注意事项

- `chklinks` 尚未遵守 `robots.txt` 的 `Crawl-delay:` 规则。不过这是 `WWW::RobotRules` 的问题，不是 `chklinks` 的问题。

- 若出现以下警告：

  >     Parsing of undecoded UTF-8 will give garbage when decoding entities at /usr/share/perl5/LWP/Protocol.pm line 114.

  这是 `LWP::Protocol` 1.43 版或之前的版本（ `libwww-perl` 5.805 版或之前的版本），碰上 `HTML::Parser` 3.40 版或之后的版本及 Perl 5.8 版或之后的版本时，产生的问题。 `LWP::Protocol` 1.46 版以后（ `libwww-perl` 5.806 版以后），已解决这个问题。请升级到最新版的 `LWP::Protocol` 。若你因故无法升级，请参阅 CPAN RT Bug#20274 报告，取得 `LWP::Protocol` 的修补程式。

## 参考资料

`LWP::UserAgent` 、 `LWP::RobotUA` 、 `WWW::RobotRules` 、 `URI` 、 `HTML::LinkExtor` 、 Bastian Kleineidam 的 `linkchecker` 及 W3C-LinkChecker `checklink` 。

## 版权声明

版权所有 © 2003-2007 依玛猫。

本程式是自由软体，您可以遵照自由软体基金会 (Free Software Foundation) 出版的 GNU 通用公共许可证条款 (GNU General Public License) 第三版来修改和重新发布这一程式，或者自由选择使用任何更新的版本。

发布这一程式的目的是希望它有用，但没有任何担保。甚至没有适合特定目的而隐含的担保。更详细的情况请参阅 GNU 通用公共许可证。

您应该已经和程式一起收到一份 GNU 通用公共许可证的副本。如果还没有，参阅`<http://www.gnu.org/licenses/>`。

## 版本纪录

请阅读 `NEWS` 档，查看程式的演变、新增的功能和修补的错误。

## 支援协助

`chklinks` 网站架在 SourceForge 、 CPAN 与 旅舍依玛。索取最新资讯，请驾临：

- SourceForge 上的 `chklinks` 网站。

- `chklinks` SourceForge 专案页。

- `chklinks` CPAN 专案页。

- 旅舍依玛 `chklinks` 网页。

在 SourceForge 上有一个 `chklinks` 的邮件通讯 。使用上的问题、建议或错误回报，请提到通讯上讨论。它是 Mailman 的邮件通讯。若要加入，请到 `chklinks` 邮件通讯的网页 。你也可以写信到 E-mail 指令信箱，标题填上 `help` ，索取 E-mail 指令说明。