<?xml version="1.0" encoding="utf-8"?><!-- generator="b2evolution/3.3.3" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>FreeBSD Notes</title>
		<link>http://www.xdelta.net/blog/FreeBSD</link>
		<atom:link rel="self" type="application/rss+xml" href="http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2" />
		<description>Some notes of FreeBSD (written in Japanese)</description>
		<language>ja-JP</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=3.3.3"/>
		<ttl>60</ttl>
				<item>
			<title>FreeBSD 7.2Rにアップグレード</title>
			<link>http://www.xdelta.net/blog/FreeBSD/2009/05/05/p272</link>
			<pubDate>Tue, 05 May 2009 07:51:29 +0000</pubDate>			<dc:creator>masken</dc:creator>
			<category domain="main">base</category>			<guid isPermaLink="false">272@http://www.xdelta.net/blog/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://www.freebsd.org/releases/7.2R/announce.html&quot;&gt;FreeBSD 7.2-RELEASEが公開された&lt;/a&gt;ので、7.1Rの方からアップグレードしてみました。&lt;/p&gt;
&lt;p&gt;今回も、&lt;a href=&quot;http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&amp;amp;lc=1&amp;amp;cmd=&amp;amp;man=csup&amp;amp;dir=jpman-7.1.2%2Fman&amp;amp;sect=0&quot;&gt;csup(1)&lt;/a&gt;を使ってソースを同期し、再構築。行った手順は、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2007/01/13/p246&quot;&gt;FreeBSD 6.2-RELEASEにアップグレード&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;の時と、ほぼ同じ。&lt;/p&gt;
&lt;p&gt;構築前、&lt;code&gt;mergemaster -p&lt;/code&gt;を実行した際、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;pre&gt;*** You have the deprecated 'nodev' option in /etc/fstab.
    This can prevent the filesystem from being mounted on reboot.
    Please update your fstab before continuing.
    See fstab(5) for more information.&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;のように言われて、処理が中断された。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/fstab&lt;/code&gt;を確認してみると、CD-ROMの箇所に&lt;code&gt;nodev&lt;/code&gt;のmount オプションが残っていた。FreeBSD 5以降、devfsの導入に伴って、このオプションは無視されるようになっていたけど、FreeBSD 7では、このオプションがあると、マウントに失敗するらしい（最近、このデバイスは使う機会がなかったので見落としていた…）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://lists.freebsd.org/pipermail/freebsd-doc/2007-August/012993.html&quot;&gt;Need to remove references to &amp;quot;nodev&amp;quot; mount option&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&amp;amp;lc=1&amp;amp;cmd=&amp;amp;man=fstab&amp;amp;dir=jpman-7.2.2%2Fman&amp;amp;sect=0&quot;&gt;fstab(5)&lt;/a&gt; ファイル（&lt;code&gt;/etc/fstab&lt;/code&gt;）から、該当のオプションを削除し、作業を続行。&lt;/p&gt;
&lt;p&gt;アップグレードを完了後、&lt;code&gt;make check-old&lt;/code&gt;を実行してみたけど、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;pre&gt;&gt;&gt;&gt; Checking for old files
/usr/share/man/man8/adding_user.8.gz
/usr/include/hesiod.h
&gt;&gt;&gt; Checking for old libraries
&gt;&gt;&gt; Checking for old directories
To remove old files and directories run 'make delete-old'.
To remove old libraries run 'make delete-old-libs'.&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;と、FreeBSD 6.3から7.1にアップグレードした時に比べて大幅な変更はなさそう。今回は、portsの再構築はしなくてもよいかな？&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2009/05/05/p272&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://www.freebsd.org/releases/7.2R/announce.html">FreeBSD 7.2-RELEASEが公開された</a>ので、7.1Rの方からアップグレードしてみました。</p>
<p>今回も、<a href="http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&amp;lc=1&amp;cmd=&amp;man=csup&amp;dir=jpman-7.1.2%2Fman&amp;sect=0">csup(1)</a>を使ってソースを同期し、再構築。行った手順は、</p>
<ul>
<li><a href="http://www.xdelta.net/blog/FreeBSD/2007/01/13/p246">FreeBSD 6.2-RELEASEにアップグレード</a></li>
</ul>
<p>の時と、ほぼ同じ。</p>
<p>構築前、<code>mergemaster -p</code>を実行した際、</p>
<div class="codeblock"><pre>*** You have the deprecated 'nodev' option in /etc/fstab.
    This can prevent the filesystem from being mounted on reboot.
    Please update your fstab before continuing.
    See fstab(5) for more information.</pre></div>
<p>のように言われて、処理が中断された。</p>
<p><code>/etc/fstab</code>を確認してみると、CD-ROMの箇所に<code>nodev</code>のmount オプションが残っていた。FreeBSD 5以降、devfsの導入に伴って、このオプションは無視されるようになっていたけど、FreeBSD 7では、このオプションがあると、マウントに失敗するらしい（最近、このデバイスは使う機会がなかったので見落としていた…）。</p>
<ul>
<li><a href="http://lists.freebsd.org/pipermail/freebsd-doc/2007-August/012993.html">Need to remove references to &quot;nodev&quot; mount option</a></li>
</ul>
<p><a href="http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&amp;lc=1&amp;cmd=&amp;man=fstab&amp;dir=jpman-7.2.2%2Fman&amp;sect=0">fstab(5)</a> ファイル（<code>/etc/fstab</code>）から、該当のオプションを削除し、作業を続行。</p>
<p>アップグレードを完了後、<code>make check-old</code>を実行してみたけど、</p>
<div class="codeblock"><pre>>>> Checking for old files
/usr/share/man/man8/adding_user.8.gz
/usr/include/hesiod.h
>>> Checking for old libraries
>>> Checking for old directories
To remove old files and directories run 'make delete-old'.
To remove old libraries run 'make delete-old-libs'.</pre></div>
<p>と、FreeBSD 6.3から7.1にアップグレードした時に比べて大幅な変更はなさそう。今回は、portsの再構築はしなくてもよいかな？</p><div class="item_footer"><p><small><a href="http://www.xdelta.net/blog/FreeBSD/2009/05/05/p272">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.xdelta.net/blog/FreeBSD/2009/05/05/p272#comments</comments>
			<wfw:commentRss>http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2&#38;disp=comments&#38;p=272</wfw:commentRss>
		</item>
				<item>
			<title>workerで動くApache 2.2.11に@ARGVがうまく渡されない</title>
			<link>http://www.xdelta.net/blog/FreeBSD/2009/03/22/p269</link>
			<pubDate>Sun, 22 Mar 2009 10:43:02 +0000</pubDate>			<dc:creator>masken</dc:creator>
			<category domain="main">www</category>			<guid isPermaLink="false">269@http://www.xdelta.net/blog/</guid>
						<description>&lt;p&gt;いつのころからか、Another HTML Lintで、URLを入れて外部のサイトのHTMLの文法をチェックしようとすると、&lt;code&gt;Internal Server Error&lt;/code&gt;が出る。&lt;/p&gt;
&lt;p&gt;エラーログを確認してみると、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
malformed header from script. Bad header=  Another HTML-lint gateway sc: htmllint.cgi
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;のような表示。&lt;/p&gt;
&lt;p&gt;どうやら、HTTPのヘッダが正しく出力されていない模様。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/japanese/another-htmllint/&quot;&gt;Another HTML Lintのport&lt;/a&gt;の方には、変更は行われていないようだし、Apache辺りが原因だと思っていたところ、先日、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/bugzilla/show_bug.cgi?id=46380&quot;&gt;Bug 46380 -  Apache 2.2.10 and suexec extra argv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;のレポートを見付けたので、現在使用している&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/www/apache22/&quot;&gt;workerのApache&lt;/a&gt; 2.2.11に以下のパッチを適用してみた。&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
--- ./modules/generators/mod_cgid.c.org 2008-08-16 07:08:05.000000000 +0900
+++ ./modules/generators/mod_cgid.c     2009-03-22 18:42:30.000000000 +0900
@@ -203,7 +203,7 @@
     char *w;
     int idx = 0;

-    if (ap_strchr_c(args, '=')) {
+    if (!(*args) || ap_strchr_c(args, '=')) {
         numwords = 0;
     }
     else {
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;どうやら、正解。&lt;code&gt;@ARGV&lt;/code&gt;がうまく渡されていなかった模様。&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2009/03/22/p269&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>いつのころからか、Another HTML Lintで、URLを入れて外部のサイトのHTMLの文法をチェックしようとすると、<code>Internal Server Error</code>が出る。</p>
<p>エラーログを確認してみると、</p>
<div class="codeblock">
<pre>
malformed header from script. Bad header=  Another HTML-lint gateway sc: htmllint.cgi
</pre>
</div>
<p>のような表示。</p>
<p>どうやら、HTTPのヘッダが正しく出力されていない模様。</p>
<p><a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/japanese/another-htmllint/">Another HTML Lintのport</a>の方には、変更は行われていないようだし、Apache辺りが原因だと思っていたところ、先日、</p>
<ul>
<li><a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=46380">Bug 46380 -  Apache 2.2.10 and suexec extra argv</a></li>
</ul>
<p>のレポートを見付けたので、現在使用している<a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/www/apache22/">workerのApache</a> 2.2.11に以下のパッチを適用してみた。</p>
<div class="codeblock">
<pre>
--- ./modules/generators/mod_cgid.c.org 2008-08-16 07:08:05.000000000 +0900
+++ ./modules/generators/mod_cgid.c     2009-03-22 18:42:30.000000000 +0900
@@ -203,7 +203,7 @@
     char *w;
     int idx = 0;

-    if (ap_strchr_c(args, '=')) {
+    if (!(*args) || ap_strchr_c(args, '=')) {
         numwords = 0;
     }
     else {
</pre>
</div>
<p>どうやら、正解。<code>@ARGV</code>がうまく渡されていなかった模様。</p><div class="item_footer"><p><small><a href="http://www.xdelta.net/blog/FreeBSD/2009/03/22/p269">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.xdelta.net/blog/FreeBSD/2009/03/22/p269#comments</comments>
			<wfw:commentRss>http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2&#38;disp=comments&#38;p=269</wfw:commentRss>
		</item>
				<item>
			<title>ユーザごとにAUTH先のSMTPサーバを切替えてメール送信</title>
			<link>http://www.xdelta.net/blog/FreeBSD/2008/02/16/p266</link>
			<pubDate>Fri, 15 Feb 2008 18:00:00 +0000</pubDate>			<dc:creator>masken</dc:creator>
			<category domain="alt">ports</category>
<category domain="alt">base</category>
<category domain="main">mail</category>			<guid isPermaLink="false">266@http://www.xdelta.net/blog/</guid>
						<description>&lt;h4&gt;前置き&lt;/h4&gt;
&lt;p&gt;今まで頻繁に来ていたトラックバックがあったことを知らせる通知メールが最近は来ていないな、と思っていたら、どうやら、現在利用しているISP&lt;sup class=&quot;fn&quot;&gt;*1&lt;/sup&gt;でも本格的に&lt;acronym title=&quot;OutBound Port 25 Blocking&quot;&gt;OP25B&lt;/acronym&gt;の制限が始まっていたらしい…。&lt;/p&gt;
&lt;p&gt;メールのログに、&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;stat=Deferred: Operation timed out with XXX.XXX.XXX&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;と延々と記録されている。&lt;/p&gt;
&lt;p&gt;といっても、OP25Bの初期の何年か前、こちらのサーバから携帯電話のメールサーバに宛ててメールが送信できなくなってしまったので、その頃、開始した&lt;a href=&quot;http://www.google.com/a/&quot; title=&quot;Google Apps&quot;&gt;Googleのホスティングサービス&lt;/a&gt;を利用して、独自ドメインのメールはGMail上で送受信するように切替えていたので、通常使用の分には問題なかったんだけど。&lt;/p&gt;
&lt;p&gt;ただ例外として、ブログのトラックバックやコメント等があった時の通知メールは、こちらのサーバから外部に出すようにしていた（大抵、海外からのトラックバックスパムやコメントスパムが発生原因で、あまり好ましいものとは言えないんだけど、一応…）。&lt;/p&gt;
&lt;p&gt;しかし、放っておいても問題の解決にはならないので、調べてみたところ、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jg1huq.ddo.jp/yahoo_op25b.html&quot;&gt;Yahoo OP25B 対策&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;に、SMTP-AUTHの設定を解説されているサイトがあった。&lt;/p&gt;
&lt;p&gt;ただ、プロバイダの制約上、一つのアカウントに登録できるメールアドレスは、５つまでだそうなので、プロバイダ固有のものを除くと、独自ドメインのものは最大で４つまでとなってしまう（全部、それに割り当てても良ければの話。しかも、どのメールも同一ユーザでの認証が必要）。&lt;/p&gt;
&lt;p&gt;ちょっと、これでは都合が悪いので、あれこれ模索してみていたところ、上記GMailのメールサーバでも、独自ドメインのアドレスで送受信できる事が判明&lt;sup class=&quot;fn&quot;&gt;*2&lt;/sup&gt;。Googleの解説の&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://mail.google.com/support/bin/answer.py?answer=13287&amp;amp;topic=12810&quot;&gt;その他のメール クライアントの設定&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;では、&lt;q&gt;Gmail のユーザー名 (@gmail.com を含む)&lt;/q&gt;と記述されていたから、今まで、メールアドレスは、gmail.comのドメインのものじゃないと駄目だと思っていたけど。&lt;/p&gt;
&lt;p&gt;以下、Googleのサービスを利用して、ユーザごとに認証を切替えて、メールを送信する方法について書いてみました。&lt;/p&gt;
&lt;ul class=&quot;footnotes&quot;&gt;
&lt;li&gt;&lt;span class=&quot;footnote&quot;&gt;*1&lt;/span&gt; 現在、Yahoo!BBの回線を使用しています。&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;footnote&quot;&gt;*2&lt;/span&gt; Googleでは、一つのドメインに対し、25個までのアカウントを作成することができる（無料版の場合）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;SMTP AUTH対応のSendmailの構築&lt;/h4&gt;
&lt;p&gt;というわけで、外部に向けて送信するため、SMTP-AUTH対応のsendmailを構築。&lt;/p&gt;
&lt;p&gt;まず、portsから&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/security/cyrus-sasl2/&quot;&gt;security/cyrus-sasl2&lt;/a&gt;をインストールして、&lt;code&gt;/etc/make.conf&lt;/code&gt;に、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;を記述し、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
# cd /usr/src/lib/libsm
# make obj &amp;amp;&amp;amp; make depend &amp;amp;&amp;amp; make
# cd /usr/src/lib/libsmutil
# make obj &amp;amp;&amp;amp; make depend &amp;amp;&amp;amp; make
# cd /usr/src/usr.sbin/sendmail
# make obj &amp;amp;&amp;amp; make depend &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;でsendmailを再構築。&lt;/p&gt;
&lt;h4&gt;設定&lt;/h4&gt;
&lt;p&gt;次に、&lt;code&gt;/etc/mail/&lt;/code&gt;以下の設定ファイルの記述。&lt;/p&gt;
&lt;p&gt;通常、&lt;code&gt;SMART_HOST&lt;/code&gt;を使うと思うけど、そうすると送信サーバが固定されてしまうので、複数のアカウントを使い分けている場合には不便。&lt;/p&gt;
&lt;h5&gt;smarttabe.m4の利用&lt;/h5&gt;
&lt;p&gt;そこで、ここでは、ユーザごとに送信先を選べるように、&lt;code&gt;smarttable&lt;/code&gt;を使うことにする。&lt;/p&gt;
&lt;p&gt;まず、SorceForge.netから、&lt;a href=&quot;http://sourceforge.net/projects/open-sendmail/&quot;&gt;open-sendmail&lt;/a&gt;のソースファイルを取ってきて、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
# tar zxf open-sendmail-2007-09-25.tar.gz
# cp -p ./cf/feature/anfi/smarttable.m4 /usr/share/sendmail/cf/feature/
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;と展開し、&lt;code&gt;smarttable.m4&lt;/code&gt;をコピー。&lt;/p&gt;
&lt;h5&gt;FQDN.mcの作成&lt;/h5&gt;
&lt;p&gt;&lt;code&gt;/etc/mail/&lt;/code&gt;内で、&lt;code&gt;make&lt;/code&gt;を実行して作成される&lt;code&gt;/etc/mail/[FQDN].mc&lt;/code&gt;に、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
FEATURE(`smarttable')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
FEATURE(`authinfo', DATABASE_MAP_TYPE MAIL_SETTINGS_DIR`authinfo')dnl

MASQUERADE_AS(`_domain_name')dnl
FEATURE(masquerade_envelope)dnl
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;を記述する（GMailの場合、587番ポートは&lt;code&gt;STARTTSL&lt;/code&gt;でTSL接続、465番ポートを使用した場合は最初からSSL接続。後段は、&lt;code&gt;From&lt;/code&gt;と&lt;code&gt;Return-Path&lt;/code&gt;の記述）。&lt;/p&gt;
&lt;h5&gt;認証ファイルの作成&lt;/h5&gt;
&lt;p&gt;次にSMTP AUTHを行うための設定。&lt;code&gt;/etc/mail/authinfo&lt;/code&gt;を作成し、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
AuthInfo:user1.smtp-gmail &quot;U:&lt;span&gt;&lt;em&gt;Acount1@example.com&lt;/em&gt;&lt;/span&gt;&quot; &quot;P:&lt;span&gt;&lt;em&gt;Password1&lt;/em&gt;&lt;/span&gt;&quot; &quot;M:LOGIN PLAIN&quot;
AuthInfo:user2.smtp-gmail &quot;U:&lt;span&gt;&lt;em&gt;Acount2@example.com&lt;/em&gt;&lt;/span&gt;&quot; &quot;P:&lt;span&gt;&lt;em&gt;Password2&lt;/em&gt;&lt;/span&gt;&quot; &quot;M:LOGIN PLAIN&quot;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;等と各SMTPサーバ&lt;sup class=&quot;fn&quot;&gt;*3&lt;/sup&gt;に対応するユーザ名とパスワード等を記述&lt;sup class=&quot;fn&quot;&gt;*4&lt;/sup&gt;した後、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
# cd /etc/mail
# makemap hash authinfo.db &amp;lt; authinfo
# chmod 640 authinfo*
# chgrp smmsp authinfo.db
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;を実行して、ハッシュのデータベースを作成し、パーミッション等を適切なものに変える。&lt;/p&gt;
&lt;ul class=&quot;footnotes&quot;&gt;
&lt;li&gt;&lt;span class=&quot;footnote&quot;&gt;*3&lt;/span&gt; 同一の送信先に、複数のアカウントを割り当てて認証データベースを作成できないので、ここではアカウントごとに架空の送信サーバを指定して、ローカルのDNSで名前解決させることにしています。&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;footnote&quot;&gt;*4&lt;/span&gt; &lt;a href=&quot;http://www.sendmail.org/m4/smtp_auth.html&quot;&gt;Sendmail cf/README - SMTP AUTH&lt;/a&gt;参照。&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;ユーザごとの送信先&lt;/h5&gt;
&lt;p&gt;&lt;code&gt;/etc/mail/smarttable&lt;/code&gt;を作成し、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
localuser1@host.local.domain    user1.smtp-gmail
localuser2@host.local.domain    user2.smtp-gmail
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;等と記述し、ローカルのユーザと送信先を対応させて、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
# makemap hash /etc/mail/smarttable.db &amp;lt; /etc/mail/smarttable
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;とデータベースファイルを作成。&lt;/p&gt;
&lt;h5&gt;DNSの設定&lt;/h5&gt;
&lt;p&gt;ローカルのDNSのzoneファイルには、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
*.smtp-gmail    IN      CNAME   smtp.gmail.com.
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;を追加して、名前解決できるようにし、namedを再起動。&lt;/p&gt;
&lt;h5&gt;設定の終了、sendmailの再起動&lt;/h5&gt;
&lt;p&gt;ローカル宛てのメールは、上記の設定を反映させる必要もないので、&lt;code&gt;[FQDN].submit.mc&lt;/code&gt;に、&lt;/p&gt;
&lt;div class=&quot;codeblock diff&quot;&gt;
&lt;pre&gt;
dnl If you use IPv6 only, change [127.0.0.1] to [IPv6:::1]
&lt;span class=&quot;add&quot;&gt;DAEMON_OPTIONS(`Name=NoMTA, Addr=127.0.0.1, M=EA')dnl&lt;/span&gt;
FEATURE(`msp', `[127.0.0.1]')dnl
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;を追加。&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
# make install restart
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;で、&lt;code&gt;/etc/mail/sendmail*.cf&lt;/code&gt;を構築して、&lt;code&gt;sendmail&lt;/code&gt;を再起動。&lt;/p&gt;
&lt;h4&gt;備考&lt;/h4&gt;
&lt;p&gt;以上の設定で、目的は果たせたようです。&lt;/p&gt;
&lt;p&gt;なお、上記の設定は、ほとんど、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.google.co.jp/group/de.comm.provider.t-online/browse_thread/thread/bfe8428af5576ed0/&quot;&gt; per-user rewrite+route / route non-t-online from-addr via t-online?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を参考にしたものです。&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2008/02/16/p266&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<h4>前置き</h4>
<p>今まで頻繁に来ていたトラックバックがあったことを知らせる通知メールが最近は来ていないな、と思っていたら、どうやら、現在利用しているISP<sup class="fn">*1</sup>でも本格的に<acronym title="OutBound Port 25 Blocking">OP25B</acronym>の制限が始まっていたらしい…。</p>
<p>メールのログに、</p>
<blockquote>
<pre>stat=Deferred: Operation timed out with XXX.XXX.XXX</pre>
</blockquote>
<p>と延々と記録されている。</p>
<p>といっても、OP25Bの初期の何年か前、こちらのサーバから携帯電話のメールサーバに宛ててメールが送信できなくなってしまったので、その頃、開始した<a href="http://www.google.com/a/" title="Google Apps">Googleのホスティングサービス</a>を利用して、独自ドメインのメールはGMail上で送受信するように切替えていたので、通常使用の分には問題なかったんだけど。</p>
<p>ただ例外として、ブログのトラックバックやコメント等があった時の通知メールは、こちらのサーバから外部に出すようにしていた（大抵、海外からのトラックバックスパムやコメントスパムが発生原因で、あまり好ましいものとは言えないんだけど、一応…）。</p>
<p>しかし、放っておいても問題の解決にはならないので、調べてみたところ、</p>
<ul>
<li><a href="http://jg1huq.ddo.jp/yahoo_op25b.html">Yahoo OP25B 対策</a></li>
</ul>
<p>に、SMTP-AUTHの設定を解説されているサイトがあった。</p>
<p>ただ、プロバイダの制約上、一つのアカウントに登録できるメールアドレスは、５つまでだそうなので、プロバイダ固有のものを除くと、独自ドメインのものは最大で４つまでとなってしまう（全部、それに割り当てても良ければの話。しかも、どのメールも同一ユーザでの認証が必要）。</p>
<p>ちょっと、これでは都合が悪いので、あれこれ模索してみていたところ、上記GMailのメールサーバでも、独自ドメインのアドレスで送受信できる事が判明<sup class="fn">*2</sup>。Googleの解説の</p>
<ul>
<li><a href="http://mail.google.com/support/bin/answer.py?answer=13287&amp;topic=12810">その他のメール クライアントの設定</a></li>
</ul>
<p>では、<q>Gmail のユーザー名 (@gmail.com を含む)</q>と記述されていたから、今まで、メールアドレスは、gmail.comのドメインのものじゃないと駄目だと思っていたけど。</p>
<p>以下、Googleのサービスを利用して、ユーザごとに認証を切替えて、メールを送信する方法について書いてみました。</p>
<ul class="footnotes">
<li><span class="footnote">*1</span> 現在、Yahoo!BBの回線を使用しています。</li>
<li><span class="footnote">*2</span> Googleでは、一つのドメインに対し、25個までのアカウントを作成することができる（無料版の場合）</li>
</ul>
<h4>SMTP AUTH対応のSendmailの構築</h4>
<p>というわけで、外部に向けて送信するため、SMTP-AUTH対応のsendmailを構築。</p>
<p>まず、portsから<a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/security/cyrus-sasl2/">security/cyrus-sasl2</a>をインストールして、<code>/etc/make.conf</code>に、</p>
<div class="codeblock">
<pre>
SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2
</pre>
</div>
<p>を記述し、</p>
<div class="codeblock">
<pre>
# cd /usr/src/lib/libsm
# make obj &amp;&amp; make depend &amp;&amp; make
# cd /usr/src/lib/libsmutil
# make obj &amp;&amp; make depend &amp;&amp; make
# cd /usr/src/usr.sbin/sendmail
# make obj &amp;&amp; make depend &amp;&amp; make &amp;&amp; make install
</pre>
</div>
<p>でsendmailを再構築。</p>
<h4>設定</h4>
<p>次に、<code>/etc/mail/</code>以下の設定ファイルの記述。</p>
<p>通常、<code>SMART_HOST</code>を使うと思うけど、そうすると送信サーバが固定されてしまうので、複数のアカウントを使い分けている場合には不便。</p>
<h5>smarttabe.m4の利用</h5>
<p>そこで、ここでは、ユーザごとに送信先を選べるように、<code>smarttable</code>を使うことにする。</p>
<p>まず、SorceForge.netから、<a href="http://sourceforge.net/projects/open-sendmail/">open-sendmail</a>のソースファイルを取ってきて、</p>
<div class="codeblock">
<pre>
# tar zxf open-sendmail-2007-09-25.tar.gz
# cp -p ./cf/feature/anfi/smarttable.m4 /usr/share/sendmail/cf/feature/
</pre>
</div>
<p>と展開し、<code>smarttable.m4</code>をコピー。</p>
<h5>FQDN.mcの作成</h5>
<p><code>/etc/mail/</code>内で、<code>make</code>を実行して作成される<code>/etc/mail/[FQDN].mc</code>に、</p>
<div class="codeblock">
<pre>
FEATURE(`smarttable')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
FEATURE(`authinfo', DATABASE_MAP_TYPE MAIL_SETTINGS_DIR`authinfo')dnl

MASQUERADE_AS(`_domain_name')dnl
FEATURE(masquerade_envelope)dnl
</pre>
</div>
<p>を記述する（GMailの場合、587番ポートは<code>STARTTSL</code>でTSL接続、465番ポートを使用した場合は最初からSSL接続。後段は、<code>From</code>と<code>Return-Path</code>の記述）。</p>
<h5>認証ファイルの作成</h5>
<p>次にSMTP AUTHを行うための設定。<code>/etc/mail/authinfo</code>を作成し、</p>
<div class="codeblock">
<pre>
AuthInfo:user1.smtp-gmail "U:<span><em>Acount1@example.com</em></span>" "P:<span><em>Password1</em></span>" "M:LOGIN PLAIN"
AuthInfo:user2.smtp-gmail "U:<span><em>Acount2@example.com</em></span>" "P:<span><em>Password2</em></span>" "M:LOGIN PLAIN"
</pre>
</div>
<p>等と各SMTPサーバ<sup class="fn">*3</sup>に対応するユーザ名とパスワード等を記述<sup class="fn">*4</sup>した後、</p>
<div class="codeblock">
<pre>
# cd /etc/mail
# makemap hash authinfo.db &lt; authinfo
# chmod 640 authinfo*
# chgrp smmsp authinfo.db
</pre>
</div>
<p>を実行して、ハッシュのデータベースを作成し、パーミッション等を適切なものに変える。</p>
<ul class="footnotes">
<li><span class="footnote">*3</span> 同一の送信先に、複数のアカウントを割り当てて認証データベースを作成できないので、ここではアカウントごとに架空の送信サーバを指定して、ローカルのDNSで名前解決させることにしています。</li>
<li><span class="footnote">*4</span> <a href="http://www.sendmail.org/m4/smtp_auth.html">Sendmail cf/README - SMTP AUTH</a>参照。</li>
</ul>
<h5>ユーザごとの送信先</h5>
<p><code>/etc/mail/smarttable</code>を作成し、</p>
<div class="codeblock">
<pre>
localuser1@host.local.domain    user1.smtp-gmail
localuser2@host.local.domain    user2.smtp-gmail
</pre>
</div>
<p>等と記述し、ローカルのユーザと送信先を対応させて、</p>
<div class="codeblock">
<pre>
# makemap hash /etc/mail/smarttable.db &lt; /etc/mail/smarttable
</pre>
</div>
<p>とデータベースファイルを作成。</p>
<h5>DNSの設定</h5>
<p>ローカルのDNSのzoneファイルには、</p>
<div class="codeblock">
<pre>
*.smtp-gmail    IN      CNAME   smtp.gmail.com.
</pre>
</div>
<p>を追加して、名前解決できるようにし、namedを再起動。</p>
<h5>設定の終了、sendmailの再起動</h5>
<p>ローカル宛てのメールは、上記の設定を反映させる必要もないので、<code>[FQDN].submit.mc</code>に、</p>
<div class="codeblock diff">
<pre>
dnl If you use IPv6 only, change [127.0.0.1] to [IPv6:::1]
<span class="add">DAEMON_OPTIONS(`Name=NoMTA, Addr=127.0.0.1, M=EA')dnl</span>
FEATURE(`msp', `[127.0.0.1]')dnl
</pre>
</div>
<p>を追加。</p>
<div class="codeblock">
<pre>
# make install restart
</pre>
</div>
<p>で、<code>/etc/mail/sendmail*.cf</code>を構築して、<code>sendmail</code>を再起動。</p>
<h4>備考</h4>
<p>以上の設定で、目的は果たせたようです。</p>
<p>なお、上記の設定は、ほとんど、</p>
<ul>
<li><a href="http://groups.google.co.jp/group/de.comm.provider.t-online/browse_thread/thread/bfe8428af5576ed0/"> per-user rewrite+route / route non-t-online from-addr via t-online?</a></li>
</ul>
<p>を参考にしたものです。</p><div class="item_footer"><p><small><a href="http://www.xdelta.net/blog/FreeBSD/2008/02/16/p266">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.xdelta.net/blog/FreeBSD/2008/02/16/p266#comments</comments>
			<wfw:commentRss>http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2&#38;disp=comments&#38;p=266</wfw:commentRss>
		</item>
				<item>
			<title>更新履歴 2008/02/14</title>
			<link>http://www.xdelta.net/blog/FreeBSD/2008/02/14/p267</link>
			<pubDate>Thu, 14 Feb 2008 13:17:58 +0000</pubDate>			<dc:creator>masken</dc:creator>
			<category domain="main">base</category>			<guid isPermaLink="false">267@http://www.xdelta.net/blog/</guid>
						<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://security.freebsd.org/advisories/FreeBSD-SA-08:03.sendfile.asc&quot; title=&quot;sendfile(2) write-only file permission bypass&quot;&gt;FreeBSD-SA-08:03.sendfile&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;の更新が来ていたので、ソースを同期して、カーネルを更新＆再起動。&lt;/p&gt;
&lt;p&gt;結果、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
# uname -r
6.3-RELEASE-p1
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;に。&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2008/02/14/p267&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://security.freebsd.org/advisories/FreeBSD-SA-08:03.sendfile.asc" title="sendfile(2) write-only file permission bypass">FreeBSD-SA-08:03.sendfile</a></li>
</ul>
<p>の更新が来ていたので、ソースを同期して、カーネルを更新＆再起動。</p>
<p>結果、</p>
<div class="codeblock">
<pre>
# uname -r
6.3-RELEASE-p1
</pre>
</div>
<p>に。</p><div class="item_footer"><p><small><a href="http://www.xdelta.net/blog/FreeBSD/2008/02/14/p267">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.xdelta.net/blog/FreeBSD/2008/02/14/p267#comments</comments>
			<wfw:commentRss>http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2&#38;disp=comments&#38;p=267</wfw:commentRss>
		</item>
				<item>
			<title>onclick メモ</title>
			<link>http://www.xdelta.net/blog/FreeBSD/2008/02/11/p265</link>
			<pubDate>Sun, 10 Feb 2008 16:56:39 +0000</pubDate>			<dc:creator>masken</dc:creator>
			<category domain="main">www</category>			<guid isPermaLink="false">265@http://www.xdelta.net/blog/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://openlab.ring.gr.jp/k16/htmllint/&quot;&gt;Another HTML Lint&lt;/a&gt;で、HTMLの文法をチェックすると、&lt;code&gt;onclick&lt;/code&gt;属性を指定した場合、同時に&lt;code&gt;onkeypress&lt;/code&gt;属性を指定していないと、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;onclick 属性を使うときは onkeypress 属性も指定しましょう。 → 解説 150&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;と怒られる。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://openlab.ring.gr.jp/k16/htmllint/explain.html#event-pair&quot;&gt;この解説&lt;/a&gt;には、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;スクリプトのイベント処理では、装置非依存性を確保するために、次の属性は対で使用するように、アクセス指針技術文書4.12.2(J)で薦められています。&lt;/p&gt;
&lt;dl&gt;&lt;dd&gt;
&lt;table summary=&quot;HTTP Status Codes&quot; border=&quot;0&quot; class=&quot;frame&quot;&gt;
&lt;tr&gt;&lt;td&gt;onmousedown&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;8&quot;&gt;+&lt;/td&gt;&lt;td&gt;onkeydown&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;onmouseup&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;8&quot;&gt;+&lt;/td&gt;&lt;td&gt;onkeyup&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;onclick&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;8&quot;&gt;+&lt;/td&gt;&lt;td&gt;onkeypress&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;/dd&gt;&lt;/dl&gt;
&lt;/blockquote&gt;
&lt;p&gt;とあり、&lt;a href=&quot;http://www.w3.org/TR/WCAG10-HTML-TECHS/#directly-accessible-scripts&quot;&gt;根拠の文書&lt;/a&gt;にも、&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li value=&quot;2&quot;&gt;Otherwise, if you must use device-dependent attributes, provide redundant
input mechanisms (i.e., specify two handlers for the same element): 
&lt;ul&gt;
&lt;li&gt;Use &quot;onmousedown&quot; with &quot;onkeydown&quot;.&lt;/li&gt;
&lt;li&gt;Use &quot;onmouseup&quot; with &quot;onkeyup&quot;&lt;/li&gt;
&lt;li&gt;Use &quot;onclick&quot; with &quot;onkeypress&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that there is no keyboard equivalent to double-clicking (&quot;ondblclick&quot;)
in HTML 4.01.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;そう書いてある。&lt;/p&gt;
&lt;p&gt;だから、今まで&lt;code&gt;onclick&lt;/code&gt;属性を指定した時、無批判に、&lt;em&gt;なるべく&lt;/em&gt;、&lt;code&gt;onkeypress&lt;/code&gt;属性も指定することにしていた（基本的に、PCしか閲覧環境を想定していないけど。しかし、そうすると、TABを押してフォーカスを移そうとした場合でも、&lt;code&gt;KeyPress&lt;/code&gt;イベントが発生してしまい、特定のキーコードが押された場合には無視するようにフィルタをかける必要がある）。&lt;/p&gt;
&lt;p&gt;しかし、先日、&lt;cite&gt;&lt;a href=&quot;http://www.oreilly.co.jp/books/9784873113296/&quot;&gt;JavaScript 第5版&lt;/a&gt;&lt;/cite&gt;を読んでいると、p.408頁に、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「mouse」や「key」という言葉が含まれるイベントは、名前からわかるように、デバイス依存イベントです。これらのイベントを使う場合は、マウスでもキーボードでも操作できるように、両方のイベントハンドラを使用するようにしてください。onclickイベントはデバイス独立イベントと考えられることに注意してください。フォームコントロールやハイパーリンクをキーボードで操作した場合でも、このイベントが発生します。したがって、マウスに依存したイベントではありません。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;と書いてあった。&lt;/p&gt;
&lt;p&gt;試しに、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt;
&amp;lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;ja-JP&quot; lang=&quot;ja-JP&quot;&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;click events test&amp;lt;/title&amp;gt;
&amp;lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&amp;gt;
&amp;lt;meta http-equiv=&quot;content-script-type&quot; content=&quot;text/javascript&quot; /&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body id=&quot;top&quot;&amp;gt;
&amp;lt;form action=&quot;#top&quot;&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;input tabindex=&quot;1&quot; type=&quot;submit&quot; onclick=&quot;alert('form clicked'); return false;&quot; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;a tabindex=&quot;2&quot; href=&quot;#top&quot; onclick=&quot;alert('link clicked'); return false;&quot;&amp;gt;link&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;という&lt;a href=&quot;http://www.xdelta.net/examples/onclick.html&quot;&gt;サンプル&lt;/a&gt;を書いて&lt;sup class=&quot;fn&quot;&gt;*1&lt;/sup&gt;、手元の環境で実験してみたら、&lt;/p&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;5&quot; summary=&quot;formアイテムおよびlinkアイテムのonclickイベント発生の状態&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th rowspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/th&gt;&lt;th colspan=&quot;2&quot; align=&quot;center&quot;&gt;Form item&lt;/th&gt;&lt;th colspan=&quot;2&quot; align=&quot;center&quot;&gt;Link item&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;&lt;kbd&gt;Enter&lt;/kbd&gt;&lt;/th&gt;&lt;th&gt;&lt;kbd&gt;Space&lt;/kbd&gt;&lt;/th&gt;&lt;th&gt;&lt;kbd&gt;Enter&lt;/kbd&gt;&lt;/th&gt;&lt;th&gt;&lt;kbd&gt;Space&lt;/kbd&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tfoot&gt;
&lt;tr&gt;&lt;td colspan=&quot;5&quot; align=&quot;center&quot;&gt;○はイベント発生、×は発生しない&lt;/td&gt;&lt;/tr&gt;
&lt;/tfoot&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;Firefox 2.0.0.12&lt;/th&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;×&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;Opera 9.25&lt;/th&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;×&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;Konqueror 3.5.8&lt;/th&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;×&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;IE6&lt;/th&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;○&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;×&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;という結果に。&lt;/p&gt;
&lt;p&gt;確かに、Enterキーを押した場合では、フォームコントロールでもリンクでも、クリックイベントが発生している。&lt;/p&gt;
&lt;p&gt;（もちろん、上記サンプルは、Another HTML Lintでは減点されるんだけど）&lt;/p&gt;
&lt;ul class=&quot;footnotes&quot;&gt;
&lt;li&gt;&lt;span class=&quot;footnote&quot;&gt;*1&lt;/span&gt; &lt;code&gt;tabindex&lt;/code&gt;属性をつけているのは、Operaだと、なぜかそうしないと、TABキーを押した時、リンク部分にフォーカスが移らなかったため。&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2008/02/11/p265&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://openlab.ring.gr.jp/k16/htmllint/">Another HTML Lint</a>で、HTMLの文法をチェックすると、<code>onclick</code>属性を指定した場合、同時に<code>onkeypress</code>属性を指定していないと、</p>
<blockquote>
<p>onclick 属性を使うときは onkeypress 属性も指定しましょう。 → 解説 150</p>
</blockquote>
<p>と怒られる。</p>
<p><a href="http://openlab.ring.gr.jp/k16/htmllint/explain.html#event-pair">この解説</a>には、</p>
<blockquote>
<p>スクリプトのイベント処理では、装置非依存性を確保するために、次の属性は対で使用するように、アクセス指針技術文書4.12.2(J)で薦められています。</p>
<dl><dd>
<table summary="HTTP Status Codes" border="0" class="frame">
<tr><td>onmousedown</td><td align="center" width="8">+</td><td>onkeydown</td></tr>
<tr><td>onmouseup</td><td align="center" width="8">+</td><td>onkeyup</td></tr>
<tr><td>onclick</td><td align="center" width="8">+</td><td>onkeypress</td></tr>
</table></dd></dl>
</blockquote>
<p>とあり、<a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#directly-accessible-scripts">根拠の文書</a>にも、</p>
<blockquote>
<ol>
<li value="2">Otherwise, if you must use device-dependent attributes, provide redundant
input mechanisms (i.e., specify two handlers for the same element): 
<ul>
<li>Use "onmousedown" with "onkeydown".</li>
<li>Use "onmouseup" with "onkeyup"</li>
<li>Use "onclick" with "onkeypress"</li>
</ul>
<p>Note that there is no keyboard equivalent to double-clicking ("ondblclick")
in HTML 4.01.</p>
</li>
</ol>
</blockquote>
<p>そう書いてある。</p>
<p>だから、今まで<code>onclick</code>属性を指定した時、無批判に、<em>なるべく</em>、<code>onkeypress</code>属性も指定することにしていた（基本的に、PCしか閲覧環境を想定していないけど。しかし、そうすると、TABを押してフォーカスを移そうとした場合でも、<code>KeyPress</code>イベントが発生してしまい、特定のキーコードが押された場合には無視するようにフィルタをかける必要がある）。</p>
<p>しかし、先日、<cite><a href="http://www.oreilly.co.jp/books/9784873113296/">JavaScript 第5版</a></cite>を読んでいると、p.408頁に、</p>
<blockquote>
<p>「mouse」や「key」という言葉が含まれるイベントは、名前からわかるように、デバイス依存イベントです。これらのイベントを使う場合は、マウスでもキーボードでも操作できるように、両方のイベントハンドラを使用するようにしてください。onclickイベントはデバイス独立イベントと考えられることに注意してください。フォームコントロールやハイパーリンクをキーボードで操作した場合でも、このイベントが発生します。したがって、マウスに依存したイベントではありません。</p>
</blockquote>
<p>と書いてあった。</p>
<p>試しに、</p>
<div class="codeblock">
<pre>
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja-JP" lang="ja-JP"&gt;
&lt;head&gt;
&lt;title&gt;click events test&lt;/title&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=utf-8" /&gt;
&lt;meta http-equiv="content-script-type" content="text/javascript" /&gt;
&lt;/head&gt;
&lt;body id="top"&gt;
&lt;form action="#top"&gt;
&lt;p&gt;&lt;input tabindex="1" type="submit" onclick="alert('form clicked'); return false;" /&gt;&lt;/p&gt;
&lt;/form&gt;
&lt;p&gt;&lt;a tabindex="2" href="#top" onclick="alert('link clicked'); return false;"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
</div>
<p>という<a href="http://www.xdelta.net/examples/onclick.html">サンプル</a>を書いて<sup class="fn">*1</sup>、手元の環境で実験してみたら、</p>
<table border="1" cellpadding="5" summary="formアイテムおよびlinkアイテムのonclickイベント発生の状態">
<thead>
<tr><th rowspan="2">&nbsp;</th><th colspan="2" align="center">Form item</th><th colspan="2" align="center">Link item</th></tr>
<tr><th><kbd>Enter</kbd></th><th><kbd>Space</kbd></th><th><kbd>Enter</kbd></th><th><kbd>Space</kbd></th></tr>
</thead>
<tfoot>
<tr><td colspan="5" align="center">○はイベント発生、×は発生しない</td></tr>
</tfoot>
<tbody>
<tr><th>Firefox 2.0.0.12</th><td align="center">○</td><td align="center">○</td><td align="center">○</td><td align="center">×</td></tr>
<tr><th>Opera 9.25</th><td align="center">○</td><td align="center">○</td><td align="center">○</td><td align="center">×</td></tr>
<tr><th>Konqueror 3.5.8</th><td align="center">○</td><td align="center">○</td><td align="center">○</td><td align="center">×</td></tr>
<tr><th>IE6</th><td align="center">○</td><td align="center">○</td><td align="center">○</td><td align="center">×</td></tr>
</tbody>
</table>
<p>という結果に。</p>
<p>確かに、Enterキーを押した場合では、フォームコントロールでもリンクでも、クリックイベントが発生している。</p>
<p>（もちろん、上記サンプルは、Another HTML Lintでは減点されるんだけど）</p>
<ul class="footnotes">
<li><span class="footnote">*1</span> <code>tabindex</code>属性をつけているのは、Operaだと、なぜかそうしないと、TABキーを押した時、リンク部分にフォーカスが移らなかったため。</li>
</ul><div class="item_footer"><p><small><a href="http://www.xdelta.net/blog/FreeBSD/2008/02/11/p265">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.xdelta.net/blog/FreeBSD/2008/02/11/p265#comments</comments>
			<wfw:commentRss>http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2&#38;disp=comments&#38;p=265</wfw:commentRss>
		</item>
				<item>
			<title>IEs4Linuxを使ってみた</title>
			<link>http://www.xdelta.net/blog/FreeBSD/2008/01/31/p264</link>
			<pubDate>Thu, 31 Jan 2008 08:00:24 +0000</pubDate>			<dc:creator>masken</dc:creator>
			<category domain="main">デスクトップ環境</category>			<guid isPermaLink="false">264@http://www.xdelta.net/blog/</guid>
						<description>&lt;p&gt;最近よく耳にする、最小の構成のIE6（もしくは、5.5 or 5）のインストールを自動化するスクリプト&lt;a href=&quot;http://www.tatanka.com.br/ies4linux/page/Main_Page&quot;&gt;IEs4Linux&lt;/a&gt;を使って、FreeBSD上の&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/emulators/wine/&quot;&gt;wine&lt;/a&gt;でIE6を動かしてみました。&lt;/p&gt;
&lt;p&gt;使用したwineのバージョンは、portsから導入した&lt;code&gt;wine-0.9.54,1&lt;/code&gt;です（この他、IEのインストールの際、&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/archives/cabextract/&quot;&gt;archives/cabextract&lt;/a&gt;が必要になるので事前に導入）。&lt;/p&gt;
&lt;p&gt;まずは、IEs4Linuxのダウンロードと展開。&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
&amp;gt; wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
&amp;gt; tar zxf ./ies4linux-latest.tar.gz
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;便宜上、Linuxエミュレータのbashから、スクリプトを起動して、IEをインストール。&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
&amp;gt; env LANG=C /compat/linux/bin/bash
&amp;gt; cd ./ies4linux-2.99.0/
&amp;gt; ./ies4linux --no-gui --no-color
&amp;gt; exit
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;上記では、IE6とFlash9がインストールされます。&lt;/p&gt;
&lt;p&gt;以降は、&lt;code&gt;${HOME}/bin/&lt;/code&gt;にIEの起動スクリプトがインストールされるので、それを使って、通常のシェルから、IEを起動できます。&lt;/p&gt;
&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2008/01/31/p264#more264&quot;&gt;Read more &amp;raquo;&lt;/a&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2008/01/31/p264&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>最近よく耳にする、最小の構成のIE6（もしくは、5.5 or 5）のインストールを自動化するスクリプト<a href="http://www.tatanka.com.br/ies4linux/page/Main_Page">IEs4Linux</a>を使って、FreeBSD上の<a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/emulators/wine/">wine</a>でIE6を動かしてみました。</p>
<p>使用したwineのバージョンは、portsから導入した<code>wine-0.9.54,1</code>です（この他、IEのインストールの際、<a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/archives/cabextract/">archives/cabextract</a>が必要になるので事前に導入）。</p>
<p>まずは、IEs4Linuxのダウンロードと展開。</p>
<div class="codeblock">
<pre>
&gt; wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
&gt; tar zxf ./ies4linux-latest.tar.gz
</pre>
</div>
<p>便宜上、Linuxエミュレータのbashから、スクリプトを起動して、IEをインストール。</p>
<div class="codeblock">
<pre>
&gt; env LANG=C /compat/linux/bin/bash
&gt; cd ./ies4linux-2.99.0/
&gt; ./ies4linux --no-gui --no-color
&gt; exit
</pre>
</div>
<p>上記では、IE6とFlash9がインストールされます。</p>
<p>以降は、<code>${HOME}/bin/</code>にIEの起動スクリプトがインストールされるので、それを使って、通常のシェルから、IEを起動できます。</p>
<a href="http://www.xdelta.net/blog/FreeBSD/2008/01/31/p264#more264">Read more &raquo;</a><div class="item_footer"><p><small><a href="http://www.xdelta.net/blog/FreeBSD/2008/01/31/p264">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.xdelta.net/blog/FreeBSD/2008/01/31/p264#comments</comments>
			<wfw:commentRss>http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2&#38;disp=comments&#38;p=264</wfw:commentRss>
		</item>
				<item>
			<title>portupgrade-devel - PortDirError</title>
			<link>http://www.xdelta.net/blog/FreeBSD/2008/01/30/p263</link>
			<pubDate>Tue, 29 Jan 2008 16:26:54 +0000</pubDate>			<dc:creator>masken</dc:creator>
			<category domain="main">ports</category>			<guid isPermaLink="false">263@http://www.xdelta.net/blog/</guid>
						<description>&lt;p&gt;先日、&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/ports-mgmt/portupgrade-devel/&quot;&gt;ports-mgmt/portupgrade-devel&lt;/a&gt;が&lt;code&gt;2.3.1&lt;/code&gt;から&lt;code&gt;2.4.0&lt;/code&gt;のバージョンに更新されていた。&lt;/p&gt;
&lt;p&gt;しかし、前バージョン&lt;code&gt;portupgrade&lt;/code&gt;を使って、新しいものに更新しようとしても何故か失敗する。&lt;/p&gt;
&lt;p&gt;結局、&lt;code&gt;pkg_delete&lt;/code&gt;で古いものを一旦削除し、&lt;code&gt;make install&lt;/code&gt;で新しい&lt;code&gt;portupgrade&lt;/code&gt;をインストールし直すという方法を取った。&lt;/p&gt;
&lt;p&gt;ところが、新しく導入した&lt;code&gt;portupgrade&lt;/code&gt;を使って、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;portupgrade -aRr&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;と他のportsを更新しようとしても、最初の&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
[Gathering depends for &lt;samp&gt;portdir/portname&lt;/samp&gt; ....done]
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;の後、失敗する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/usr/ports/INDEX-*.db&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/var/db/pkg/pkgdb.db&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;のデータベースファイルを作り直してみても、症状は同じ。&lt;/p&gt;
&lt;p&gt;ログをよく見てみると、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
** Port directory not found: databases/grass-i18n
/usr/local/sbin/portupgrade:1349:in `get_pkgname': port directory error (PortDirError)
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;という風にエラーが開始している。&lt;/p&gt;
&lt;p&gt;確かだいぶ前に&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/japanese/ipa-ttfonts/&quot;&gt;japanese/ipa-ttfonts&lt;/a&gt;のTrueTypeフォントを入れた時、依存関係から、&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/databases/grass-i18n/&quot;&gt;databases/grass-i18n&lt;/a&gt;も一緒に入って来た。&lt;/p&gt;
&lt;p&gt;調べてみると、&lt;code&gt;ipa-ttfonts&lt;/code&gt;は、現在もう、&lt;code&gt;grass-i18n&lt;/code&gt;には依存してないようなので、&lt;code&gt;grass-i18n&lt;/code&gt;の方をアンインストール（&lt;code&gt;grass-i18n&lt;/code&gt;は、&lt;a href=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/databases/grass/&quot;&gt;databases/grass&lt;/a&gt;にマージされて現在、portsディレクトリには存在していない）&lt;/p&gt;
&lt;p&gt;今度は、新しい&lt;code&gt;portupgrade&lt;/code&gt;でも、他のportsを更新できるようになりました。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;ins datetime=&quot;2008-01-30T03:00:00+09:00&quot; cite=&quot;http://www.freebsd.org/cgi/cvsweb.cgi/ports/ports-mgmt/portupgrade-devel/Makefile#rev1.254&quot;&gt;[追記]&lt;/ins&gt; これを書き終わった頃に、&lt;code&gt;portupgrade-devel&lt;/code&gt;が&lt;code&gt;2.4.1&lt;/code&gt;のバージョンに更新されていました。&lt;q&gt;A bugs fix release&lt;/q&gt;だそうです。&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2008/01/30/p263&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>先日、<a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/ports-mgmt/portupgrade-devel/">ports-mgmt/portupgrade-devel</a>が<code>2.3.1</code>から<code>2.4.0</code>のバージョンに更新されていた。</p>
<p>しかし、前バージョン<code>portupgrade</code>を使って、新しいものに更新しようとしても何故か失敗する。</p>
<p>結局、<code>pkg_delete</code>で古いものを一旦削除し、<code>make install</code>で新しい<code>portupgrade</code>をインストールし直すという方法を取った。</p>
<p>ところが、新しく導入した<code>portupgrade</code>を使って、</p>
<div class="codeblock">
<pre>portupgrade -aRr</pre>
</div>
<p>と他のportsを更新しようとしても、最初の</p>
<div class="codeblock">
<pre>
[Gathering depends for <samp>portdir/portname</samp> ....done]
</pre>
</div>
<p>の後、失敗する。</p>
<ul>
<li><code>/usr/ports/INDEX-*.db</code></li>
<li><code>/var/db/pkg/pkgdb.db</code></li>
</ul>
<p>のデータベースファイルを作り直してみても、症状は同じ。</p>
<p>ログをよく見てみると、</p>
<div class="codeblock">
<pre>
** Port directory not found: databases/grass-i18n
/usr/local/sbin/portupgrade:1349:in `get_pkgname': port directory error (PortDirError)
</pre>
</div>
<p>という風にエラーが開始している。</p>
<p>確かだいぶ前に<a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/japanese/ipa-ttfonts/">japanese/ipa-ttfonts</a>のTrueTypeフォントを入れた時、依存関係から、<a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/databases/grass-i18n/">databases/grass-i18n</a>も一緒に入って来た。</p>
<p>調べてみると、<code>ipa-ttfonts</code>は、現在もう、<code>grass-i18n</code>には依存してないようなので、<code>grass-i18n</code>の方をアンインストール（<code>grass-i18n</code>は、<a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/databases/grass/">databases/grass</a>にマージされて現在、portsディレクトリには存在していない）</p>
<p>今度は、新しい<code>portupgrade</code>でも、他のportsを更新できるようになりました。</p>
<hr />
<p><ins datetime="2008-01-30T03:00:00+09:00" cite="http://www.freebsd.org/cgi/cvsweb.cgi/ports/ports-mgmt/portupgrade-devel/Makefile#rev1.254">[追記]</ins> これを書き終わった頃に、<code>portupgrade-devel</code>が<code>2.4.1</code>のバージョンに更新されていました。<q>A bugs fix release</q>だそうです。</p><div class="item_footer"><p><small><a href="http://www.xdelta.net/blog/FreeBSD/2008/01/30/p263">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.xdelta.net/blog/FreeBSD/2008/01/30/p263#comments</comments>
			<wfw:commentRss>http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2&#38;disp=comments&#38;p=263</wfw:commentRss>
		</item>
				<item>
			<title>FreeBSD 6.3-RELEASEに更新</title>
			<link>http://www.xdelta.net/blog/FreeBSD/2008/01/18/p262</link>
			<pubDate>Thu, 17 Jan 2008 21:10:20 +0000</pubDate>			<dc:creator>masken</dc:creator>
			<category domain="main">base</category>			<guid isPermaLink="false">262@http://www.xdelta.net/blog/</guid>
						<description>&lt;p&gt;FreeBSD 6.3-RELEASEが出てきたようなので、今まで使っていたFreeBSD 6.2Rから更新してみました。&lt;/p&gt;
&lt;p&gt;行った手順は、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2007/01/13/p246&quot;&gt;FreeBSD 6.2-RELEASEにアップグレード&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;の時とほぼ同じ。&lt;/p&gt;
&lt;p&gt;こちらの環境では、特に問題もなく、移行できたようです。&lt;/p&gt;
&lt;p&gt;終了後、&lt;code&gt;make check-old&lt;/code&gt;を実行してみたら、&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;
&lt;pre&gt;
&amp;gt;&amp;gt;&amp;gt; Checking for old files
/usr/share/info/bzip2.info.gz
/etc/namedb/PROTO.localhost-v6.rev
/etc/namedb/PROTO.localhost.rev
/etc/namedb/make-localhost
/usr/share/examples/netgraph/bluetooth/rc.bluetooth
/usr/share/man/man4/kame.4.gz
/usr/share/man/man3/archive_write_prepare.3.gz
&amp;gt;&amp;gt;&amp;gt; Checking for old libraries
&amp;gt;&amp;gt;&amp;gt; Checking for old directories
To remove old files and directories run 'make delete-old'.
To remove old libraries run 'make delete-old-libs'.
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;と表示されたので、不要ファイルを削除。&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.xdelta.net/blog/FreeBSD/2008/01/18/p262&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>FreeBSD 6.3-RELEASEが出てきたようなので、今まで使っていたFreeBSD 6.2Rから更新してみました。</p>
<p>行った手順は、</p>
<ul>
<li><a href="http://www.xdelta.net/blog/FreeBSD/2007/01/13/p246">FreeBSD 6.2-RELEASEにアップグレード</a></li>
</ul>
<p>の時とほぼ同じ。</p>
<p>こちらの環境では、特に問題もなく、移行できたようです。</p>
<p>終了後、<code>make check-old</code>を実行してみたら、</p>
<div class="codeblock">
<pre>
&gt;&gt;&gt; Checking for old files
/usr/share/info/bzip2.info.gz
/etc/namedb/PROTO.localhost-v6.rev
/etc/namedb/PROTO.localhost.rev
/etc/namedb/make-localhost
/usr/share/examples/netgraph/bluetooth/rc.bluetooth
/usr/share/man/man4/kame.4.gz
/usr/share/man/man3/archive_write_prepare.3.gz
&gt;&gt;&gt; Checking for old libraries
&gt;&gt;&gt; Checking for old directories
To remove old files and directories run 'make delete-old'.
To remove old libraries run 'make delete-old-libs'.
</pre>
</div>
<p>と表示されたので、不要ファイルを削除。</p><div class="item_footer"><p><small><a href="http://www.xdelta.net/blog/FreeBSD/2008/01/18/p262">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.xdelta.net/blog/FreeBSD/2008/01/18/p262#comments</comments>
			<wfw:commentRss>http://www.xdelta.net/blog/FreeBSD?tempskin=_rss2&#38;disp=comments&#38;p=262</wfw:commentRss>
		</item>
			</channel>
</rss>
