投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償)
logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)
The Document Foundation Wiki

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2011年6月30日木曜日

【CentOS5.6】CPAN(The Comprehensive Perl Archive Network)を利用する際のセットアップ

CentOS5.6で、CPAN(The Comprehensive Perl Archive Network)を利用する際のセットアップ

(1)必要なモノをepelリポジトリからyumでインストールする

 epelリポジトリ利用のための設定は、次のパッケージをインストールするだけで自動的になされる。
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# yum install ncftp
 ncftpは高機能のファイル転送プログラムらしい。
次に行うCPAN利用のためのセットアップではこのプログラムがなければ進めない。


(2)CPAN利用のためのセットアップを行う

初回のみいろいろ質問される。セットアップ後は同じコマンドでCPANのプロンプトがすぐに現れる。
セットアップでは最後の方で質問される国の選択とリポジトリの選択以外はエンターキーでデフォルトを選択すればよい。

# perl -MCPAN -e shell

/usr/lib/perl5/5.8.8/CPAN/Config.pm initialized.


CPAN is the world-wide archive of perl resources. It consists of about
100 sites that all replicate the same contents all around the globe.
Many countries have at least one CPAN site already. The resources
found on CPAN are easily accessible with the CPAN.pm module. If you
want to use CPAN.pm, you have to configure it properly.

If you do not want to enter a dialog now, you can answer 'no' to this
question and I'll try to autoconfigure. (Note: you can revisit this
dialog anytime later by typing 'o conf init' at the cpan prompt.)

Are you ready for manual configuration? [yes]


The following questions are intended to help you with the
configuration. The CPAN module needs a directory of its own to cache
important index files and maybe keep a temporary mirror of CPAN files.
This may be a site-wide directory or a personal directory.



First of all, I'd like to create this directory. Where?

CPAN build and cache directory? [/root/.cpan]


If you want, I can keep the source files after a build in the cpan
home directory. If you choose so then future builds will take the
files from there. If you don't want to keep them, answer 0 to the
next question.



How big should the disk cache be for keeping the build directories
with all the intermediate files?

Cache size for build directory (in MB)? [10]


By default, each time the CPAN module is started, cache scanning
is performed to keep the cache size in sync. To prevent from this,
disable the cache scanning with 'never'.

Perform cache scanning (atstart or never)? [atstart]


To considerably speed up the initial CPAN shell startup, it is
possible to use Storable to create a cache of metadata. If Storable
is not available, the normal index mechanism will be used.

Cache metadata (yes/no)? [yes]


The next option deals with the charset your terminal supports. In
general CPAN is English speaking territory, thus the charset does not
matter much, but some of the aliens out there who upload their
software to CPAN bear names that are outside the ASCII range. If your
terminal supports UTF-8, you say no to the next question, if it
supports ISO-8859-1 (also known as LATIN1) then you say yes, and if it
supports neither nor, your answer does not matter, you will not be
able to read the names of some authors anyway. If you answer no, names
will be output in UTF-8.

Your terminal expects ISO-8859-1 (yes/no)? [yes]


If you have one of the readline packages (Term::ReadLine::Perl,
Term::ReadLine::Gnu, possibly others) installed, the interactive CPAN
shell will have history support. The next two questions deal with the
filename of the history file and with its size. If you do not want to
set this variable, please hit SPACE RETURN to the following question.

File to save your history? [/root/.cpan/histfile]
Number of lines to save? [100]


The CPAN module can detect when a module that which you are trying to
build depends on prerequisites. If this happens, it can build the
prerequisites for you automatically ('follow'), ask you for
confirmation ('ask'), or just ignore them ('ignore'). Please set your
policy to one of the three values.

Policy on building prerequisites (follow, ask or ignore)? [ask]


The CPAN module will need a few external programs to work properly.
Please correct me, if I guess the wrong path for a program. Don't
panic if you do not have some of them, just press ENTER for those. To
disable the use of a download program, you can type a space followed
by ENTER.

Where is your gzip program? [/bin/gzip]
Where is your tar program? [/bin/tar]
Where is your unzip program? [/usr/bin/unzip]
Where is your make program? [/usr/bin/make]
Where is your links program? [/usr/bin/links]
Where is your wget program? [/usr/bin/wget]
Warning: ncftpget not found in PATH
Where is your ncftpget program? []
Warning: ncftp not found in PATH
Where is your ncftp program? []
Where is your ftp program? [/usr/kerberos/bin/ftp]
Where is your gpg program? [/usr/bin/gpg]
What is your favorite pager program? [/usr/bin/less]
What is your favorite shell? [/bin/bash]


Every Makefile.PL is run by perl in a separate process. Likewise we
run 'make' and 'make install' in processes. If you have any
parameters (e.g. PREFIX, LIB, UNINST or the like) you want to pass
to the calls, please specify them here.

If you don't understand this question, just press ENTER.

Parameters for the 'perl Makefile.PL' command?
Typical frequently used settings:

PREFIX=~/perl non-root users (please see manual for more hints)

Your choice: []
Parameters for the 'make' command?
Typical frequently used setting:

-j3 dual processor system

Your choice: []
Parameters for the 'make install' command?
Typical frequently used setting:

UNINST=1 to always uninstall potentially conflicting files

Your choice: []


Sometimes you may wish to leave the processes run by CPAN alone
without caring about them. As sometimes the Makefile.PL contains
question you're expected to answer, you can set a timer that will
kill a 'perl Makefile.PL' process after the specified time in seconds.

If you set this value to 0, these processes will wait forever. This is
the default and recommended setting.

Timeout for inactivity during Makefile.PL? [0]


If you're accessing the net via proxies, you can specify them in the
CPAN configuration or via environment variables. The variable in
the $CPAN::Config takes precedence.

Your ftp_proxy?
Your http_proxy?
Your no_proxy?
You have no /root/.cpan/sources/MIRRORED.BY
I'm trying to fetch one
LWP not available
CPAN: Net::FTP loaded ok
Fetching with Net::FTP:
ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY


Now we need to know where your favorite CPAN sites are located. Push
a few sites onto the array (just in case the first on the array won't
work). If you are mirroring CPAN to your local workstation, specify a
file: URL.

First, pick a nearby continent and country (you can pick several of
each, separated by spaces, or none if you just want to keep your
existing selections). Then, you will be presented with a list of URLs
of CPAN mirrors in the countries you selected, along with previously
selected URLs. Select some of those URLs, or just keep the old list.
Finally, you will be prompted for any extra URLs -- file:, ftp:, or
http: -- that host a CPAN mirror.

(1) Africa
(2) Asia
(3) Central America
(4) Europe
(5) North America
(6) Oceania
(7) South America
Select your continent (or several nearby continents) [] 2 ← Asiaを選んでいる
Sorry! since you don't have any existing picks, you must make a
geographic selection.

(1) Bangladesh
(2) China
(3) Hong Kong
(4) India
(5) Indonesia
(6) Israel
(7) Japan
(8) Kazakhstan
(9) Pakistan
(10) Republic of Korea
(11) Russia
(12) Saudi Arabia
(13) Singapore
(14) Taiwan
(15) Thailand
(16) Turkey
Select your country (or several nearby countries) [] 7 ←さらに、Japanを選んでいる
Sorry! since you don't have any existing picks, you must make a
geographic selection.

(1) ftp://ftp.dti.ad.jp/pub/lang/CPAN/
(2) ftp://ftp.jaist.ac.jp/pub/CPAN/
(3) ftp://ftp.kddilabs.jp/CPAN/
(4) ftp://ftp.nara.wide.ad.jp/pub/CPAN/
(5) ftp://ftp.riken.jp/lang/CPAN/
(6) ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
(7) ftp://ftp.u-aizu.ac.jp/pub/CPAN/
(8) ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/
Select as many URLs as you like (by number),
put them on one line, separated by blanks, e.g. '1 4 5' [] ●←1~8の中から好きなサーバを選択する

Enter another URL or RETURN to quit: []
New set of picks:
ftp://ftp.riken.jp/lang/CPAN/


commit: wrote /usr/lib/perl5/5.8.8/CPAN/Config.pm
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan>

これで完了。


【Linux CentOS 5.6】迷惑メール分類プロキシサーバPOPFileと、MeCabの連携システム構築作業メモ




スパムメール分類プロキシサーバーPOPFile 1.1.1と、連携プログラムMeCab 0.98を、CentOS5.6(64bit)にインストールしたときのメモ。

(注) 以下、POPメールサーバとメールクライアントとの間に入るPOPプロキシとしてPOPFileを使う方法を想定しています。

<目 次>
・ POPFileとは
・ MeCabとは
・ インストールするものについて
・ インストール手順
・ (手順1) 必要な準備
・ (手順2) 一般的なperlモジュール<分類1>のインストール
・ (手順3) 分かち書きプログラムMeCab本体と、その辞書mecab-ipadicのインストール
・ (手順4) perl-MeCabバインディングモジュールのインストール
・ (手順5) POPFile本体のインストール
・ (手順6) POPFile本体の基本的な設定
・ POPFileを起動する
・ メールクライアントの設定
・ POPFileを終了する
・ その他の設定
・ ◎POPFileのシステム起動時の自動起動の方法について
・ ◎POPFileのキープアライブ(障害の自動検出と自動回復)の方法について (POPFileのハングアップ対策)
・ ◎動作させているpopfileの設定内容や受信メールログを、新規マシンのpopfileへ移行する方法



□POPFileとは□
POPFileは、メールの本文を解析し含まれる単語に基づき、学習結果に応じて分類するプロキシ型のソフトウェアである。
POPメールサーバーへのプロキシとして動作させられるので一般的なメールクライアントソフトと組み合わせることができる。

POPFileを経由するメールは学習結果に基づいて適切に分類され、通常はタイトルにそのバケツ名(=分類名)が付加される。
処理済みメールを受信したメールクライアントではタイトルに対するフィルタ機能を使って、この付加された分類名に基づき最終的な処理方法を決定できる
どのような処理ができるかはメールクライアントによって異なる。
たとえば、フォルダに隔離したり、転送したり、削除したり、できるだろう。


POPメールサーバ(元のメール) → POPFile(分類し、バケツ名をタイトルに付加) → メールクライアント(バケツ名に応じた最終的な処理)

POPFileのGUIを使って、バケツ(=分類名)の作成やこれに入るべきメールの傾向を学習させることで分類能力を高められる。
具体的にユーザーが行うことは次の2点である。

・内容に基づくメール分類用のバケツを2つ以上作成する。(当然、スパムメール用としてもバケツは作れる)
・メールがPOPFileを通過後に、各バケツに入るべきメールを指定しその本文に含まれる単語の傾向を学習させる。

十分に学習できれば誤判定や保留もなく分類されるようになる。それまではユーザーが学習させて育てる。
ところで、POPFileはメールの内容を学習することによってスパムメールも分類できるようになるものであり、スパムメールだけを分類するものではない。

分類後にタイトルにはそのバケツ名を付加せず元のままにすることもできる。
受信したメールの本文以外の情報(アドレス、タイトルなど)の一致不一致で分類することも可能。(マグネット機能)
1台のPOPFileをイントラネット上で動作させておくことで、複数のメールクライアントコンピューターから利用できた。(要設定 GUIの設定タブ→POP3 同時接続の許可:はい)



□MeCabとは□
文を解析し単語に分け品詞を判定するソフトウェア。オープンソースの形態素解析エンジンである。
言語、辞書、コーパスに依存しない汎用的に利用できる設計が基本方針になっている。

POPFileでは日本語で書かれたメールを扱うとき、このMeCabが持つような分かち書き機能を利用することで分類精度を高められる。





■インストールするものについて■

 POPFileを動作させるには、本体の他にいくつかのperlモジュールが必要である。
大きく分けると次の二つである。

<分類1>perl関係の一般的なモジュール

現在のところ、以下のモジュールが必要になるかもしれません」 に挙げられているperlモジュールリストをベースとした。
ここから、Linux以外の環境で使われるものを除外し、これ以外に必要なものを加えた。
これらをLinuxシステムにインストールする。
・YAML
・SOAP::Lite
・Net::SSLeay
・IO::Socket::SSL
・IO::Socket::Socks
・Encode
・HTML::Template
・Date::Parse
・MIME::QuotedPrint
・MIME::Base64
・HTML::Tagset
・Digest::MD5
・Digest::base
・DBI
・DBD::SQLite (ただし、sqlite3)

<分類2>日本語分かち書きプログラム関係

今回は、MeCabを使う。
必要なのは次の三つである。
・mecab-0.98.tar.gz (MeCab本体)
・mecab-ipadic-2.7.0-20070801.tar.gz (本体が使用するIPA辞書)
・mecab-perl-0.98.tar.gz (MeCab-perlバインディングというMeCabを扱うperlモジュール)



■インストール手順■

これからをPOPFileをインストールするCentOS5のシステムは64bit版のもので、
標準のインストーラーを使って構成されたもの。gnomeなどのGUI環境はインストールしていない。

下はこのシステムのunameの結果。カーネルは、現在yumで導入できる最新版が入っている。
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

インストール手順は、大きく分けて6つある。



(手順1) 必要な準備

1◇ アップデート、コンパイラ、リポジトリ、CPANのための通信プログラムの導入



先ず、システム全体のアップデートを行う。
次にCコンパイラのインストール作業を行う。
さらにepelリポジトリを導入する。後の手順で必要になるパッケージがここに存在しているためである。
最後のncftpのインストールも、epelリポジトリから行われる。ncftpは、cpanのセットアップ時に必要になる。
# yum update
# yum install gcc gcc-c++
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# yum install ncftp

2◇ CPANへのアクセスの準備
#perl -MCPAN -e shell
これは、CPAN(perlのモジュールを公開しているネットワーク)へのアクセスするときに使うコマンド。
初回のみセットアップ作業がある。質問に答えていく形式になっている。詳細はこちら
質問のほとんどは、エンターキーを押すだけ。最後の地域に関する質問には、順に次を選択した。
(2) Asia
(7) Japan
(5) ftp://ftp.riken.jp/lang/CPAN/

CPANへのアクセス準備が完了すれば、次のようにコマンド待ちになる。
exitを実行して、終了する。
cpan>
cpan> exit


(手順2) 一般的なperlモジュール<分類1>のインストール

1◇ CPANからモジュールをインストールする

再び、次のコマンドを実行する。

#perl -MCPAN -e shell
そして、cpan> というプロンプトに、下記のように「installコマンドと引数」を一つずつ入力しエンターキーを押す。
処理に時間がかかるものがある。途中で質問されることがあるがエンターキーを押すだけで問題なかった。
無事にインストールが成功すれば、いずれも最後に、make install -- OK が表示される。
cpan> install YAML
/usr/bin/make install -- OK (比較的時間がかかった)

cpan> install IO::Socket::Socks
/usr/bin/make install -- OK (比較的時間がかかった)

cpan> install Encode
/usr/bin/make install -- OK (比較的時間がかかった)

cpan> install HTML::Template
/usr/bin/make install -- OK

cpan> install Date::Parse
/usr/bin/make install -- OK

cpan> install MIME::QuotedPrint
/usr/bin/make install -- OK

cpan> install MIME::Base64
(すでに導入されていた。MIME::Base64 is up to date.)

cpan> install HTML::Tagset
/usr/bin/make install -- OK

cpan> install Digest::MD5
/usr/bin/make install -- OK

cpan> install Digest::base
/usr/bin/make install -- OK

cpan> install DBI
/usr/bin/make install -- OK (比較的時間がかかった)

cpan> install DBD::SQLite
/usr/bin/make install -- OK (導入されたのは、ver1.33 sqlite3だった。)

cpan> exit
 (CPANから出る)

2◇ CPANで簡単には導入できないモジュールをyumでインストールする

次の3つのモジュールは、エラーが出てCPANから簡単には導入できなかった。

・SOAP::Lite
・Net::SSLeay
・IO::Socket::SSL

そこで、これらについてはyumを使ってインストールした。このとき依存関係でいくつかのperlモジュールもインストールされた。
(ところでCPANでこれらのインストールに失敗したのは、依存関係にあるモジュールがなかったからなのかもしれない。)

一つ目のperl-SOAP-Liteは、epelリポジトリ(作業1で導入済み)に入っていた。
これは依存関係が多く、このうちいくつかのものはbaseやextrasリポジトリにも入っていた。
# yum install perl-SOAP-Lite

Dependencies Resolved



================================================================================

Package Arch Version Repository Size

================================================================================

Installing:

perl-SOAP-Lite noarch 0.712-5.el5 epel 348 k

Installing for dependencies:

perl-Class-Inspector noarch 1.17-1.el5 epel 25 k

perl-Compress-Zlib x86_64 1.42-1.fc6 base 52 k

perl-Convert-BinHex noarch 1.119-5.el5 epel 47 k

perl-HTML-Parser x86_64 3.55-1.fc6 base 92 k

perl-HTML-Tagset noarch 3.10-2.1.1 base 15 k

perl-IO-stringy noarch 2.110-5.el5 epel 70 k

perl-MIME-Lite noarch 3.01-5.el5 epel 73 k
perl-MIME-tools noarch 5.420-3.el5 epel 285 k
perl-MailTools noarch 1.77-1.el5.centos extras 91 k
perl-TimeDate noarch 1:1.16-5.el5 base 32 k
perl-URI noarch 1.35-3 base 116 k
perl-XML-Parser x86_64 2.34-6.1.2.2.1 base 210 k
perl-libwww-perl noarch 5.805-1.1.1 base 376 k

Transaction Summary
================================================================================
Install 14 Package(s)
Upgrade 0 Package(s)

Total download size: 1.8 M

二つ目、

# yum install perl-Net-SSLeay
三つ目、

# yum install perl-IO-Socket-SSL



(手順3) 分かち書きプログラムMeCab本体と、その辞書mecab-ipadicのインストール

1◇MeCab本体のインストール作業を行う
[root@localhost mecab]# wget http://downloads.sourceforge.net/project/mecab/mecab/0.98/mecab-0.98.tar.gz
[root@localhost mecab]# tar zxfv mecab-0.98.tar.gz
[root@localhost mecab]# cd mecab-0.98
[root@localhost mecab-0.98]# ./configure
[root@localhost mecab-0.98]# make
[root@localhost mecab-0.98]# make install
[root@localhost mecab-0.98]# cd ..
[root@localhost mecab]#

2◇MeCab用のIPA辞書
[root@localhost mecab]# wget http://downloads.sourceforge.net/project/mecab/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz
[root@localhost mecab]# tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
[root@localhost mecab]# cd mecab-ipadic-2.7.0-20070801
[root@localhost mecab-ipadic-2.7.0-20070801]# ./configure --with-charset=utf8
[root@localhost mecab-ipadic-2.7.0-20070801]# make
[root@localhost mecab-ipadic-2.7.0-20070801]# make install
[root@localhost mecab-ipadic-2.7.0-20070801]# cd ..
[root@localhost mecab]#

○MeCabの動作確認を行う。
mecabコマンドを実行すると、入力待ちになるので、適当な日本語文章を入れてエンターキーを押す。
すると文法が解析され品詞に分解される。すごい!
これがスパムメールに対抗する強力な武器の一つになる。CTRL+Cで戻る。
# mecab
テストの文章を書いています

テスト 名詞,サ変接続,*,*,*,*,テスト,テスト,テスト
の 助詞,連体化,*,*,*,*,の,ノ,ノ
文章 名詞,一般,*,*,*,*,文章,ブンショウ,ブンショー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
書い 動詞,自立,*,*,五段・カ行イ音便,連用タ接続,書く,カイ,カイ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
い 動詞,非自立,*,*,一段,連用形,いる,イ,イ
ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
EOS

(手順4) perl-MeCabバインディングモジュールのインストール

手順の3までがきちんと完了していれば問題はない。
[root@localhost mecab]# wget http://downloads.sourceforge.net/project/mecab/mecab-perl/0.98/mecab-perl-0.98.tar.gz
[root@localhost mecab]# tar zxfv mecab-perl-0.98.tar.gz
[root@localhost mecab]# cd mecab-perl-0.98
[root@localhost mecab-perl-0.98]# perl Makefile.PL
[root@localhost mecab-perl-0.98]# make
[root@localhost mecab-perl-0.98]# make install


(手順5) POPFile本体のインストール

 POPFile本体は、コンパイルなどする必要はない。
適当なディレクトリで解凍するだけである。
[root@localhost mecab-perl-0.98]# mkdir /usr/sbin/popfile1.1.1
[root@localhost mecab-perl-0.98]# cd /usr/sbin/popfile1.1.1
[root@localhost popfile1.1.1]# wget http://getpopfile.org/downloads/popfile-1.1.1.zip
[root@localhost popfile1.1.1]# unzip popfile-1.1.1.zip


(手順6) popfile本体の基本的な設定

基本的な設定は次の三つである。
POPFileの操作はwebインターフェイスで行うので、ネットワーク越しにアクセス出来るように設定する。
・日本語を扱う設定を行う。
・分かち書きプログラムの指定

1◇先ず、次のようにコマンドを実行し、POPFileを動作させる。

「runningメッセージ」を確認すれば、CTRL+Cで終了する。
これによって、ベースのコンフィグファイルpopfile.cfgなどが作成される。
[root@localhost popfile1.1.1]# perl ./popfile.pl

POPFile Engine loading

Loading...
{core: mq logger config history}
{classifier: wordmangle bayes}
{interface: xmlrpc html}
{proxy: pop3 nntp smtp}
{services: imap}

POPFile Engine v1.1.1 starting

Initializing...
{core: config history logger mq}
{classifier: bayes wordmangle}
{interface: html xmlrpc}
{proxy: nntp pop3 smtp}
{services: imap}

Starting...
{core: config history logger mq}
{classifier: bayes wordmangle}
{interface: html}
{proxy: pop3}
{services:}

POPFile Engine v1.1.1 running


<CTRL+Cを送る>

POPFile Engine v1.1.1 stopping

Stopping...
{classifier: bayes wordmangle}
{core: config history logger mq}
{interface: html}
{proxy: pop3}
{services:}

POPFile Engine v1.1.1 terminated

2◇作成されたpopfile.cfgをエディタで開き、次の項目を探して編集 (項目の詳細
bayes_nihongo_parser MeCab 大文字小文字に注意。さもなければ動作せず文字化けする。
html_language Nihongo ←日本語メールの処理、GUIの日本語化
html_local 0 ←127.0.0.1以外のインターフェイスへのアクセスでもGUIにアクセス許可
html_port 8081 ←GUIアクセスのためのTCPポートの設定



POPFileを起動する■

バックグラウンドで動作させるために、コマンド発行時に&を渡す。
[root@localhost popfile1.1.1]# perl ./popfile.pl &
[1] 3076
[root@localhost popfile1.1.1]#
POPFile Engine loading

Loading...
{core: mq logger config history}
{classifier: wordmangle bayes}
{interface: xmlrpc html}
{proxy: pop3 nntp smtp}
{services: imap}

POPFile Engine v1.1.1 starting

Initializing...
{core: config history logger mq}
{classifier: bayes wordmangle}
{interface: html xmlrpc}
{proxy: nntp pop3 smtp}
{services: imap}

Starting...
{core: config history logger mq}
{classifier: bayes wordmangle}
{interface: html}
{proxy: pop3}
{services:}

POPFile Engine v1.1.1 running
 これで、http://ipアドレス:8081 でPOPFileのGUIにアクセスできる。
(ファイアーウォールの設定には注意)
POPFileのpopプロキシ機能が動作しメールクライアントがアクセスできるようになっている。

 ◎複数のクライアントから接続する場合には、GUIの「設定」タブで、「POP3 同時接続の許可:はい」にしておく。



■メールクライアントの設定■

メールクライアントの設定変更箇所は、次の2点である。

・POPメールサーバーアドレスをPOPFileの動作しているコンピューターのアドレスに変更する。
・POPメールアカウント名を、「 POPメールサーバーアドレス:POPアカウント名 」に変更する。

このようにすることで、メールクライアントはPOPFileプロキシを経由しPOPメールサーバーからメールを受信できる。
特定のクライアントソフトウェアの設定方法や、最終的な処理を決めるフィルタの設定についてはこちらに載っていた。


 しかし、POPFileを初めて利用する場合、POPFileのGUIにてバケツの作成や分類のための単語学習などが必要になる。
すべき作業は次の2点である。

・メールの分類先であるクラス(=バケツ)を作成すること
・実際にメールを通してみて、それぞれのクラスに属するメールを判定するための単語の学習をさせること



単語の学習は、誤判定され間違ったクラスに分類されたメールや、分類先がわからず保留されたメールに対してPOPFile稼動後も継続的にさせる。

このようにして分類先の判定精度を十分に高めなければ、実用的にはならない。



POPFileを終了する■

POPFileのプロセスを停止させるためには、GUIの右上にある停止用リンクをクリックする。(お勧め)

あるいは、psコマンドでプロセス番号を調べて、killコマンドに番号を渡す。
プロセスはperlという名称になっている。(他のものを終了させないように注意)
# ps -A | grep perl
3076 ? 00:00:00 perl
# kill 3076



■その他の設定(オプション)■

◎POPFileのシステム起動時の自動起動の方法について

 /etc/rc.local に記述して、システム起動時に自動的にPOPFileが起動するように設定できる。
次の内容を、追記する。
export POPFILE_ROOT=/usr/sbin/popfile1.1.1/
export POPFILE_USER=/usr/sbin/popfile1.1.1/
perl /usr/sbin/popfile1.1.1/popfile.pl &


◎POPFileのキープアライブ(障害の自動検出と自動回復)の方法について (POPFileのハングアップ対策)

これまで何年もPOPFileを使ってきたが、たまに「落ち」てアクセスできなくなっていることがあった。
その場合は、再度POPFileを起動すれば済むが、これを自動的に回復できるように考えてみた。
POPFileがハングアップ、フリーズしても、自動的に復旧させられるようにする。

(方法)
POPFileが動作しているかどうかチェックし動作していなければ再起動するスクリプト(keep_popfile)を次のように作成。(実行属性を与えることを忘れずに。)
crontabを使って、このスクリプトを5分ごとに動作させる。
#!/bin/sh

TMPFILE=/tmp/keep_popfile.tmp.$$

if wget http://127.0.0.1:8081/security --output-document=$TMPFILE > /dev/null 2>&1

then
echo 'popfile is running.' > /dev/null
rm /tmp/keep_popfile.tmp.*

else
echo 'popfile is freezing'
date >> /usr/sbin/popfile1.1.1/freezing_at-the-time.log
export POPFILE_ROOT=/usr/sbin/popfile1.1.1/
export POPFILE_USER=/usr/sbin/popfile1.1.1/
perl /usr/sbin/popfile1.1.1/popfile.pl &

fi

<処理の流れ>
1、crontabでこのスクリプトが5分ごとに動作し、毎回http://127.0.0.1:8081/securityの読み込みを試みる。
2、もし読み込めなかったらPOPFileがダウンしていると判断する。
3、その場合、/usr/sbin/popfile1.1.1/freezing_at-the-time.logというファイルに、そのときの日時を追記する。
4、そして、POPFileを再起動する。

さらに、crontabで、5分ごとにkeep_popfileスクリプトを実行しPOPFileを監視する設定を行う。
[root@server01 popfile1.1.1]# crontab -e
*/5     *       *       *       *       /usr/sbin/popfile1.1.1/keep_popfile

さて、このようにするとハングアップしていても自動的に復旧してくれるようになり、保守が楽になった。

ちなみに、3のログ記録処理では、たとえば次のように記録されていく。
[root@server01 popfile1.1.1]# cat freezing_at-the-time.log
Sat Aug  6 08:24:01 JST 2011
Wed Aug 10 21:30:01 JST 2011
Wed Aug 17 00:12:03 JST 2011
Thu Sep 22 17:18:01 JST 2011
Thu Oct 20 21:42:01 JST 2011
Mon Oct 24 05:00:03 JST 2011
Sat Oct 29 13:54:02 JST 2011

いうまでもなく、
上記のスクリプトで指定しているURLを間違えると、POPFileが起動していないとみなされるため、
POPFileが何重にも起動されようとし動作がおかしくなるので、注意。






◎動作させているpopfileの設定内容や受信メールログを、新規マシンのpopfileへ移行する方法

(注意)
・ただし移行元と移行先のpopfileは共に、上の手順によって構築された環境で動作しているものとする。
・移行先のpopfileは停止させて作業する。


移行元マシンのpopfileのディレクトリにある次のファイルやディレクトリを、
新規マシンのpopfileのディレクトリに上書きコピーする。
popfile.cfg
popfile.db
messages (←ディレクトリ)



(参考)
・POPFile - Automatic Email Classification < http://getpopfile.org/wiki> 2011/06/30
・クロスプラットフォーム版のインストール方法 < http://getpopfile.org/docs/jp:howtos:crossplatforminstall > 2011/06/30
・MeCab: Yet Another Part-of-Speech and Morphological Analyzer < http://mecab.sourceforge.net/ > 2011/06/30

2011年6月29日水曜日

【Windows7 インストーラー】 エラーコード 0x8007045D

更新 2012年11月20日

Windows7 Professional 64bit版をインストールしているときにエラーが発生した。
インストール先を選択した後に開始される「ファイルの展開」で次のようなエラーが発生し、続行できなくなった。

再起動をしながらインストールを繰り返していたら、2通りのエラーに遭遇した。 

<パターン1>
必要なファイルをインストールできません。
インストールに必要なすべてのファイルが利用可能であることを確認し、
インストールを再実行してください。
エラーコード 0x8007045D
 <パターン2>
必要なファイルをインストールできません。
ファイルが存在しません。
インストールに必要なすべてのファイルが利用可能であることを確認し、
インストールを再実行してください。
エラーコード 0x80070002

最後に「結論」あり。


自作パソコンに、「USBで外付けできるようにした内蔵DVDドライブ」を使ってインストール作業をしていてこのようなエラーが生じた。
この「USB外付け内蔵DVDドライブ」は、「ATAPI/USBアダプタ」に「ATAPIドライブ」をつないで実現しているものだ。

[PC マザーボード]---usb接続---[ATAPI-USBアダプタ]---ATAPI接続---[ATAPI DVDドライブ]


 以前はこんな構成の「USB外付けDVDドライブ」でも、型番は異なるものの同じメーカーのマザーボードを使って、問題なくWin7をインストールできていた。
だからエラーが出ても最初はこれを疑っていなかった。
その他のパーツ、HDDやマザーボードを疑った。
パーツを交換してはまたインストール作業を試すことを繰り返して原因を探っていった。

 結局、その「USB外付け内蔵DVDドライブ」を構成している「ATAPI/USBアダプタ」だけを別のメーカーのものに交換してみた。
すると変化が生じた。ある程度進捗した後でエラーが生じるようになった
(進捗状況0%でエラーが発生していたのが、50%まで進んでから発生するようになった)

  相性問題か?しかし、もうこれ以上試せる「ATAPI-USBアダプタ」を持っていない。
 
 しかたなく、「ATAPI DVDドライブ」を別のメーカーのもの(ソニー製)にしてみた
するとエラーは最後まで起こらずに、インストールが無事終了できた!
(まえのドライブは、洗濯機みたいにゴオーと音を立ててフルスピードで動作していたが、これはオトナシく、インストールに時間がかかった。)

とりあえず解決できてよかった。


この場合では、特定のマザーボードと、ATAPI-USBアダプタと、ATAPI DVDドライブとが関係しあった結果、上記のエラーを生じさせてしまったのだろう
今回のことで、マザーボードは同じメーカーであっても型番が異なれば相性問題を生じさせる可能性があるということがわかった。


◎結論◎
USB接続の光学ドライブからWindows7をインストールするのは避けたほうが良いようだ。
私の環境では、素直にSATA接続の光学ドライブを使えば、難なくインストールすることができた


どうしても、USB接続デバイスを使ってWindowsのインストール作業をしなければならない場合は、
WinToFlashなどのソフトウェアをつかって「USB接続のフラッシュメモリ」にインストーラーを書き込み、
これを使ってインストールをすると良いと思う。
あるいは、次のページを参考にして自分で作成する。

Windows 8.1(UPDATE)インストーラーをフラッシュメモリに書き込んでインストーラーを起動できるようにする方法
http://akira-arets.blogspot.jp/2015/05/make-usbdisk-bootableforwin7installer.html



新品価格
¥1,979から
(2018/5/9 00:04時点)

2011年6月23日木曜日

【YAMAHA RTXシリーズ】dhcpでアドレス情報配布するとき、任意のDNSサーバーを配布する


たとえばscope 1番で、172.31.12.10-172.31.12.100/24の範囲のアドレスを配布し、
同時にDNSサーバーとして、特に8.8.8.8と、8.8.4.4を通知したい場合には、次のようにする。
このようにすると、scopeごとに異なる情報をdhcpで配布することができる。
optionを指定しない場合は、デフォルトのものが通知される。

# dhcp scope 1 172.31.12.10-172.31.12.100/24
# dhcp scope option 1 dns=8.8.8.8,8.8.4.4


dns=」は、クライアントへ与えるDHCPメッセージの要素の一つを指定している。
2つ以上指定したい場合、アドレスはカンマで区切る。
DHCPで通知できるその他の要素もある。

使用ルーター:RTX1200 Rev.10.01.29


RTX1100などについては、「RTX1100/RTX1500/RT107e Rev.8.03.92 リリースノート Rev.8.03.90 からの変更点」に、
「DHCPサーバー機能で、1~49、62~254のオプション番号をdhcp scope optionコマンドで設定できるように変更した。」とでていますね。
(update 2012年4月8日)

ヤマハ RTX830 ギガアクセスVPNルーター

新品価格
¥48,945から
(2018/3/19 23:35時点)

【LINUX】テキストファイルの改行コード変換【unix2dosと、dos2unixコマンド】

LinuxのテキストファイルをWindowsのメモ帳で開いても正しく表示されない。
逆に、Windowsのテキストファイルを、Linuxのviなどで開いても正しく表示されない。
改行コードが互いに異なるためである。



■LinuxのテキストファイルをWindowsで正しく表示させるためには、改行コードをWindowsのものに変換する■

□unix2dosコマンドを使ってみる
test.txtがLinuxのテキストファイルの場合、これをWindows形式に変換する。

# unix2dos test.txt

test.txtは上書き変更される。


□カレントディレクトリ内の拡張子がtxtのファイルについてその改行コードを一括変換する

# find ./ -type f -name "*.txt" | xargs unix2dos

findで拾われたファイル名がxargsコマンドによって適切にunix2dosへ渡される。




■WindowsのテキストファイルをLinuxで正しく扱うためには、改行コードをLinuxのものに変換する■

□dos2unixコマンドを使ってみる
test.txtがWindowsのテキストファイルの場合、 これをLinux形式に変換する。

# dos2unix test.txt

test.txt は上書き変更される。


□カレントディレクトリ内の拡張子がtxtのファイルについてその改行コードを一括変換す る

# find ./ -type f -name "*.txt" | xargs dos2unix

findで拾われたファイル名が xargsコマンドによって適切にdos2unixへ渡される。

[改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる (WEB DB PRESS plus)

新品価格
¥2,894から
(2018/3/20 00:11時点)


投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad