Home > Tags > Linux

Linux Tag Archive

CentOS 5.4 に ImageMagick をインストールして遊んでみる

WordPress のプラグインである WP-tegaki はフォントを画像化するのに GD を使っていろいろやってますが、改造しようとあれこれソースを眺めていたら、縁取りやらドロップシャドウやらちょっとした効果を付けようと思ったら GD では難しげな感じ。さらに高機能な画像処理ツールである ImageMagick を PHP から使えるようにするため、インストールしてみました。

CentOS 5.4 では yum からインストールされる ImageMagick が 6.2.8 と現行のバージョン*1 と比べてかなり古いようなので、入れ替えのための情報を探してみたら良さげなものがありました。

ImageMagick の RPM を作ってみる

CentOS 5 の ImageMagick を RPM でアップグレードしてみた – PHPで携帯サイトを開発する人のブログ の情報を参考に、ImageMagick 6.5.3-10 の RPM を作成しました。

まずは SRPM を取ってきてインストール

# wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
# rpm -ivh --nomd5 ImageMagick.src.rpm

基本的な手順はリンク先のサイトと同じで、足りないパッケージをインストール、 yum でインストールできなくて、ついでにあまり必要でなさげな JPEG2000 の対応を切り捨て、SPEC ファイルを書き換えてリビルドして完了。CentOS 標準の yum から取ってこれなかったのは以下の3つで、それぞれ

  • perl-devel …… Perl パッケージに含まれるので SPEC から perl-devel を削除
  • jasper-devel …… JPEG2000 サポートなので使わなければ SPEC から削除
  • djvulibre-devel …… dag リポジトリからインストール

という状況なので、djvulibre-devel だけ入れてやって完了。

/etc/yum.repos.d/dag.repo を作成し、

[dag]
name=Dag RPM Repository for CentOS5
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el5/en/$basearch/dag/
enabled=0
gpgcheck=1

と書いてやって、

# rpm --import http://ftp.riken.jp/Linux/dag/RPM-GPG-KEY.dag.txt
# yum --enablerepo=dag install djvulibre-devel

そして、パッケージをリビルド。

# rpmbuild -ba ImageMagick.spec

うまくいけば、以下のパッケージができます。

  • ImageMagick-6.5.3-10.x86_64.rpm
  • ImageMagick-c++-6.5.3-10.x86_64.rpm
  • ImageMagick-c++-devel-6.5.3-10.x86_64.rpm
  • ImageMagick-devel-6.5.3-10.x86_64.rpm
  • ImageMagick-doc-6.5.3-10.x86_64.rpm
  • ImageMagick-perl-6.5.3-10.x86_64.rpm

古いバージョンのパッケージを yum remove してやってから新しいパッケージをインストールしました。

PECL::Imagick を導入する

ImageMagick がインストールされたので、次は PHP から簡単に使うための API を提供する PECL::Imagick を導入します。

これはコマンド一発なのでかなり簡単。

# pecl install imagick

エラーが出なければ、php.ini にモジュール読み込むための記述

extension=imagick.so

を追記して Apache を再起動すればOK。ここはハマらないで済みましたよ。

Imagick で遊んでみる

まずは練習がてらいくつか画像を作ってみました。

とまぁ、四苦八苦しながらそれなりにできるようになりました。まだ全然理解できてないので試行錯誤でやっているのですが、表現力の高さは嫌でも感じられますね。というか、マニュアル見た段階で、(;゚Д゚) な感じなのですががが。

お次の段階としては、WordPress のプラグインの WP-tegaki の GD を使っている部分を Imageck に置き換えるのをやってみたいかな。

  1. 現時点の最新バージョンは 6.5.7-4 だったり []

Postfix の SPF 対応

Postfix でSPF に対応しようと思い作業したメモ。

受信側の設定

参考にしたサイトはTATSUYA.info – サーバ構築関係/PostfixでSPF/DomainKeysに対応/SPF(C) で、ここに書かれている手順に従ってlibspf2 と Policyd を導入すれば問題なく利用できるようになりました。導入した環境は、Vine 3.2 + Postfix 2.2.5 。

有効に動作していると、受信した際にメールのヘッダに、

Received-SPF: pass (mail.u-1.net: domain of bounces.amazon.com designates 207.171.188.8 as permitted sender) client-ip=207.171.188.8; envelope-from=emailSenderApp+EQH00H53JNFR-1RSXYQ8ODI5X5-9R2G7HIGYP8U@bounces.amazon.com; helo=mm-retail-out-103.amazon.com;

みたいな情報が追加されるようになります。受信する側の設定はこんなもので。必要に応じてSpamAssassin とかのルールを追加して、passした際のスコアを減じるなどしてやるとよろしいかと。

送信側の設定

Postfix の設定ではないけれども、送信する側は、DNSのレコードを適切に追加してやる必要があるということです。この辺、ややこしくて、完全に理解し切れてないけれども、ウチのようにシンプルな構成のネットワークならば、

u-1.net. IN TXT "v=spf1 ip4:124.41.72.8 ~all"

というようなTXTレコードを追加してやればOK。実際に、dig コマンドなどで確認すると、

$ dig @ns1.u-1.net u-1.net txt

; <<>> DiG 9.3.2-P2 <<>> @ns1.u-1.net u-1.net txt
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18410
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 1

;; QUESTION SECTION:
;u-1.net.                       IN      TXT

;; ANSWER SECTION:
u-1.net.                86400   IN      TXT     "v=spf1 ip4:124.41.72.8 ~all"

;; AUTHORITY SECTION:
u-1.net.                86400   IN      NS      ns1.everydns.net.
u-1.net.                86400   IN      NS      ns2.everydns.net.
u-1.net.                86400   IN      NS      ns3.everydns.net.
u-1.net.                86400   IN      NS      ns4.everydns.net.
u-1.net.                86400   IN      NS      ns.maihama-net.com.
u-1.net.                86400   IN      NS      ns1.u-1.net.

;; ADDITIONAL SECTION:
ns1.u-1.net.            86400   IN      A       124.41.72.8

;; Query time: 44 msec
;; SERVER: 124.41.72.8#53(124.41.72.8)
;; WHEN: Fri Feb 23 13:49:29 2007
;; MSG SIZE  rcvd: 212

というように、TXTレコードの追加が確認できます。

実際に設定が適当かどうかは、check-auth@verifier.port25.com 宛へメールを送信すると、チェックして結果を送り返してくれます。ウチの場合、どうもDNS 情報の更新が完了してないようで、まだneutral が帰されるのですが、テストメールを送信すると、受信側ではしっかりPass になっているので、とりあえずは良いのかな、と。

Amavisd-new との併用でトラブった?

バージョンがやや古めのAmavisd-new を稼働させていた環境だと、

Feb 23 14:16:18 host amavis[30504]: (27164-05) run_command: child process [30504]: Error closing main::stdin: \311\324\300\265\244\312\245\325\245\2
41\245\244\245\353\265\255\275\322\273\322\244\307\244\271 at /usr/sbin/amavisd line 1879.\n
Feb 23 14:16:18 host amavis[27164]: (27164-05) TROUBLE in check_mail: parts_decode_ext FAILED: parsing file(1) results - missing last 1 results at (
eval 40) line 154.
Feb 23 14:16:18 host amavis[27164]: (27164-05) PRESERVING EVIDENCE in /var/amavis/tmp/amavis-20070223T141618-27164

のようなエラーがmaillog に記録され、キューも大変なことになりかけました。

私の環境ではMOX – Take It Eazy! 配布の日本語版を使用しているので、そちらから最新のアーカイブをダウンロードして、導入したら解消しました。

$ wget http://marijuana.ddo.jp/download/amavisd-new-2.4.3-JP.tgz
$ gtar xvzf amavisd-new-2.4.3-JP.tgz
$ cd amavisd-new-2.4.3-JP
$ sudo sh amavisd_install.sh update perl

update perl をパラメータとしてamavisd_install.sh に渡してやると、Amavisd-new 本体および、使用するPerlのモジュールが更新されるます。エラー内容からすると、Amavisd-new 本体のバグがあったのかな?

Vine3.2 で APC の UPS APC CS 500 を監視する

UPSをAPCのCS 500に交換したので、せっかくだから状態を監視するようにApcupsdをインストールしてみました。

USBでの使用については、UPSとPCを付属のケーブルで接続したときに、

$ dmesg
・
・
・
hub.c: new USB device 00:1d.2-2, assigned address 2
hiddev0: USB HID v1.10 Device [American Power Conversion APC CS 500 FW:28.h11.A USB FW:h11] on usb3:2.0

となってればとりあえず、認識はしてくれてるようですな。

いざ、Apcupsdのインストール。

Apcupsd, a daemon for controlling APC UPSesからソースを取得。

$ wget http://downloads.sourceforge.net/apcupsd/apcupsd-3.13.12.tar.gz?modtime=1169920465&big_mirror=0
$ gtar xvzf apcupsd-3.13.12.tar.gz
$ cd apcupsd-3.13.12
$ ./configure --enable-cgi --enable-usb
$ make
$ sudo make install
$ sudo cp platforms/unknown/apcupsd /etc/rc.d/init.d/

コンパイルオプションとして、CGIプログラムの作成とUSB使用を指定。

インストール後は、/etc/apcupsd/apcupsd.confを編集。当該の項目を

DEVICE /dev/ttyS0
↓
UPSCABLE usb

UPSTYPE apcsmart
DEVICE /dev/ttyS0
↓
UPSTYPE usb
DEVICE

と書き換えて、/etc/rc.d/init.rd/apcupsd start でデーモンを開始。

UPSの状態についてはデーモン起動中に/sbin/apcaccess を実行すると、

# /sbin/apcaccess
APC      : 001,043,1049
DATE     : Wed Feb 07 13:17:10 JST 2007
HOSTNAME : example.com
RELEASE  : 3.13.12
VERSION  : 3.13.12 (27 January 2007) unknown
UPSNAME  : example.com
CABLE    : USB Cable
MODEL    : APC CS 500
UPSMODE  : Stand Alone
STARTTIME: Wed Feb 07 13:02:22 JST 2007
STATUS   : ONLINE
LINEV    : 000.0 Volts
LOADPCT  :  19.0 Percent Load Capacity
BCHARGE  : 098.0 Percent
TIMELEFT :  51.5 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 100.0 Volts
SENSE    : Medium
DWAKE    : 000 Seconds
DSHUTD   : 000 Seconds
LOTRANS  : 000.0 Volts
HITRANS  : 000.0 Volts
RETPCT   : 000.0 Percent
ITEMP    : 29.2 C Internal
ALARMDEL : Always
BATTV    : 13.6 Volts
LINEFREQ : 50.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x07000008 Status Flag
SERIALNO : QB0642140634
BATTDATE : 2006-10-10
NOMOUTV  : 000
NOMINV   : 100
NOMBATTV :  12.0
FIRMWARE : 28.h11.A USB FW:h11
APCMODEL : APC CS 500
END APC  : Wed Feb 07 13:17:15 JST 2007

ずらーっと表示されるのでそれで確認できます。

CGIでの監視

--enable-cgiオプションを付けてコンパイルすると、/etc/apcupsd 以下に*.cgiなファイルができるので、それをWeb公開ディレクトリの任意の場所にコピーしてアクセスすればWebブラウザから状態が確認できます。

参考サイト

PS3 Linuxの実力の片鱗が見えた?

YouTube – Marvel Vs Capcom for MAME on PS3 linux

SUGEEEEEEEE!! 結構まともな速度で動いてるYO!

そして、2chのLinux板内【CELL】PS3 Linux Part 3【Fedora Core5】では、QEMUを使ってWindows95を動かし、Diabloやら

Diablo

WhiteAlbumやら

WhitAlbum

ToHeartやら動かす猛者まで出現。

ToHeart

(ごく一部で)盛り上がって参りました(笑)*1

  1. スクリーンショットは該当スレの画像を転載してます。 []

Linuxからシリアルポート接続でRTX1500の設定を行う

ルータの設定をする必要ができたのだけれど、自由になる端末でシリアルポートが付いているのがLinux機だけだったので、ちょっと調べてみました。Windows接続ならハイパーターミナルで楽勝なのになぁ。

とりあえず、minicomというプログラムがあるようなので、Vineでも利用できるか探してみる。

$ apt-cache search minicom
minicom – friendly menu driven serial communication program

あったのでインストール。

# apt-get install minicom
パッケージリストを読みこんでいます… 完了
依存情報ツリーを作成しています… 完了
以下のパッケージが新たにインストールされます:
minicom
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
293kB のアーカイブを取得する必要があります。
展開後に 768kB のディスク容量が追加消費されます。
取得:1 http://updates.vinelinux.org 3.2/i386/extras minicom 2.1-0vl1 [293kB]
293kB を 2s 秒で取得しました (123kB/s)
変更を適用しています…
準備中… #################################### [100%]
1:minicom #################################### [100%]
完了

とりあえず、$ minicom -sでminicomの設定をして*1、それから$ minicomで起動。あとは普通にルータに繋がるので適当に設定すればよろし。なんか余計なATコマンド送信したようで、ルータに怒られたけど気にしなーい。

  1. ポートの速度設定を9600bpsに変更しただけ。 []

Home > Tags > Linux

応援中
サイト内検索
フィード
メタ情報
広告
ブログパーツ
あわせて読みたい フィードメーター - MOMENTS

Return to page top