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 指令說明。