Debian
2008年07月18日
IPアドレスから位置情報を取得したい
GeoIP City Geolocationを使うとIPアドレスから位置情報を取得可能。
無料版と有料版があり、無料版は位置情報の精度が低い。
今回は無料版で実験。
環境構築
必要なパッケージをインストール
$ sudo apt-get install libgeoip1 libgeoip-devGeo::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.debGeoLiteCity.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版 ―地図検索サービスをもっと活用するテクニック
posted with amazlet at 08.07.18
Rich Gibson Schuyler Erle
オライリー・ジャパン
売り上げランキング: 53996
オライリー・ジャパン
売り上げランキング: 53996
2008年06月23日
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とする場合
解決方法
- /var/log/xen-tools/を確認
- ミラー先に問題がある場合は/etc/rinse/rinse.confを変更
- 再度xen-create-imageを実行して確認
2008年06月02日
Xenだと上手く行かなかった
Ubuntu World ~毎日使いたくなるデスクトップLinux(DVD付ムック) (IDGムックシリーズ)
posted with amazlet at 08.06.02
小林 準 あわしろ いくや 青木 理音 大津 真 山市 良 中橋 一朗 LinuxWorld編集部
アイ・ディ・ジー・ジャパン
売り上げランキング: 1850
アイ・ディ・ジー・ジャパン
売り上げランキング: 1850
メンバーの1人が見せてくれた。
軽く流し読み。デスクトップ環境の使い方が書かれた一冊。
仮想環境を構築するにはVirtualBox推奨との事。
PCとの相性の問題かも知れないけど、Xenだと上手く動いてる気配が無かった。
VirtualBoxを試してみよう。
2008年05月28日
2008年05月22日
環境構築まとめ
UbuntuをUSBブートさせたいけど、
データ置き場としても使いたい。
BUFFALO USBメモリ スタンダードタイプ ブラックモデル TurboUSB機能搭載 8GB RUF-C8GS-BK/U2
posted with amazlet at 08.05.22
バッファロー (2007-06-14)
売り上げランキング: 1803
売り上げランキング: 1803
パーティション情報
1番目にデータ領域を作る。
容量8Gの場合の参考例。
| sdb1 | 5120M | W95 FAT32 (LBA) |
| sdb2 | 700M | 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からブート出来る事を確認して終わり。
2008年05月21日
WindowsとcoLinux間のファイルやり取りが多い
作業の都合で
coLinux上のファイルをWindowsへの移動が何度も行われている。
WinSCPでファイル操作してみたけど、どうも効率が悪い。
そこで考えた解決の1つがSambaの利用。
環境整理
| Debian | lenny/sid | |
| colinux | IPアドレス | 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」が現れていれば成功。
作業効率が上がった。
2008年05月20日
目的は気軽に開発環境構築
BUFFALO USBメモリ スタンダードタイプ ブルーモデル TurboUSB機能搭載 8GB RUF-C8GS-BL/U2
posted with amazlet at 08.05.20
バッファロー (2007-06-14)
売り上げランキング: 5822
売り上げランキング: 5822
Ubuntuインストール目的でUSBメモリを買って来た。
Ubuntu 8.04 on USB Memory : インストールと「ブートCD」に書かれている通りに作業。
- まずはDesktop CDでブート
- USBメモリをマシンに指してデバイス名を確認
- fdiskでパーティションを2つ切る
$ 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終わったら
- 作成したUSBメモリを指してマシン起動
- BIOSの設定画面でUSBを最優先へ変更
起動する事を確認出来た。
今後の課題
とりあえず解決したい。
- USB環境量産方法
- マスター環境構築
- マスター環境をcpやddで書き込む程度の単純作業
- 1本のUSBメモリで
- WindowsとMacOS、どちらからでもUSBにインストールしたUbuntuを使う方法
- 非常時にUSBブート出来る環境を用意しておきたい
2008年05月06日
開発環境は主に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を実行しただけ
- Perlが5.8→8.10になった
- libapache-mod-perlがPerl5.8依存
- Perl5.10がインストールされた為、依存関係が崩れてmod-perlが消えた
しかし、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を使う
2008年04月08日
それは余りにも突然の要望
「別の検証用サーバとして使いたい」whois.hansode.orgとcert.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のバージョンが同じ
- 全てが公式パッケージ
時間がかかったのはMySQLのデータ移項。
Debianは引越作業が楽。
2008年03月08日
2007年10月03日
まっさらなサーバで作業すると、いつもこの作業。
■VirtualHostの追加と有効化
■rewriteを有効化
■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
2007年08月02日
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パッケージのおかげだろう。
他のパッケージマネージャではこうは行かないだろうな。
適材適所。臨機応変。デビアン。
公開している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パッケージのおかげだろう。
他のパッケージマネージャではこうは行かないだろうな。
適材適所。臨機応変。デビアン。
しばらく使ってないうちにオプションが増えていた。
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'
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 パッケージ
posted with amazlet on 07.08.02
やまだ あきら 鵜飼 文敏
技術評論社 (2006/05/11)
売り上げランキング: 122770
技術評論社 (2006/05/11)
売り上げランキング: 122770
『知り合いが使ってるよ』
その一言がやる気を起こさせた。
久々に更新。
・前回 Plagger-0.7.13
・今回 Plagger-0.7.17
DebianでPlaggerの詳細は下記サイト
http://debian.hansode.org/
その一言がやる気を起こさせた。
久々に更新。
・前回 Plagger-0.7.13
・今回 Plagger-0.7.17
DebianでPlaggerの詳細は下記サイト
http://debian.hansode.org/
2007年08月01日
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が追加されているかを確認
メールヘッダーに"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が追加されているかを確認
2007年07月31日
久々にdh-make-perlを使ったのでメモ
tar玉からCPANモジュールを何度もインストールしていると、
そのうちインストールするのにも飽きて来る。
以前『CPANモジュールをDebianパッケージに出来ないものか?』と考えたら、
まさにその変換コマンドがあった。
$ sudo apt-get install dh-make-perl
$ dh-make-perl --build --cpan [module-name]
Debian使っているなら、色々なものをパッケージ管理したくなる。
便利だけど問題が1つある
依存関係を考慮してくれないと言う事。
Debianパッケージでありながらも中に浮いた独立したパッケージとなる。
頑張って依存関係を作る方法はある。
そのネタはまた今度。
tar玉からCPANモジュールを何度もインストールしていると、
そのうちインストールするのにも飽きて来る。
以前『CPANモジュールをDebianパッケージに出来ないものか?』と考えたら、
まさにその変換コマンドがあった。
$ sudo apt-get install dh-make-perl
$ dh-make-perl --build --cpan [module-name]
Debian使っているなら、色々なものをパッケージ管理したくなる。
便利だけど問題が1つある
依存関係を考慮してくれないと言う事。
Debianパッケージでありながらも中に浮いた独立したパッケージとなる。
頑張って依存関係を作る方法はある。
そのネタはまた今度。
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を作って管理するのが一番スマートかな。
さて…。
久しぶりに作業をしたので、パッケージリスト再構築する事をすっかり忘れていた。
$ 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を作って管理するのが一番スマートかな。
2007年05月03日
Mounting file-systems by label rather than device nameより
ラベル指定でマウントするという記事
▼方法
・tune2fsでデバイス名にラベル付け
・ラベル指定でマウント
# tune2fs -Lroot /dev/sda1
▼メリット
・ラベル指定でマウントすればデバイスに依存しない、物理構成に依存しない
・/etc/fstabをラベル指定マウントに書き換えておけば、/etc/fstabを共通化可能
・共通化しておけばcfengine等で管理可能
BSDでも似たような事を出来るのかな。
ラベル指定でマウントするという記事
▼方法
・tune2fsでデバイス名にラベル付け
・ラベル指定でマウント
# tune2fs -Lroot /dev/sda1
▼メリット
・ラベル指定でマウントすればデバイスに依存しない、物理構成に依存しない
・/etc/fstabをラベル指定マウントに書き換えておけば、/etc/fstabを共通化可能
・共通化しておけばcfengine等で管理可能
BSDでも似たような事を出来るのかな。
2007年03月23日
とある検証で開発環境で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
・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
2006年12月13日
残りディスク容量が少なくない。
$ 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してあげないとパッツンパツン。
$ 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してあげないとパッツンパツン。
2006年11月29日
coLinuxは開発環境・検証環境として重宝している。
いつもの様にapt-get update && apt-get dist-ugpradeしていたら、
coLinuxがプチっと落ちる。原因を究明しようとしても落ちまくる。
何だこれは…。ググってみたら同じ現象に陥っている人を発見。
見事解決していた。
coLinuxがlaptop-detectで落ちる件より
/usr/sbin/laptop-detectが悪さをしているらしい。
早速/usr/sbin/laptop-detectをダミースクリプトに置き換えて見た。
見事解決!
いつもの様にapt-get update && apt-get dist-ugpradeしていたら、
coLinuxがプチっと落ちる。原因を究明しようとしても落ちまくる。
何だこれは…。ググってみたら同じ現象に陥っている人を発見。
見事解決していた。
coLinuxがlaptop-detectで落ちる件より
/usr/sbin/laptop-detectが悪さをしているらしい。
早速/usr/sbin/laptop-detectをダミースクリプトに置き換えて見た。
見事解決!
2006年11月17日
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
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
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
このバージョンの組合せで解消された。
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ハンドブック
posted with amazlet on 06.11.17
Ben Laurie Peter Laurie 大川 佳織 田辺 茂也
オライリージャパン
売り上げランキング: 5545
オライリージャパン
売り上げランキング: 5545




![[入門] Debian パッケージ](http://ec1.images-amazon.com/images/I/21P2PEMKRML.jpg)


