Apache2設定
useridirとDigest認証を使ってみようと思いました。apache2.confをあまり触らず、site-enable以下のサイト設定をいじるのがどうも良い雰囲気なのでそうすることにしました。
$ sudo cp /etc/apache2/site-available/default /etc/apache2/site-available/test $ sudo a2dissite default $ sudo a2ensite test
デフォルトの設定ファイルをtestという名前でコピーして、defaultファイルを起動しないようにして、testファイルを起動するように設定。
$ sudo a2enmod userdir
これでuserdir.loadとuserdir.confがmods-availableからmods-enableにシンボリックリンクされます。userdir.confの設定を変えないままだと、ホームディレクトリの下のpublic_html以下を使用できるようになります。
$ sudo a2enmod auth_digest $ sudo htdigest -c /etc/apache2/.digestpass "secret" username $ sudo htdigest /etc/apache2/.digestpass "secret" username2
auth_digestモジュールをリンク後、ダイジェスト認証用のパスワードファイルを作成。ここの"secret"というのはrealmと呼ばれるもので、とりあえずは後に設定するAuthNameと合わせる必要があります。
$ sudo vi /etc/apache2/.group GroupName: username username2
グループファイルを作成し、登録しやすくする
$ sudo vi /etc/apache2/site-available/test AuthType Digest AuthName "secret" AuthUserFile /etc/apache2/.digestpass AuthGroupFile /etc/apache2/.group Require group GroupName BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
以前はAuthUserFileの部分は、AuthDigestFileと書く必要があったそうですが、現在はAuthUserFileで動く模様です。最後のBrowserMatchの部分はIE7より前だとURLによってはうまくDigest認証ができなかったIEのバグを回避するためのものです。
やけくそでipv4化
とりあえず良く使うwgetや、使うかもしれないsylpheedを無理やりipv4で使えと指定してみることにしました。本来はこんな事をするのは間違いだとは思いますが、まあためしにやってみます。
$ wget -4 hoge.tar.gz
でも良いのですが、オプションを編集することにしました。
/etc/wgetrc ~/.wgetrc
のどちらかに以下の一文を追加します。
inet4-only = on
次にsylpheedですが、見た感じ設定でどうにかなるのかが分かりませんでした。仕方ないのでソースをリビルドしてみます。
$ apt-get soruce sylpheed $ cd sylpheed-2.3.0~beta5 $ vi debian/rules
--enable-ipv6=no
と変更
$ debchange -i
リビジョンを変更してリビルド
$ dpkg-buildpackage -rfakeroot -uc -b
なんだかエラーがでて怒られて終了。どうも作成時に使用するファイルが足らないような感じ。というわけでsylpheedの依存ファイルをインストール
$ sudo apt-get build-dep sylpheed
なんだか結構な数のファイルを入れようとしますがOKしてしばらく待つ。
$ dpkg-buildpackage -rfakeroot -uc -b
そして再びリビルドしてみましたら止まらずに最後までいきました。
$ sudo dpkg -i ../sylpheed_2.3.0~beta5-2_i386.deb
そしてインストールしてみたところ、うまくいきました。
ネット使用時に名前解決がとても遅い
以前やったような気がしていたのですが、やってなかったようでDNSに問い合わせに行くたびにものすごい時間がかかっていました。確かipv6で問い合わせてるのが原因の筈なのでそのへんをなんとかすればいけるでしょう。
$ sudo vi /etc/modprobe.d/aliases
上記ファイルの一行を編集
alias net-pf-10 ipv6
このipv6という部分をoffに変更
alias net-pf-10 off
これで再起動かけたらいけるはずなのですが、変わった様子がありません。
$ sudo update-modules
なんてこともしてみたけれど変わらず。ipv4にはなってると思うのですが・・・あらら以前どうやったっけな。
ircd-irc2のリビルド
なんとなくローカルにircdを入れて遊ぼうとしましたが、ircd-ircu ircd-irc2のどちらのパッケージもiAUTHなどで哀しいぐらい接続に時間がかかってどうしようもないので、設定などを見ても正直なところ何とかできそうな雰囲気がありませんでした。
仕方がないのでソースパッケージからリビルドという奴に初めて挑戦してみようと思い立ったのでありました。
まずは準備。パッケージ作成用ツールを入れる。
$ sudo aptitude install build-essential dh-make devscripts fakeroot
いつの日か自作パッケージを作る日のために、ポリシーのチェックを行うlindaを入れる。
$ sudo aptitude install linda
ソースを取得し、変更を行う。
$ apt-get source ircd-irc2 $ cd ircd-irc2-2.11.p1+dfsg $ vi debian/maint/config.h
config.hの以下を変更。IAUTH, IDENTの拒否。split-modeに入らないようにしてみました。
#undef USE_IAUTH #define NO_IDENT #define SPLIT_USERS 0 #define SPLIT_SERVERS 0 #define ACCEPTTIMEOUT 10
とりあえず変更したのでリビジョンを変えてみる
$ debchange -i
するとChangelogが開かれるので適当なことを追加して編集を終了する。そしてパッケージの作成。
$ dpkg-buildpackage -rfakeroot -uc -b
するとソースパッケージを展開した所にdebファイルなどができるのでインストールして終了
$ sudo dpkg -i ircd-irc2_2.11.1p1+dfsg-2_i386.deb
何か問題があるのかもしれませんが、とりあえず動いているようです。
Refeおよびrefe.elのUTF-8化
使えるようになったのですが日本語が文字化けします。どうもEUCで表記されるのが問題のようですので、UTF-8化をはかります。
12c12 < --- > require 'iconv' 22c22 < str --- > Iconv.iconv("UTF-8","EUC-JP",str)
上記のパッチ(searcher.patchとでも名づけますか)をsearcher.rbにあてます
$ cd /var/lib/gems/1.8/gems/refe-0.8.0.3/lib/refe/ $ sudo patch searcher.rb searcher.patch $ sudo vi /usr/share/emacs/site-lisp/refe.el (let ((coding-system-for-read 'utf-8)) 14行目のeuc-japanをutf-8に変更
これでコンソールでもemacsでもrefeが使えるようになりました。
$ refe Date.now DateTime.now --- now([start]) 現在の時刻に相当する日時オブジェクトを生成します。 M-x refe Class or Method (default 0): Date.now DateTime.now --- now([start]) 現在の時刻に相当する日時オブジェクトを生成します。