Debian

2008年10月02日

Debianのlocale設定(UTF-8を表示させる)

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

coLinuxでDebian


先日、OSをクリーンインストールした。
それに伴いcoLinuxの環境構築。

Debianのイメージを改めてダウンロードして環境構築。
どうもUTF-8の表示処理が上手くいかない。

最初はlocaleの設定が何もない事を思い出す。
久し振りの作業なので、すっかり忘れていた。


設定作業


localesインストール
$ sudo apt-get install locales
locale対象リスト作成
$ sudo vi /etc/locale.gen
ja_JP.UTF-8 UTF-8
locale生成
$ sudo /usr/sbin/locale-gen 
環境変数設定
$ export LC_ALL=ja_JP.EUC-JP


半袖 at 12:15|PermalinkComments(0)TrackBack(0)

2008年07月18日

Debian etch でGeoIPを使う

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

IPアドレスから位置情報を取得したい


GeoIP City Geolocationを使うとIPアドレスから位置情報を取得可能。
無料版と有料版があり、無料版は位置情報の精度が低い。
今回は無料版で実験。



環境構築


必要なパッケージをインストール
$ sudo apt-get install libgeoip1 libgeoip-dev
Geo::IPをダウンロードしてdebパッケージ化
※etchでは1.33のbuildに失敗したので1.27を採用。
$ wget http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.27.tar.gz
$ tar zxvf Geo-IP-1.27.tar.gz
$ dh-make-perl --build Geo-IP-1.27
$ sudo dpkg -i libgeo-ip-perl_1.27-1_i386.deb
GeoLiteCity.datをダウンロード
$ wget http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
$ gunzip GeoLiteCity.dat.gz
サンプルプログラム
#!/usr/bin/perl

use strict;
use warnings;
use Geo::IP;

my $name = shift;
my $geo  = Geo::IP->open('./GeoLiteCity.dat', GEOIP_STANDARD);
my $geoip = $geo->record_by_name($name);
exit 1 unless $geoip;

map { print $_ .":\t". $geoip->$_ ."\n" }
    qw/country_code country_name city region postal_code
    latitude longitude dma_code area_code/;

1;
実行例
$ ./geoip-lookup.pl www.google.com
country_code:   US
country_name:   United States
city:   Mountain View
region: CA
postal_code:    94043
latitude:       37.4192
longitude:      -122.0574
dma_code:       807
area_code:      650



位置情報を取得した後、どうする?


Google Maps APIで位置情報を指定して地図を表示する。
これをやりたかった。



Google Maps Hacks 第2版 ―地図検索サービスをもっと活用するテクニック
Rich Gibson Schuyler Erle
オライリー・ジャパン
売り上げランキング: 53996


半袖 at 14:40|PermalinkComments(0)TrackBack(0)

2008年06月23日

[Debian][Xen] Debian(Domain0)にCentOS4(DomainU)を構築 ミラーサイト変更

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

DebianにCentOS4の仮想環境を作ろう


コマンドが異常終了した。
$ sudo xen-create-image --install-method rinse  --dist centos-4 --hostname centos4

早速ログ確認すると、
何てこった…参照先が存在しない。

どこかに設定ファイルがあるはずなので探してみる。
debian$ cd /etc/
debian$ grep http://anorien.csc.warwick.ac.uk/ -r . -l 2>/dev/null
./rinse/rinse.conf
なるほど。



ミラーサイト設定を変更


$ cd /etc/rinse
$ sudo cp -pi rinse.conf rinse.conf.0
$ sudo vi rinse.conf

$ diff rinse.conf.0 rinse.conf
14,15c14,15
< mirror = http://anorien.csc.warwick.ac.uk/mirrors/centOS/4.6/os/i386/CentOS/RPMS/
< mirror.amd64 = http://anorien.csc.warwick.ac.uk/mirrors/CentOS/4.6/os/x86_64/CentOS/RPMS/
---
> mirror = http://ftp.riken.jp/Linux/centos/4.6/os/i386/CentOS/RPMS/
> mirror.amd64 = http://ftp.riken.jp/Linux/centos/4.6/os/x86_64/CentOS/RPMS/
19,20c19,20
< mirror = http://anorien.csc.warwick.ac.uk/mirrors/centos/5/os/i386/CentOS/
< mirror.amd64 = http://anorien.csc.warwick.ac.uk/mirrors/centos/5/os/x86_64/CentOS/
---
> mirror = http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/
> mirror.amd64 = http://ftp.riken.jp/Linux/centos/5/os/x86_64/CentOS/
これで上手く行った。



まとめ


環境
  • Domain0がDebian
  • DomainUをCentOSとする場合
  • つまり、install-methodをrinseとする場合

解決方法
  1. /var/log/xen-tools/を確認
  2. ミラー先に問題がある場合は/etc/rinse/rinse.confを変更
  3. 再度xen-create-imageを実行して確認


半袖 at 21:00|PermalinkComments(0)TrackBack(0)

2008年06月02日

Ubuntu8.04で仮想環境を作るにはVirtualBox

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Xenだと上手く行かなかった


Ubuntu World ~毎日使いたくなるデスクトップLinux(DVD付ムック) (IDGムックシリーズ)
小林 準 あわしろ いくや 青木 理音 大津 真 山市 良 中橋 一朗 LinuxWorld編集部
アイ・ディ・ジー・ジャパン
売り上げランキング: 1850

メンバーの1人が見せてくれた。
軽く流し読み。デスクトップ環境の使い方が書かれた一冊。

仮想環境を構築するにはVirtualBox推奨との事。
PCとの相性の問題かも知れないけど、Xenだと上手く動いてる気配が無かった。
VirtualBoxを試してみよう。


半袖 at 15:30|PermalinkComments(0)TrackBack(0)

2008年05月28日

Ubuntu8.04 on USB Memoryでapt-getすると正常に起動しなくなる

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

結果: レスキュー用に特化すべし


何度か試してみたけど、
USBメモリにインストールしたUbuntuでapt-getすると起動しなくなる。

Ubuntu8.04ではUSBメモリで環境構築するのは、まだ不安定の様だ。
アップデートを推奨しないと書かれているし、諦めよう…。

現段階ではレスキュー用に特化した使い方が良いのだろう。

CDよりは持ち運びが楽と言う利点がある。
万が一の時の為、カバンに忍ばせておく。



情熱は冷めない


USBメモリの中に閉じ込めたオレオレUbuntu環境を実現したい。
次のメジャーバージョンで改善される事を期待する。


半袖 at 11:30|PermalinkComments(1)TrackBack(0)

2008年05月22日

「Ubuntu on USBメモリ」+「一般的USBメモリ」

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

環境構築まとめ


UbuntuをUSBブートさせたいけど、
データ置き場としても使いたい。




パーティション情報


1番目にデータ領域を作る。
容量8Gの場合の参考例。

sdb15120MW95 FAT32 (LBA)
sdb2700M Linux (Ubuntuシステム)
sdb3残り Linux (Ubuntuデータ)



作業内容


Desktop CDでブートする。

$ sudo fdisk /dev/sdb

$ gedit sys_init.sh
$ gedit install_usb.sh

$ sudo ./sys_init.sh
$ sudo ./install_usb.sh /dev/sdb 2 3
$ sudo /sbin/mkfs.vfat /dev/sdb1
※sys_init.shとinstall_usb.shの内容は、
Ubuntu 8.04 on USB Memory : インストールと「ブートCD」から持って来る。

sdb1にsys_init.shとinstall_usb.shをコピーして置くと後々便利。
後は、USBからブート出来る事を確認して終わり。



半袖 at 21:45|PermalinkComments(0)TrackBack(0)

2008年05月21日

WindowsとcoLinux間のファイル受け渡し

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

WindowsとcoLinux間のファイルやり取りが多い


作業の都合で
coLinux上のファイルをWindowsへの移動が何度も行われている。

WinSCPでファイル操作してみたけど、どうも効率が悪い。
そこで考えた解決の1つがSambaの利用。



環境整理


Debianlenny/sid
colinuxIPアドレス192.168.0.10
作業アカウントcolinux
ホームディレクトリ/home/user/colinux/


$ sudo apt-get install samba

$ sudo vi /etc/samba/smb.conf
[global]
>   security = share

> [colinux]
>   comment   = colinux home
>   path      = /home/user/colinux
>   read only = no
>   guest ok  = yes

$ sudo /etc/init.d/samba restart
あとはエクスプローラーで「\\192.168.0.10\」へアクセス。
フォルダ名「colinux」が現れていれば成功。

作業効率が上がった。


半袖 at 13:45|PermalinkComments(1)TrackBack(0)

2008年05月20日

USBメモリにUbuntu8.04をインストールしてみた

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

目的は気軽に開発環境構築



Ubuntuインストール目的でUSBメモリを買って来た。

Ubuntu 8.04 on USB Memory : インストールと「ブートCD」に書かれている通りに作業。

  1. まずはDesktop CDでブート
  2. USBメモリをマシンに指してデバイス名を確認
  3. fdiskでパーティションを2つ切る
USBメモリのデバイスファイル名が/dev/sdbであるものとする。
$ sudo fdisk /dev/sdb
適当なサイズでパーティションを2つ切る

$ gedit sys_init.sh
$ sh ./sys_init.sh

$ gedit install_usb.sh
$ sudo sh ./install_usb.sh /dev/sdb 1 2
終わったら
  1. 作成したUSBメモリを指してマシン起動
  2. BIOSの設定画面でUSBを最優先へ変更
しばらくするとUbuntuが立ち上がって来た。
起動する事を確認出来た。



今後の課題


とりあえず解決したい。
  • USB環境量産方法
    • マスター環境構築
    • マスター環境をcpやddで書き込む程度の単純作業
  • 1本のUSBメモリで
    • WindowsとMacOS、どちらからでもUSBにインストールしたUbuntuを使う方法
    • 非常時にUSBブート出来る環境を用意しておきたい


半袖 at 21:00|PermalinkComments(0)TrackBack(0)

2008年05月06日

Debian(sid)で「apt-get」実行したらSledgeが動かなくなった…復活

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

開発環境は主にDebian


毎日の準備体操のようなもの。
$ sudo apt-get update && sudo apt-get dist-upgrade

すると…
あれ…?

$ /usr/sbin/apachectl configtest
Syntax error on line 15 of /etc/apache/sites-enabled/app.config:
Invalid command '', perhaps mis-spelled or defined by a module not included in the server configuration
おや…?



作業内容


どうも変だぞ。
  • apt-getを実行しただけ
調査してみると謎は解けた。

  1. Perlが5.8→8.10になった
  2. libapache-mod-perlがPerl5.8依存
  3. Perl5.10がインストールされた為、依存関係が崩れてmod-perlが消えた
sidはPerl5.10になった事が判明。
しかし、Perl5.10よりもSledgeが動かない。
こっちがまずい。



大急ぎでPerl関連パッケージを元に戻す


$ sudo apt-get install /var/cache/apt/archive/.......deb

やっと戻ったつもりが、まだ動かない。

[Tue May  6 15:08:53 2008] [error] This method is abstract at /usr/share/perl5/S
ledge/Pages/Base.pm line 46.\n

何だなんだ…?
前にもハマッタ気がする。

冷静に考える。

Apache関連Perlモジュール不足。

$ sudo apt-get install libapache-reload-perl libapache-request-perl

やっと戻った…。
とりあえずPerlモジュールはholdにしておいた。



今後


  • sidを使う
    • Perl5.10依存のlibapache-mod-perlを作る
    • Perl5.8系でholdしておく
    • Sledgeを卒業する
  • sargeを使う
    • libapache-mod-perl環境用の為にsargeを使う
さて、どうしたものか。


半袖 at 19:40|PermalinkComments(0)TrackBack(0)

"dpkg -l"でパッケージ名の全てが見えない状況を解決する

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

環境変数COLUMNS

これで解決する。

$ export COLUMNS=200
$ dpkg -l
数値はお好み。


半袖 at 16:00|PermalinkComments(0)TrackBack(0)

2008年04月08日

DebianからDebianへ引越作業

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

それは余りにも突然の要望

「別の検証用サーバとして使いたい」
whois.hansode.orgcert.hansode.orgを動かしているサーバの事だ。
正直面倒くさい。しかし、自分が引越させるのが最もコストが低い。

晩御飯を食べ終え、
気合を入れて引越作業に取り掛かった。



やはりDebian!


どのパッケージが入っているのか。
$ dpkg --get-selections | awk '$2 == "install" {print $1}'
これで出て来る。

このリストを上手く利用すれば、
Debianパッケージレベルのレプリカ作成は容易な作業。
old$ dpkg --get-selections | awk '$2 == "install" {print $1}' > tee dpkg-list.txt
old$ scp dpkg-list.txt $(new-server):~/
old$ ssh new
new$ sudo apt-get install `cat dpkg-list.txt`
下記前提条件を満たせば、
あっと言う間に作業が終わる。

  • Debianのバージョンが同じ
  • 全てが公式パッケージ
後はconfigの設定をして終わり。
時間がかかったのはMySQLのデータ移項。

Debianは引越作業が楽。


半袖 at 00:25|PermalinkComments(1)TrackBack(0)

2008年03月08日

Debian(unstable)のdaemontoolsのディレクトリツリー構造が変わった

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

/service → /etc/service


versionserviceディレクトリ
0.76-1/service
0.76-2/etc/service



なかなか慣れない


使ってるサーバには複数のDebianがある。
それぞれ別バージョン。

/serviceでもあり、/etc/serviceでもある。
全てが/etc/serviceなら混乱しないのだろう。

まだまだ混乱は続きそう。
symlink作ってしまおうかな。


半袖 at 21:50|PermalinkComments(0)TrackBack(0)

2007年10月03日

インストールしたてのDebianなapache2の設定でよくやる事メモ

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

まっさらなサーバで作業すると、いつもこの作業。



■VirtualHostの追加と有効化
# cd /etc/apache2/sites-available
# vi foo.example.com
# a2ensite foo.example.com
Site foo.example.com installed; run /etc/init.d/apache2
reload to enable.


■rewriteを有効化
# /usr/sbin/apache2ctl configtest
Syntax error on line 9 of /etc/apache2/sites-enabled/foo.example.com:
Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

# a2enmod rewrite
Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.
# /usr/sbin/apache2ctl configtest
Syntax OK


半袖 at 11:50|PermalinkComments(1)TrackBack(0)

2007年08月02日

自前Debianリポジトリを作ろう

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

http://debian.hansode.org/
公開しているaptリポジトリの作成方法メモ


Plaggerパッケージが新しくなったようです
> パッケージの作り方教えてほしい。これも大変なんだそうな。

今回は パッケージの作り方 のその先。
作ったものを配布する方法とその作業。


▼環境・前提条件
・http://debian.hansode.org/ でアクセス可能な設定が完了している事
・debian.hansode.orgのDocumentRootが/home/web/sites/debian.hansode.org/htdocs/である事


▼apt-ftparchiveでPackages.gzを生成

$ cd /home/web/sites/debian.hansode.org/htdocs/
$ mkdir unstable
$ cp /path/to/archive/foobar.deb ./unstable/
$ apt-ftparchive packages . | gzip -c9 > Packages.gz


これでapt-lineの参照対象としての準備完了


▼/etc/apt/sources.listに追加

deb http://debian.hansode.org/ ./


apt-lineを追加して終わり


▼使い方は色々
・外部公開の野良リポジトリ
・オレオレ仕様のサーバ構築用リポジトリ
・社内向けのリポジトリ


▼+Subversion、 +cfengine
リポジトリ全体をSubversion等でバージョン管理してやると更に良いだろう。
今作っている某システムはまさにそれ。『svn + 独自debianリポジトリ』。
更にcfengineと組み合わせる事により、用途別のサーバセットアップをコマン
ド数回実行するだけで構築可能にしている。


こんなに快適なのはDebianパッケージのおかげだろう。
他のパッケージマネージャではこうは行かないだろうな。
適材適所。臨機応変。デビアン。


半袖 at 13:00|PermalinkComments(0)TrackBack(0)

dh-make-perlで依存パッケージ指定

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

しばらく使ってないうちにオプションが増えていた。


Usage:
/usr/bin/dh-make-perl [ --build ] [ --install ] [ SOURCE_DIR | --cpan MODULE ]
Other options: [ --desc DESCRIPTION ] [ --arch all|any ] [ --version VERSION ]
[ --depends DEPENDS ] [ --bdepends BUILD-DEPENDS ]
[ --bdependsi BUILD-DEPENDS-INDEP ] [ --cpan-mirror MIRROR ]
[ --exclude|-i [REGEX] ] [ --notest ] [ --nometa ]
[ --requiredeps ] [ --core-ok ]


オプションを見る限り、コマンドラインオプションで依存パッケージ
を指定出来るようになったみたいだ。manで調べてみる。


$ man dh-make-perl
--depends DEPENDS
Manually specify the string to be used for the module's dependen-
cies. This should be used when building modules where dh-make-perl
cannot guess the Perl dependencies (such as modules built using
Module::Install), or when the Perl code depends on non-Perl bina-
ries or libraries. Usually, dh-make-perl will figure out the depen-
dencies by itself.


なるほど。

依存ライブラリの数だけ --depends オプションを使うのかと思ったらそうではない。
--dependsは一回だけ使える。


$ dh-make-perl --build --cpan [module] --depends '[package], [package], [package]...'


例としてPlaggerのdebパッケージ作成時のオプション
依存パッケージ多過ぎ。依存しているパッケージはさらに何かに依
存しているので、それぞれのパッケージを作るのは多大な時間が費
やされる。今までにどれくらい費やしたか覚えて居ない…。


dh-make-perl --build --cpan Plagger --depends '${perl:Depends}, ${misc:Depends}, libcache-cache-perl(>=1.04), libcache-fastmmap-perl, libclass-accessor-perl, libconfig-ini-simple-perl, libdata-ical-perl, libdata-serializer-perl, libdatetime-format-epoch-perl, libdatetime-format-ical-perl, libdatetime-format-mail-perl, libdatetime-format-strptime-perl, libdatetime-format-w3cdtf-perl, libdatetime-locale-perl, libdatetime-locale-perl(>=0.32), libdatetime-perl(>=0.35), libdatetime-timezone-perl(>=0.56), libdbix-class-perl, libemail-address-perl, libencode-detect-perl(>=1), libencode-perl(>=2.1), libfile-copy-recursive-perl, libfile-find-rule-perl, libfile-grep-perl, libfile-homedir-perl, libflickr-api-perl, libhatena-keyword-perl, libhtml-format-perl, libhtml-parser-perl, libhtml-parser-perl(>=3.51), libhtml-resolvelink-perl, libhtml-resolvelink-perl(>=0.02), libhtml-scrubber-perl, libhtml-tidy-perl(>=1.07), libhtml-tree-perl, libhtml-treebuilder-xpath-perl, libhttp-cookies-mozilla-perl, libimage-info-perl, libip-country-perl, libipc-run-perl, libkinosearch-perl, liblingua-en-summarize-perl, liblingua-ja-summarize-extract-perl, liblingua-zh-handetect-perl, libmail-imapclient-perl, libmailtools-perl, libmime-lite-perl, libmime-types-perl(>=1.16), libmodule-pluggable-fast-perl, libnet-delicious-perl, libnet-dns-perl, libnet-movabletype-perl, libnet-netsend-perl, libnet-smtp-tls-perl, libpalm-palmdoc-perl, libpoe-component-client-dns-perl, libpoe-component-client-http-perl, libpoe-component-ikc-perl, libpoe-component-irc-perl, libpoe-perl, libregexp-common-profanity-us-perl, libsearch-estraier-perl, libsoap-lite-perl, libspreadsheet-writeexcel-perl, libsvn-core-perl, libswf-builder-perl, libtemplate-perl(>=2.13), libtemplate-plugin-javascript-perl, libtemplate-provider-encoding-perl(>=0.04), libterm-encoding-perl, libtest-pod-coverage-perl, libtest-pod-perl, libtext-csv-pp-perl, libtext-emoticon-perl, libtext-hatena-perl, libtext-kakasi-perl, libtext-language-guess-perl, libtext-markdown-perl, libtext-original-perl, libtext-tags-perl, libtext-wrapi18n-perl, libtime-duration-parse-perl, libtimedate-perl, libuniversal-require-perl(>=0.1), liburi-fetch-perl(>=0.07), liburi-find-perl, libwebservice-bloglines-perl(>=0.11), libwww-babelfish-perl, libwww-mechanize-perl, libwww-mixi-perl(>=0.48), libwww-perl, libxango-perl(>=1.04), libxml-atom-perl(>=0.20), libxml-atom-perl(>=0.23), libxml-feed-perl(>=0.09), libxml-feed-perl(>=0.12), libxml-foaf-perl, libxml-liberal-perl(>=0.14), libxml-libxml-perl, libxml-rss-liberal-perl, libxml-rss-libxml-perl(>=0.23), libyaml-perl(>=0.39), libyaml-syck-perl, libyaml-syck-perl(>=0.1), perl, perl(>=2.1), perl-base, spamassassin'




[入門] Debian パッケージ
やまだ あきら 鵜飼 文敏
技術評論社 (2006/05/11)
売り上げランキング: 122770



半袖 at 01:40|PermalinkComments(0)TrackBack(0)

Plagger-0.7.17のDebianパッケージ作りました

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

『知り合いが使ってるよ』

その一言がやる気を起こさせた。
久々に更新。

 ・前回 Plagger-0.7.13
 ・今回 Plagger-0.7.17

DebianでPlaggerの詳細は下記サイト
http://debian.hansode.org/


半袖 at 01:20|PermalinkComments(4)TrackBack(1)

2007年08月01日

PostfixとSPFで受信側MTAのspamメール対策

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Postfixとpostfix-policyd-spf-perlを使用し、
メールヘッダーに"Received-SPF"を追加する。


■環境
・OS: Debian GNU/Linux (etch)
・MTA: Postfix 2.3.8-2


■概要
・libmail-spf-perlをインストール
・postfix-policyd-spf-perlをインストール
・postfixの設定(/etc/postfix/master.cf編集)


▼Mail::SPF (libmail-spf-perl)
postfix-policyd-spfはMail::SPFに依存する。
debパッケージには存在しない。探してみたらubuntuにあった。

http://packages.ubuntu.com/feisty/perl/libmail-spf-perl


$ wget http://..../libmail-spf-perl_2.004-0ubuntu1_all.deb
$ sudo dpkg -i libmail-spf-perl_2.004-0ubuntu1_all.deb



▼postfix-policyd-spf-perlをdeb化する
postfix-policyd-spf-perlはdeb化される事を想定しているのだろう。
debian/ と言うディレクトリがある。まずはdebパッケージ作り


$ wget http://www.openspf.org/source/software/postfix-policyd-spf-perl/tags/2.004.tar.gz?view=tar -O postfix-policyd-spf-perl-2.0004.tar.gz
$ tar zxvf postfix-policyd-spf-perl-2.0004.tar.gz
$ cd 2.004/
$ chmod +x debian/rules
$ fakeroot dpkg-buildpackage -uc -us
$ ls -1 ../postfix-policyd-spf-perl*
../postfix-policyd-spf-perl-2.0004.tar.gz
../postfix-policyd-spf-perl_2.004-0ubuntu1.dsc
../postfix-policyd-spf-perl_2.004-0ubuntu1.tar.gz
../postfix-policyd-spf-perl_2.004-0ubuntu1_all.deb
../postfix-policyd-spf-perl_2.004-0ubuntu1_i386.changes
$ sudo dpkg -i ../postfix-policyd-spf-perl_2.004-0ubuntu1_all.deb


0utunbu1となっているけど気にしない


$ dpkg -L postfix-policyd-spf-perl
/.
/usr
/usr/sbin
/usr/sbin/postfix-policyd-spf-perl
/usr/share
/usr/share/doc
/usr/share/doc/postfix-policyd-spf-perl
/usr/share/doc/postfix-policyd-spf-perl/copyright
/usr/share/doc/postfix-policyd-spf-perl/changelog.gz
/usr/share/doc/postfix-policyd-spf-perl/changelog.Debian.gz
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/postfix-policyd-spf-perl.8p.gz



▼/etc/postfix/master.cfを修正


$ sudo vi /etc/postfix/master.cf
------------------------------
policy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/sbin/postfix-policyd-spf-perl
------------------------------


追記したらreload


$ sudo /etc/init.d/postfix reload



▼テスト
実際に対してメールを送信し、
メールヘッダーにReceived-SPFが追加されているかを確認


半袖 at 15:55|PermalinkComments(0)TrackBack(0)

2007年07月31日

CPANモジュールからDebianパッケージを作る

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

久々にdh-make-perlを使ったのでメモ

tar玉からCPANモジュールを何度もインストールしていると、
そのうちインストールするのにも飽きて来る。

以前『CPANモジュールをDebianパッケージに出来ないものか?』と考えたら、
まさにその変換コマンドがあった。


$ sudo apt-get install dh-make-perl
$ dh-make-perl --build --cpan [module-name]


Debian使っているなら、色々なものをパッケージ管理したくなる。

便利だけど問題が1つある
依存関係を考慮してくれないと言う事。
Debianパッケージでありながらも中に浮いた独立したパッケージとなる。

頑張って依存関係を作る方法はある。
そのネタはまた今度。

Debian 辞典
Debian 辞典
posted with amazlet on 07.07.31
武藤 健志
翔泳社 (2005/05/24)
売り上げランキング: 88670



半袖 at 16:45|PermalinkComments(0)TrackBack(0)

Debianのローカルリポジトリ構築・再構築

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

debファイルを置いたのにパッケージ一覧に現れない。

さて…。
久しぶりに作業をしたので、パッケージリスト再構築する事をすっかり忘れていた。


$ cd /path/to/local/deb/repos/; pwd
$ cp foo_x.y.z.deb ./.
$ apt-ftparchive packages . | gzip -c9 > Packages.gz


sourceパッケージもある場合はソースリストも作ってやる

apt-ftparchive sources . | gzip -c9 > Sources.gz


一件落着。


makeを使えば依存関係ファイルのタイムスタンプを比較をしてくれるので、
Makefileを作って管理するのが一番スマートかな。


半袖 at 12:20|PermalinkComments(0)TrackBack(0)

必要なパッケージをインストールせず、ダウンロードだけする

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

installなのに download-only って言うのが何だか気持ち悪い


$ sudo apt-get -d install [package]



半袖 at 12:10|PermalinkComments(0)TrackBack(0)

2007年05月03日

/etc/fstabを共通化

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Mounting file-systems by label rather than device nameより

ラベル指定でマウントするという記事

▼方法
・tune2fsでデバイス名にラベル付け
・ラベル指定でマウント


# tune2fs -Lroot /dev/sda1


▼メリット
・ラベル指定でマウントすればデバイスに依存しない、物理構成に依存しない
・/etc/fstabをラベル指定マウントに書き換えておけば、/etc/fstabを共通化可能
・共通化しておけばcfengine等で管理可能


BSDでも似たような事を出来るのかな。


半袖 at 20:00|PermalinkComments(0)TrackBack(0)

2007年03月23日

Debianな1サーバでdnscacheとrbldnsdを同居させる

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

とある検証で開発環境でdnscacheとrbldnsdを立ち上げる必要が出た。

・dnscache 127.0.0.1:53
・rbldnsd 127.0.0.2:53

どちらもudp/53を使うのでrbldnsdを別IPアドレスを使う。
なお、今回rbldnsdを別ポートでbindする事は議論しない。


■Debianのnetwork設定

▼/etc/network/interfaces
追記

auto lo:0
iface lo:0 inet static
address 127.0.0.2
netmask 255.0.0.0



$ sudo /sbin/ifconfig lo:0 127.0.0.2


■dnscache
dnscache-confを使えば作ってくれるrunスクリプト

▼/service/dnscache/run

#!/bin/sh
exec 2>&1
exec >seed
exec envdir ./env sh -c '
exec envuidgid dnscache softlimit -o250 -d "$DATALIMIT" /usr/bin/dnscache
'


▼/etc/dnscache/root/servers/dnsbl.dev.example.org
後述するrbldnsdはdnsbl.dev.example.orgをzoneとしてサービスする。
dnsbl.dev.example.orgへのリクエストはrbldnsdへforward。

127.0.0.2



■rbldnsd
rbldnsではなく、rbldns*d* だ。
djbwareではないけどdjbware風にrbldnsdを設定する。

▼/service/rbldnsd/run
設定はenvdirを利用

#!/bin/sh

exec 2>&1
sleep 3

exec envdir ./env sh -c '
exec /usr/sbin/rbldnsd \
-u ${USER:-rbldns} \
-r ${ROOT:-/etc/rbldnsd} \
-b ${IP:-127.0.0.1}/${PORT:-1053} \
-l +- \
-n ${BASE}:ip4set:ip ${BASE}:dnset:host
'


▼/etc/rbldnsd/env/*
tinydns風にrbldnsdを設定

==> /etc/rbldnsd/env/BASE <==
dnsbl.dev.example.org

==> /etc/rbldnsd/env/IP <==
127.0.0.2

==> /etc/rbldnsd/env/PORT <==
53

==> /etc/rbldnsd/env/ROOT <==
/etc/rbldnsd/root

==> /etc/rbldnsd/env/USER <==
rbldns



半袖 at 01:50|PermalinkComments(0)TrackBack(0)

2006年12月13日

coLinuxのディスク容量確保

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

残りディスク容量が少なくない。


$ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/cobd0 4128448 3372588 546148 87% /
tmpfs 63184 0 63184 0% /lib/init/rw
tmpfs 63184 4 63180 1% /dev/shm
/dev/root.old 2442 1881 561 78% /initrd
$ sudo apt-get clean
$ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/cobd0 4128448 1404452 2514284 36% /
tmpfs 63184 0 63184 0% /lib/init/rw
tmpfs 63184 4 63180 1% /dev/shm
/dev/root.old 2442 1881 561 78% /initrd


ダイエット完了。スッキリスリム。
時々cleanしてあげないとパッツンパツン。


半袖 at 12:10|PermalinkComments(0)TrackBack(0)

2006年11月29日

coLinuxがlibx11-6のupgradeで落ちる

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

coLinuxは開発環境・検証環境として重宝している。

いつもの様にapt-get update && apt-get dist-ugpradeしていたら、
coLinuxがプチっと落ちる。原因を究明しようとしても落ちまくる。
何だこれは…。ググってみたら同じ現象に陥っている人を発見。
見事解決していた。

coLinuxがlaptop-detectで落ちる件より

/usr/sbin/laptop-detectが悪さをしているらしい。
早速/usr/sbin/laptop-detectをダミースクリプトに置き換えて見た。
見事解決!


半袖 at 02:00|PermalinkComments(0)TrackBack(0)

2006年11月17日

続・canna 3.7p3-3.1にきをつけろ

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

canna 3.7p3-3.1にきをつけろの続き

3.7p3-4で解消した。


$ dpkg --get-selections | grep canna
canna hold
canna-utils install
jvim-canna install
libcanna1g install

$ echo canna install | sudo dpkg --set-selections

$ dpkg --get-selections | grep canna
canna install
canna-utils install
jvim-canna install
libcanna1g install

$ sudo apt-get dist-upgrade
$ dpkg -l canna
ii canna 3.7p3-4 Japanese input system (server and dictionary



Debian 辞典
Debian 辞典
posted with amazlet on 06.11.17
武藤 健志
翔泳社
売り上げランキング: 106310



半袖 at 12:20|PermalinkComments(0)TrackBack(0)

続・apache2-mpm-preforkとlibapache2-mod-php5の駄目な組合せ

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

apache2-mpm-preforkとlibapache2-mod-php5の駄目な組合せの続編


ii apache2-mpm-prefork 2.2.3-3.1 Traditional model for Apache HTTPD 2.1
ii libapache2-mod-php5 5.2.0-3 server-side, HTML-embedded scripting languag


このバージョンの組合せで解消された。


Apacheハンドブック
Apacheハンドブック
posted with amazlet on 06.11.17
Ben Laurie Peter Laurie 大川 佳織 田辺 茂也
オライリージャパン
売り上げランキング: 5545



半袖 at 12:15|PermalinkComments(0)TrackBack(0)

2006年11月09日

apache2-mpm-preforkとlibapache2-mod-php5の駄目な組合せ

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

この組合せだと駄目?


$ dpkg -l
ii apache2-mpm-prefork 2.2.3-3 Traditional model for Apache HTTPD 2.1
rc libapache2-mod-php5 5.2.0-1 server-side, HTML-embedded scripting languag


検証サーバで何故か静的ページの表示に失敗している。
エラーログはこんな状態。


[Thu Nov 09 23:02:56 2006] [notice] child pid 27893 exit signal Segmentation fault (11)
[Thu Nov 09 23:02:57 2006] [notice] child pid 27894 exit signal Segmentation fault (11)
[Thu Nov 09 23:03:20 2006] [notice] child pid 27895 exit signal Segmentation fault (11)
[Thu Nov 09 23:03:21 2006] [notice] child pid 27896 exit signal Segmentation fault (11)


何をしたのかを考えてみる。
apache2の設定を弄った覚えが無い。

するとあとは何だろう…?
何かパッケージが入れ替わった?

調べてみるとphp5.2.0へ入れ替わっていた。
試しに削除してみたらバッチリ解決。

前のバージョンでは問題なく動いていた。
php5.2.0は様子見と言うことだろうか。


半袖 at 23:30|PermalinkComments(0)TrackBack(0)

canna 3.7p3-3.1にきをつけろ

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

朝の作業はメールを読みつつapt-get

いくつかのパッケージのうち、cannaがアップグレードされた。
何故か漢字変換出来なくなっているではないか。

・psで確認してみるとcannaserverが立ち上がっていない
・/etc/inid.d/canna startしても立ち上がらない
・canna 3.7p3-1へダウングレードしたら解決

・3.7p3-3.1と3.7p3-1ではパッケージングされているファイル数が大分違う
 よりによって…cannnaserverが無い!

▼canna 3.7p3-3.1

$ dpkg -l canna
ii canna 3.7p3-3.1 Japanese input system (server and dictionary

$ dpkg -L canna
/.
/usr
/usr/bin
/usr/lib
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/chmoddic.1.gz
/usr/share/man/man1/canlisp.1.gz
/usr/share/man/man1/forsort.1.gz
/usr/share/man/man1/mergeword.1.gz
/usr/share/man/man8
/usr/share/man/man8/update-canna-dics_dir.8.gz
/usr/share/doc
/usr/share/doc/canna
/usr/share/doc/canna/WHATIS
/usr/share/doc/canna/WHATIS.jp
/usr/share/doc/canna/README.Debian
/usr/share/doc/canna/TODO.Debian
/usr/share/doc/canna/copyright
/usr/share/doc/canna/README.jp.gz
/usr/share/doc/canna/README.gz
/usr/share/doc/canna/CHANGES.jp.gz
/usr/share/doc/canna/canna.dvi.gz
/usr/share/doc/canna/changelog.Debian.gz
/usr/share/doc/canna/changelog.gz
/etc
/etc/canna
/etc/init.d
/etc/init.d/canna
/usr/bin/chmoddic
/usr/bin/syncdic
/etc/canna/dics.dir.d/00canna.dics.dir

$ dpkg -L canna | wc -l
33


▼canna 3.7p3-3.1

$ dpkg -l canna
ii canna 3.7p3-1 A Japanese input system (server and dictiona
$ dpkg -L canna | wc -l
101


とりあえずcannaをhold


$ echo canna hold | sudo dpkg --set-selections
$ sudo dpkg --get-selections | grep canna
canna hold



半袖 at 18:00|PermalinkComments(1)TrackBack(2)

2006年10月19日

qmailのDebianパッケージ パッチ一覧

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Debian(sid)ではqmailにどのパッチをあてているのか気になった。

▼qmail_1.03-40より
・netscape-progress.patch
・pop3-supplementarygroups.patch
・qmail-0.0.0.0.patch
・qmail-1.03.errno.patch
・qmail-1.03.isoc.patch
・qmail-1.03.qmail_local.patch
・qmail-date-localtime.patch
・qmail-ldap-1.03-20041201.patch
・qmail-link-sync.patch
・qmail-smtpd-bmtpatch.patch
・qmail-smtpd-usint.patch
・qmailqueue-patch
・qregex-20040725.patch

これにqmail-spf-rc5.patchがあれば良いな。
独自パッケージを作ろうかな。


半袖 at 18:55|PermalinkComments(2)TrackBack(0)

2006年10月11日

apache2.2のAuthUserFileディレクティブ

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

apache2.0からapache2.2へ入れ替えた時の影響


$ /usr/sbin/apache2ctl configtest
Syntax error on line 31 of /etc/apache2/sites-enabled/hoge.hansode.org:
Invalid command 'AuthUserFile', perhaps misspelled or defined by a module not included in the server configuration


何?!


$ for i in /usr/lib/apache2/modules/*; do strings $i | grep -q -i AuthUser && echo $i; done
/usr/lib/apache2/modules/mod_authn_file.so
$ ls /etc/apache2/mods-available/authn_file.load
/etc/apache2/mods-available/authn_file.load


なるほど


$ sudo /usr/sbin/a2enmod authn_file
Module authn_file installed; run /etc/init.d/apache2 force-reload to enable.
$ /usr/sbin/apache2ctl configtest
Syntax OK


別モジュールになっていた。


半袖 at 12:25|PermalinkComments(0)TrackBack(0)