man2html パッケージのインストールと設定

Debian Jessieman2htmlパッケージをインストールしました。

man2html及びapache2のインストールは数年ぶりでしたので、設定関連の情報を探して自分なりに理解できるまで時間が掛かってしまいました。そのため、インストール及び基本的な設定について、自分用のメモも兼ねて残しておきます。

man2html パッケージについて

man2htmlは、apt-cache show man2htmlによると、

  • ウェブブラウザでhttp://localhost/cgi-bin/man/man2htmlから man ページを閲覧、検索できる。
  • man/BSD-mandocを HTML に変換するための高速な C CGI プログラムである。
  • swish++パッケージをインストールすると、全文検索用 CGI スクリプト として動作する。

等の特徴があります。

ただし、CGI プログラムですので、当然apache2のような Web サーバが必要になります。Debian Jessieでインストールされるapache2は、Apache 2.4です。

man2html パッケージの情報収集

インストールされるパッケージを事前に確認

私はパッケージをインストールする時は、いきなりインストールするのではなく、事前に依存関係で一緒にインストールされるパッケージ、パッケージの概要を調べることにしています。

まずは、apt-getコマンドに-sオプションを付け、man2htmlをインストールする時に依存関係で一緒にインストールされるパッケージを確認します。

$ apt-get -s install man2html
以下のパッケージが新たにインストールされます:
  apache2 apache2-bin apache2-data apache2-utils  gawk
        途中省略
  man2html man2html-base ssl-cert

私の環境には Web サーバがインストールされていないので、apache2も一緒にインストールされます。

gawkman2html-baseは、man2htmlが依存しているパッケージです。すでにgawkがインストールされている環境では、このリストには表示されません。

apt-cache コマンドでパッケージの情報収集

man2html と man2html-base の違いが知りたいので、apt-cacheコマンドのdependsオプションを使用し、以下のようにして調べました。

$ apt-cache show man2html
$ apt-cache show man2html-base

man2htmlは CGI プログラムですが、man2html-baseは CGI の機能をもたせず、コマンドラインで man ページを HTML 形式に変換するだけのコマンドラインツールが収録されています。

apt-cache コマンドで依存関係の情報収集

man2htmlが依存しているパッケージを調べる場合は、apt-cacheコマンドのdependsオプションを使用し、以下のようにして調べられます。

$ apt-cache depends man2html
man2html
  依存: libc6
        途中省略
  依存: man2html-base
  依存: gawk
  依存: man-db
  依存: debianutils
 |依存: apache2
 |依存: 
        途中省略
  提案: swish++

また、man2html-baseが依存されている(必要と言っている)パッケージを調べる場合は、apt-cacheコマンドのrdependsオプションを使用し、以下のようにします。

$ apt-cache rdepends man2html-base
man2html-base
Reverse Depends:
  man2html
  ebook-speaker
man ページを html ファイルに変換する場合、

  • 変換プログラムがコマンドライン限定で良い場合は、man2html-baseパッケージを選択。
  • Web ブラウザから man ページを表示させたい場合には、man2htmlパッケージを選択。

ということになります。

man2html パッケージのインストール

Web ブラウザから man ページを表示出来たほうが便利ですし視覚的に分かりやすいので、パッケージはman2htmlを選択し、root 権限でインストールします。

# apt-get install man2html

今回はapache2も一緒にインストールされましたので、各パッケージのインストールと設定が終了するとapache2が起動していますが、CGI のモジュールは無効のままですので、まだman2htmlは使えません。

apache2 の設定確認と CGI モジュールの有効化

デフォルトページの表示確認

man2htmlのインストールが終了した時点でapache2が起動していますので、ブラウザからアクセスするとデフォルトのページが表示されるはずです。

Debian Jessieには最初からw3mというテキストベースのブラウザがインストールされていますので、以下のようにしてlocalhostを表示してみます。

$ w3m http://localhost/
Debian-man2html-2016-0520_01

w3mで表示が確認できたら、次に他のコンピュータからもアクセスしてみます。ブラウザはなんでも良いですが、アドレス欄にはDebianの IP アドレスまたは有効なホスト名を指定します。

Debian-man2html-2016-0520_02

CGI モジュール無効状態で表示確認

今の時点ではapache2の CGI モジュールが無効のままですので、man2htmlの CGI プログラムは実行されないはずです。ですが、モジュールが有効になっていない時のエラーメッセージを確認しておき、そのスクリーンキャプチャを残しておくと、後日何かの参考になるかもしれません。

上記と同じようにw3mではhttp://localhost/cgi-bin/man/man2html、他のコンピュータからはhttp://IPアドレス/cgi-bin/man/man2htmlを指定してアクセスしてみます。おそらく、以下の様なメッセージが表示されると思います。

Not Found

The requested URL /cgi-bin/man/man2html was not found on this server.
Debian-man2html-2016-0520_03
Debian-man2html-2016-0520_04

apache2 の設定ファイル

Debianでは、Apache, Bind, Postfix等の設定ファイルは、複数のファイルの分割されていたり、特定のディレクトリに配置されています。これは、設定ファイルを分割して管理や編集をしやすくするためだと思っています。

Debianではapache2設定ファイルのホームディレクトリは/etc/apache2/で、その下に設定ファイル、モジュール、ディレクトリ等が配置されています。

主な構成は、以下のとおりです。

/etc/apache2/
    |-- conf-available/  (分割された設定ファイル)
    |-- conf-enabled/    (有効化された設定ファイル)
    |-- mods-available/  (モジュールとモジュールの設定ファイル)
    |-- mods-enabled/    (有効化されたモジュール)
    |-- sites-available/ (サイト全体の設定ファイル)
    |-- sites-enabled/   (有効化されたサイト全体の設定ファイル)
    |
    |-- apache2.conf
    |-- envvars
    |-- magic
    |-- ports.conf

*-available/ は、設定ファイルやモジュール等の実体ファイルを保管するディレクトリです。新たに設定ファイルを作成する場合は、/etc/apache2/conf-available/または/etc/apache2/sites-available/に配置することになります。

また *-enabled/ は、現在の有効化された設定ファイルやモジュール等のディレクトリで、それぞれ、*-available/ にある設定ファイルやモジュールのシンボリックリンクになっています。

apache2 設定の有効化及び無効化コマンド

Debianではapache2のファイル構成も独特ですが、これらの設定ファイルやモジュールの有効化及び無効化を行う場合もそれぞれ固有のコマンドを使用します。

これらはapache2パッケージでインストールされたコマンドですが、それぞれの機能は以下のとおりです。

/usr/sbin/a2disconf 設定ファイルを無効化
/usr/sbin/a2dismod モジュールを無効化
/usr/sbin/a2dissite サイトの設定を無効化
/usr/sbin/a2enconf 設定ファイルを有効化
/usr/sbin/a2enmod モジュールを有効化
/usr/sbin/a2ensite サイトの設定を有効化

a2disconfのようなコマンドの最初は、Apache2 Disable configuration、a2ensiteのようなコマンドは、Apache2 Enable site のように覚えると理解しやすいかもしれません。

CGI モジュールを有効化

CGI のモジュールと設定ファイルは、モジュールの配置場所である/etc/apache2/mods-available/に以下のファイル名で配置されています。

$ ls /etc/apache2/mods-available/cgi*
cgi.load
cgid.conf
cgid.load

現在は CGI モジュールは無効のままですので、/etc/apache2/mods-enabled/には上記モジュールのシンボリックはありません。

モージュールを有効化するには/usr/sbin/a2enmodを使用します。ワイルドカードを使用できるみたいですので、以下のように root 権限で以下のようにコマンドを実行します。

# a2enmod cgi*

モジュールの組み込みが終わると、以下の様なメッセージが表示されると思います。

Your MPM seems to be threaded. Selecting cgid instead of cgi.
Enabling module cgid.
Module cgid already enabled
To activate the new configuration, you need to run:
  service apache2 restart

もしシンボリックリンクが貼られたことを確認する場合は、以下のようにします。

$ ls /etc/apache2/mods-enabled/cgi*

apache2 の再起動

CGI モジュールが有効になったので、root 権限で以下のようにapache2を再起動します。

# service apache2 restart

man2html にアクセス

apache2の再起動が出来たので、早速w3mman2htmlにアクセスしてみます。その後、他のコンピュータからもアクセスしてみます。

$ w3m http://localhost/cgi-bin/man/man2html
Debian-man2html-2016-0520_05Debian-man2html-2016-0520_06

man2html で man ページを表示

ローカルのw3mや他のコンピュータのブラウザからもアクセスできたことを確認できれば、検索窓にコマンド名を入力して検索してみます。

Debian-man2html-2016-0520_07

これはDebianのパッケージマネージャである apt-get を指定した場合の表示なのですが、思ったよりも綺麗に整形されていて、見やすいです。

Debian-man2html-2016-0520_08

man2html で日本語の man ページを表示

man ページには日本語をはじめとする多言語用に翻訳されたページもありますので、日本語の man ページが表示できるように検索条件を変えてみましょう。

日本語の man ページの優先度を上げるため、検索条件に-M /usr/share/man/ja:/usr/share/man apt-cacheを指定して検索します。

Debian-man2html-2016-0520_09

このように複数の選択肢が表示されますので、上の項目のapt-cache.8 (/usr/share/man/ja/)をクリックすると、apt-cache の日本語 man ページが表示されました。

Debian-man2html-2016-0520_10Debian-man2html-2016-0520_11

これで日本語の man ページが表示できるようになりましたので、視覚的にとても分かりやすくなりました。

手順が細かすぎて分かりにくかったかもしれませんが、最後までお読みいただきありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です