8月 01

CentOS6にRPMforgeを導入する

CentOS6は5と同じ要領では正常に進めません。
当然ですね、メジャーバージョンが違いますから。
簡単なパスの変更ですが、一応記録しておきます。

まずは、リポジトリのインストール

yum -y install yum-priorities
yum -y install yum-plugin-priorities

次に、リポジトリ設定ファイルの編集
vi /etc/yum.repos.d/CentOS-Base.repo
各セクションの末尾に
#add
priority=1

を追加。

GPGキーをインストール

wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt

ここからがCentOS5と異なります。
RPMforgeリポジトリのインストール
64bitの場合

http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-1.el6.rf.x86_64.rpm


32bitの場合

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-1.el6.rf.i686.rpm
rpm -ivh rpmforge-release-0.5.2-1.el6.rf.i686.rpm

そして最後にyumをアップデート
yum -y update rpmforge-release

これで、RPMforgeのお世話になれます。
でめたし、でめたし。

7月 31

CentOS6をネットワーク経由でインストールしようとして手が止まる

新しく鯖を手に入れました。
ウェブ鯖用なので、OSはCentOS6の64bitを選びました。
CentOS6の32bitはDVD1枚ですが、64bitはDVDで2枚になってしまうため、ネットワーク経由でインストールすることにしました。
ブートはUSBで、ネットワークインストールのISOをダウンロードしてブートイメージを書き込みます。
ブートするまでは特に問題ないでしょう。
インストールデバイスを選択する画面で手が止まりました。
見慣れたメニューと少し違います。
ローカルCD/DVD
ハードドライブ
NFSイメージ
FTP
HTTP
の、
FTPとHTTPがなくて、URLとなっています。
まぁ、想像は付くのですが、選択するとTCP/IPの設定画面が現れ、さらに進みます。
今までは、サイト名とディレクトリが分かれていましたが、URLを入力しろと言われます。
ここでhttpまたはFTPのプロトコルからの入力が必要になっています。
ま、大した変更ではありませんが、あえて統一した理由もよくわかりませんが。
そのあとはたぶん同じです。
変更があったかもしれませんが、その画面を利用するような設定ではなかったので。

7月 13

待望のCentOS6をインストールしてみた

これまでサーバ用途にはCentOS一択でお世話になっています。
RedHatが6になり、6.1も出るのに、CentOSは6のアナウンスが全然ないとか、中心メンテナが離脱してScientificLinuxへの移行を勧めているとか、物騒な情報も流れ迷走している感じがしなくもありませんでした。

そんな中でいよいよリリースされたCentOS6。
早速、余っているPCにインストールしてみました。
デザインや設定画面がちょっと変更になっていましたが、インストール自体は特に問題なく完了。
再起動して、yumでアップデートして、再起動して、特に問題はなさそうでした。
個人的な利用範囲での大きな変更は、PHPが5.3になってたり、Perlが5.10になってたりしているぐらいでしょうか。
これといって問題になりそうな更新もないので、今後はCentOS6のお世話になろうと思います。

2月 17

FTPでPASVの設定を忘れていた

SaaSesでVPSを借りています。
新しいシステム用にちょっとだけランクのいいサービスを契約しました。
そのシステムのバックアップでFTP経由でファイルをミラーリングしていたのですが、接続がブチブチ切れて大きなファイルをダウンロードできない現象が頻発していました。
VPSに入れていたFTPサーバはProFTPDです。
しばらく放置していたのですが、FTPクライアントのソフトを見ていて気がつきました。PASVモード接続にチェックが入っていませんでした。
そこでチェックを入れてみたものの、ログインしてもリストを取得できない、これはファイアウォールの設定か何かかと思って眺めていても、埒が明きません。
よくよく調べてみると、PASVモード用にポート番号を設定する必要があると判明。
SaaSesのVPSはWebminで管理できますが、Webminの管理ツールからPASVモードの設定は1.530の現在では出来ないようです。
なので、設定ファイル編集より直接編集します。
最後に

# PASVモードで使用可能なポート番号範囲
PassivePorts 7030 7050

とおまじないを書いて保存、適用します。
さらに、Linuxファイアウォールで該当のポートを空けて適用すればPASVモードで接続が出来るようになりました。
でめたし、でめたし。

そういえば、回線のせいかもとツイートした気がします。日本ラッドさん、ごめんなさい。

1月 23

TCPDFでOTFフォントを使用する

PHPでPDFを扱うためのライブラリにTCPDFがあります。
TCPDFでOTFフォントを使用すると、AcrobatReaderでは正常に読めても、Illustratorで正常に読めず、テキストがラスタライズされて少々気持ちの悪い事態に遭遇することとなります。
Illutratorで開くことを想定しているなら、TCPDFで扱うフォントには少々の工夫が必要なので、ここに残しておきます。

まず、TCPDFで扱うフォントはTTFフォントで統一します。フォント名が同じであればTTFで作成したPDFでも、OTFフォントがインストールされた環境のIllustratorでも問題なく読むことが出来ます。

OTFフォントをTTFフォントに変換するにはFontForgeを使用します。
インストール方法を検索すると、Windowsのcygwin環境下でのインストール方法が沢山ヒットしますが、個人的にはうまくいかなかったので、LinuxのCentOS5を使用しました。アプリケーションはGUIでx11環境が必要なので、デスクトップ版を用意しましょう。
パッケージはhttp://sourceforge.net/projects/fontforge/files/fontforge-executables/から「fontforge-20090923-1.i386.rpm」をダウンロードします。少々古いものですが、特に問題ありません。ダウンロードが終わると、ファイルをダブルクリックするだけでインストールが始まり、あっさりと完了します。

アプリケーションはGUIなのですが、メニューには登録されませんのでファイルを直接起動するか、ターミナルから起動する必要があります。ターミナルで「fontforge」と入力して起動すると、読み込むファイルを要求されるのでTTFフォントに変換したいOTFフォントを選択します。

選択したOTFファイルの内容によってはCIDマップファイルが必要と言われるかもしれません。CIDマップファイルはhttp://fontforge.sourceforge.net/cidmaps.tgzにありますので、ダウンロードして展開したファイルを「/usr/share/fontforge/」にコピーします。

しばらくして読み込みが完了すると文字コード表が表示されるので、メニューより「CID>単一化」を選択してファイルを統合します。
そしてメニューより「ファイル>フォントを保存」を選択して、保存形式を「TrueType」に設定し、保存ファイル名を入力して保存すれば完了です。
これで変換作業は完了です。作成されたTTFファイルを開いて正常に読み込むことができれば成功です。

フォントファイルをTCPDFで扱える状態にする方法は、ライブラリ内のtcpdf/fonts/utils/README.TXTにある通りで問題ありません。むしろ他に方法がありません。
「$ ttf2ufm -a -F myfont.ttf」
「$ php -q makefont.php myfont.ttf myfont.ufm」
これで作成されたファイルをfontsディレクトリにコピーし、TCPDFよりPDFを作成すればAcrobatReaderでもIllustratorでも問題なく開くことが出来るPDFファイルの完成です。

いまいち文章が推敲されていないのでまとめます。

TCPDFはPDF作成ライブラリですごい
TCPDFのPDFはOTFフォントを使うとIllustratorでは読めない(ラスタライズされる)ことがある
TCPDFのPDFをIllustratorで読む可能性があるならOTFフォントをTTFフォントに変換しておく
OTFフォントをTTFフォントに変換するにはFontForgeを利用する
CIDマップがないとOTFファイルを展開できない(ことがあるかもしれない)

9月 12

Windows7にもてあそばれる

一通り入れた後に、MySQLを入れ忘れたのに気がついて入れてみたところ、PHPからアクセスできない。実際にはphpMyAdmin3からアクセスできない。エラーメッセージも表示されず、1分ぐらい待たされて方真っ白な画面になってしまう。
コマンドからは問題なくアクセスできるものの、mod_phpからアクセスできない。
このときのPHPは5.3.3、MySQLは5.1.50(64bit)でした。
httpd.confやphp.iniやmy.iniをいじっては見たものの改善せず。
ここで不貞寝しました。

そして翌日。
まず最初にMySQLをノーマルからエッセンシャルに入れ替えたり、32bitにしたりバージョンを入れ替えたりしたけれどうまくいかない。PHPを入れる際にVCのライブラリを更新したのでそれに問題があるのではと考え、仕方がなくWindows7を入れなおすことに。

とりあえずWindows7を上書きでインストールしなおしてみたところ、前のシステムが複製されて残っていて、とっても気持ちが悪い状態に。仕方がないので改めてパーティションをフォーマットしなおしてから、改めて入れなおすことに。

まず最初にMySQL5.1.50(64bit)を入れて、次にApache2.2.16、そしてVCを更新せずにPHP5.3.3を入れなおしてみたところ、やはり現象は同じ。
ここでふとPHPのインストーラーにVCの対象を選択する新しい項目があったのを思い出して、前のバージョンで試してみようと思い立ちました。
PHP5.2.14を入れなおしたところ、zlib.dllがないといわれるのでネットから拾ってきて放り込んだところ、難なく起動。

問題だったのはPHP5.3.3.
データベースとの連携が高いはずのPHPで、このような障害が発生しました。
何でもかんでも組み込み関数にしてしまったPHPの成れの果てを垣間見た気がしました。

結局それ以外では、ActivePerlを64bitにするとMinGWと連携できないようなので、32bitで入れなおしたぐらいで、特に大きな問題もなく開発環境は整いました。
あとはデータを移していくだけです。これもかなり面倒なのですが。

7月 20

CentOS5.5に最新のImageMagickをソースからインストールする

CentOS5.5のシステムをセットアップしていました。
yumからシステムを一通りアップデートしてから、PerlをCPANでモジュール群を更新したのですが、Image::Magickを入れようとしたところ、force installにしてもNOT OKとなり、インストールできませんでした。
これはImageMagickのバージョンとPerlの(コアなモジュール)バージョンとの依存の影響と思われ、Windowsの場合はImageMagickとActivePerlのバージョンは細かく指定されています。
Linuxの場合は自動で依存を解消してくれるものと思っていましたが、どうやらダメだったようです。
ImageMagickのために、別のディストリを入れなおすことも考えましたが、それではあまりにも情け無いので、だめもとで手動でソースからコンパイルしてインストールに挑戦しました。

まずはソースの取得


[root@localhost ~]# wget ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
--2010-07-20 15:44:05--  ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
=> `ImageMagick.src.rpm'
ftp.kddilabs.jp をDNSに問いあわせています... 192.26.91.193
ftp.kddilabs.jp|192.26.91.193|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD /graphics/ImageMagick/linux/SRPMS ... 完了しました。
==> SIZE ImageMagick.src.rpm ... 8747108
==> PASV ... 完了しました。    ==> RETR ImageMagick.src.rpm ... 完了しました。
長さ: 8747108 (8.3M)

100%[======================================>] 8,747,108   3.39M/s 時間 2.5s

2010-07-20 15:44:08 (3.39 MB/s) - `ImageMagick.src.rpm' へ保存終了 [8747108]

検索してヒットするサイトの中にはURLが「kddilabs」ではなく「kddlabs」とありますが、どちらでもいい(?)みたいです。こちらの環境でkddlabsはDNS解決できませんでしたがkddilabsでは通りました。

ここからsrc.rpmを取得して展開します。
コマンドなら次の通り

[root@localhost ~]# rpm -ivh –nomd5 ImageMagick.src.rpm
1:ImageMagick 警告: ユーザ cristy は存在しません – root を使用します
警告: グループ cristy は存在しません – root を使用します
########################################### [100%]
警告: ユーザ cristy は存在しません – root を使用します
警告: グループ cristy は存在しません – root を使用します

同じ階層に「_FILES」という文字が追加されたディレクトリがあるはずなので、移動します。


[root@localhost ~]# cd ImageMagick.src.rpm_FILES
[root@localhost ImageMagick.src.rpm_FILES]# ls
ImageMagick-6.6.3-0.tar.bz2  ImageMagick.spec

とりあえずビルドしてみます。


[root@localhost ImageMagick.src.rpm_FILES]# rpmbuild -ba ImageMagick.spec
エラー: ビルド依存性の失敗:
libtiff-devel は ImageMagick-6.6.3-0.i386 に必要とされています
giflib-devel は ImageMagick-6.6.3-0.i386 に必要とされています
perl-devel >= 5.8.1 は ImageMagick-6.6.3-0.i386 に必要とされています
ghostscript-devel は ImageMagick-6.6.3-0.i386 に必要とされています
djvulibre-devel は ImageMagick-6.6.3-0.i386 に必要とされています
libwmf-devel は ImageMagick-6.6.3-0.i386 に必要とされています
jasper-devel は ImageMagick-6.6.3-0.i386 に必要とされています
libtool-ltdl-devel は ImageMagick-6.6.3-0.i386 に必要とされています
lcms-devel は ImageMagick-6.6.3-0.i386 に必要とされています
librsvg2-devel は ImageMagick-6.6.3-0.i386 に必要とされています

いろいろと足らないと文句を言われました。
とりあえずyumで片っ端から入れていきます。


[root@localhost ImageMagick.src.rpm_FILES]# yum install libtiff-devel giflib-devel perl-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel lcms-devel librsvg2-devel

進捗は省略します。
最終的に次の3つが残ります。

perl-devel >= 5.8.1 は ImageMagick-6.6.3-0.i386 に必要とされています
djvulibre-devel は ImageMagick-6.6.3-0.i386 に必要とされています
jasper-devel は ImageMagick-6.6.3-0.i386 に必要とされています

まず、「perl-devel」はcentOS5.5ではperlに頭語されているらしいので不要です。
specファイルの15行目(辺り)にあるperl-develを削除またはコメントアウトします。

次に、「djvulibre-devel」はリポジトリ「RPMForge」または「Dag」を利用してインストールします。
導入方法は検索するなどして調べてください。
大量に解説サイトがあるので省略します。

最後に、「jasper-devel」は「http://dev.centos.org/centos/5/testing/i386/RPMS/」にCentOS5用のRPMがあります。他のサイトにある通常のel5.i386のrpmは依存解消できずにインストールできませんでした。

これら3つが解決すれば晴れてImageMagickのコンパイルが開始できます。


[root@localhost ImageMagick.src.rpm_FILES]# rpmbuild -ba ImageMagick.spec

かなり時間がかかります。
問題なく終われば、以下の場所にrpmが生成されます。


[root@localhost redhat]# cd /usr/src/redhat/RPMS/i386
[root@localhost i386]# ls
ImageMagick-6.6.3-0.i386.rpm            ImageMagick-devel-6.6.3-0.i386.rpm
ImageMagick-c++-6.6.3-0.i386.rpm        ImageMagick-doc-6.6.3-0.i386.rpm
ImageMagick-c++-devel-6.6.3-0.i386.rpm  ImageMagick-perl-6.6.3-0.i386.rpm
ImageMagick-debuginfo-6.6.3-0.i386.rpm

ここまで来れば(おそらく大丈夫です。


[root@localhost i386]# rpm -Uvh ImageMagick-*
準備中...                ########################################### [100%]
1:ImageMagick            ########################################### [ 14%]
2:ImageMagick-c++        ########################################### [ 29%]
3:ImageMagick-perl       ########################################### [ 43%]
4:ImageMagick-debuginfo  ########################################### [ 57%]
5:ImageMagick-devel      ########################################### [ 71%]
6:ImageMagick-c++-devel  ########################################### [ 86%]
7:ImageMagick-doc        ########################################### [100%]
[root@localhost i386]# convert -version
Version: ImageMagick 6.6.3-0 2010-07-20 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features: 

でめたしでめたし。お疲れ様でした。

12月 16

CentOS5.4のGUIをVNCでリモート操作する

SSHも便利なのだろうが、クライアントの設定も必要なので使ってない。
基本的な設定などはWebminですむので特に問題はないが、あえてGUIで操作したいときにはVNCが重宝する。
自宅のネットワークにあるLinuxは全てVNCで操作しているが、たとえば手元にない場合、VNCを使うにはどうすればいいのか試してみた。
Google先生が教えてくれたサイトの情報は古いものやどうでもいい質問掲示板などがヒットして、はっきりいって役にたたなかった。

まずVNCの基本からおさらい。
通常はVNCうを使ったリモートデスクトップ機能でログイン中のユーザの画面をそのまま扱えるが、これはログインしていなければならない。うっかり再起動したものなら、このリモートデスクトップ機能は使えなくなり、まったく操作できなくなってしまう。
そこで、リモートからログイン自体が可能にならなければならない。

とりあえず「vncserver」と入力してvncserverを起動してみると、初回ならパスワードを設定するよう求められる。
よくわからないまま放置しているがユーザごとにパスを変えられるのかはよくしらない。

次に、起動方法の設定を行う
ディスプレイ番号1をrootでログインする場合、「/etc/sysconfig/vncservers」に以下のように追加する

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"


あらかじめコメントアウトされている2行をコピーして数値を書き換えるだけで問題ないだろう。
それでサービスを再起動する

/etc/init.d/vncserver restart

VNCサーバーの起動に成功すれば、手順として7割終了といってもいいだろう。
複数のディスプレイをサービスで起動する方法が良くわからないので、誰か教えてください。

ちなみに0はリモート用に予約されているのか使えないので1からとなる(みたい)
アクセスするにはこのディプレイ番号に5900を足したポートに接続することになる。
つまり1なら5901ポートなので、ファイアウォールの穴を開けるのを忘れないようにする。
オプションいついては良くわからないのでそのままにしてある。(だめじゃん)
かいても最後の番号が有効になるらしい。

さて、ここでVNC Viewerでリモート接続してみる。
サーバのIPが192.168.11.2だとすると「192.168.1.2:5901」で接続する。
接続できればパスワードを求められるので入力するとログインできる。
しかし、GNOMEになれているとTwmという見慣れないGUIが表示される。
GUIなので、ターミナルからコマンドを入れれば何でも起動するのだけれど、メニューがほしい。
というかGNOMEが使えればというか使えないと意味がないので、使えるようにする。

今までの設定はVNC Serverへのログインで、そのユーザではどう表示するかの設定をする必要がある。
通常と同じにしてくれればいいのに、いちいち設定しないとだめなのは少し面倒くさい。(やり方があるのかも?)
設定ファイルは「/root/.vnc/sstartup」にあるが、隠しファイルを表示しないと見えないので注意。
「twm &」とある行をコメントアウトして「gnome-session &」と追加する。

結論から言えばここまでで成功ですが、これより理解できないことが多いので箇条書きに書いておく。

GNOMEでログインできるのは1プロセスのみ?
すでにrootでログインしていてGNOMEを使っているとVNCではGNOMEが使えないので、twmの出来損ないのような画面になる。(「twm &」に戻せばtwmで正常になる)
ログインs知恵いるユーザをログアウトさせても、GNOMEが使えない状態が残る。
システムをリブートして誰もログインせずにリモートからつなごうとすると5901ポートではなく5900ポートでリモートから接続できるようになっている。そしてGNOMEが使える。さらに、直接ログインするとそのデスクトップのリモート機能は使えない。つまり、先にリモートでログインしてしまうとリモートデスクトップ機能はしぬ。しかも、うっかりリモートをログアウトするとリモートからは永久にログインできなくなる・・・

つまり、リモートでログインしたければ、直接ログインしてはならない、うっかりログインしてしまった場合は、一度ログアウトしてログインしなおしてリモートデスクトップ機能で共有するしか方法がないようです。

この現象はGNOMEを選択した場合に限られ、twmのままであれば関係ないようです。

ちなみにユーザが違う場合は・・・やっぱり同じ現象でだめでした。
つまり・・・どういうことだ?
SSHじゃないと誰もログインしていないマシンをリモートで操作することはできないのか?
な訳ないよな・・・
だんだん混乱してきた。

vncserversの設定でroot以外を設定するとリモートからのログインができなくなった。
これはrootでvncserverを起動したからで、ほかのユーザでログインするにはそのユーザでvncserverを起動してパスワードを設定しなければならないようだ。
つまり、rootユーザ限定の前提で考えた場合、
rootでvncserverのパスを設定する。
vncserversの設定はパス設定済みのユーザを指定しなければならない。
vncserversで設定したユーザで一度ログインしてしまうとリモート系の機能は麻痺する(らしい)

う~ん、わかったようなわからないままのような。
まぁ、リモートで操作する前提なら直接ログインすることはないだろうから・・・
でもいざというときが怖いですね。やっぱりSSH入れろってか?orz=3

12月 16

CentOS5.4でCPANを更新すると警告が大量に出た

えらいことになった。
とりあえずTerm::ReadKeyを入れればいいらしい

[root@localhost ~]# cpan
Sorry, we have to rerun the configuration dialog for CPAN.pm due to
some missing parameters...

Normally CPAN.pm keeps config variables in memory and changes need to
be saved in a separate 'o conf commit' command to make them permanent
between sessions. If you set the 'auto_commit' option to true, changes
to a config variable are always automatically committed to disk.

 
Always commit changes to config variables to disk? [no] 

A Build.PL is run by perl in a separate process. Likewise we run
'./Build' and './Build install' in separate processes. If you have any
parameters you want to pass to the calls, please specify them here.

Typical frequently used settings:

    --install_base /home/xxx             # different installation directory

 
Parameters for the 'perl Build.PL' command? [] 

Parameters for the './Build' command? Setting might be:

    --extra_linker_flags -L/usr/foo/lib  # non-standard library location

 
Your choice: [] 

Do you want to use a different command for './Build install'? Sudo
users will probably prefer:

    su root -c ./Build
 or
    sudo ./Build
 or
    /path1/to/sudo -u admin_account ./Build

 
or some such. Your choice: [./Build] 

Parameters for the './Build install' command? Typical frequently used
setting:

    --uninst 1                           # uninstall conflicting files

 
Your choice: [] 



Please remember to call 'o conf commit' to make the config permanent!

Constant subroutine __USE_POSIX undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 8,  line 5.
Constant subroutine __USE_POSIX2 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 9,  line 5.
Constant subroutine __USE_POSIX199309 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 10,  line 5.
Constant subroutine __USE_POSIX199506 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 11,  line 5.
Constant subroutine __USE_XOPEN undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 12,  line 5.
Constant subroutine __USE_XOPEN_EXTENDED undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 13,  line 5.
Constant subroutine __USE_UNIX98 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 14,  line 5.
Constant subroutine __USE_LARGEFILE undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 16,  line 5.
Constant subroutine __USE_LARGEFILE64 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 17,  line 5.
Constant subroutine __USE_FILE_OFFSET64 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 18,  line 5.
Constant subroutine __USE_BSD undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 19,  line 5.
Constant subroutine __USE_SVID undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 20,  line 5.
Constant subroutine __USE_MISC undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 21,  line 5.
Constant subroutine __USE_GNU undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 23,  line 5.
Constant subroutine __USE_REENTRANT undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 24,  line 5.
Constant subroutine _POSIX_SOURCE undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 49,  line 5.
Constant subroutine _POSIX_C_SOURCE undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 51,  line 5.
Constant subroutine _XOPEN_SOURCE undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 53,  line 5.
Constant subroutine _XOPEN_SOURCE_EXTENDED undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 55,  line 5.
Constant subroutine _LARGEFILE64_SOURCE undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 57,  line 5.
Constant subroutine _LARGEFILE_SOURCE undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 104,  line 5.
Constant subroutine __USE_ISOC99 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 108,  line 5.
Constant subroutine __GNU_LIBRARY__ undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 156,  line 5.

cpan shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.

                                                                                Can't ioctl TIOCGETP: 無効な引数です
Consider installing Term::ReadKey from CPAN site nearby
        at http://www.perl.com/CPAN
Or use
        perl -MCPAN -e shell
to reach CPAN. Falling back to 'stty'.
        If you do not want to see this warning, set PERL_READLINE_NOWARN
in your environment.


どうやらTerm::ReadKeyというものが必要なようなので、いれてみる。

cpan[1]> install Term::ReadKey
CPAN: Storable loaded ok (v2.15)
Going to read '/root/.cpan/Metadata'
  Database was generated on Tue, 15 Dec 2009 08:56:54 GMT
Running install for module 'Term::ReadKey'
Running make for J/JS/JSTOWE/TermReadKey-2.30.tar.gz

  CPAN: checksum security checks disabled because Digest::SHA not installed.
  Please consider installing the Digest::SHA module.

CPAN: Time::HiRes loaded ok (v1.9717)
Scanning cache /root/.cpan/build for sizes
............................................................................DONE
CPAN: Compress::Zlib loaded ok (v1.42)
CPAN: Archive::Tar loaded ok (v1.54)
TermReadKey-2.30/
TermReadKey-2.30/genchars.pl
TermReadKey-2.30/Makefile.PL
TermReadKey-2.30/Configure.pm
TermReadKey-2.30/test.pl
TermReadKey-2.30/ReadKey.pm
TermReadKey-2.30/META.yml
TermReadKey-2.30/ReadKey.xs
TermReadKey-2.30/ppport.h
TermReadKey-2.30/MANIFEST
TermReadKey-2.30/README
CPAN: File::Temp loaded ok (v0.22)
CPAN: YAML loaded ok (v0.70)

  CPAN.pm: Going to build J/JS/JSTOWE/TermReadKey-2.30.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Term::ReadKey
cp ReadKey.pm blib/lib/Term/ReadKey.pm
AutoSplitting blib/lib/Term/ReadKey.pm (blib/lib/auto/Term/ReadKey)
/usr/bin/perl -I/usr/lib/perl5/5.8.8 genchars.pl

Writing termio/termios section of cchars.h... Done.
Checking for sgtty...
        Sgtty NOT found.
Writing sgtty section of cchars.h... Done.
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -noprototypes -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap  ReadKey.xs > ReadKey.xsc && mv ReadKey.xsc ReadKey.c
gcc -c   -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSION=\"2.30\" -DXS_VERSION=\"2.30\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE"   ReadKey.c
/bin/sh: gcc: command not found
make: *** [ReadKey.o] エラー 127
  JSTOWE/TermReadKey-2.30.tar.gz
  /usr/bin/make -- NOT OK
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible
Failed during this command:
 JSTOWE/TermReadKey-2.30.tar.gz               : make NO


makeに失敗しました。
しかたがないのでyumからいれてみることに

[root@localhost ~]# yum install perl-Term-ReadKey
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: rsync.atworks.co.jp
 * base: rsync.atworks.co.jp
 * extras: rsync.atworks.co.jp
 * updates: rsync.atworks.co.jp
Setting up Install Process
No package perl-Term-ReadKey available.
Nothing to do

orz=3
えっと、あとはどうすればいいんだろう?

11月 21

Vine5でwebminを使う

Linuxha今までCentOSを使ってきていて、設定やパスなどはredhat系のものが頭に入ってました。
今回Vine5というdebian系のマシンをいじろうと思い立ち、インストールしてwebminを入れると微妙に違う。
とりあえずApache2が見つからないといわれて、設定ファイルを見るとパスが違うらしい

/etc/httpd → /etc/apache2
/usr/sbin/httpd → /use/sbin/apache2

ということらしい
ほかにも、起動コマンドを自動に変更しないとコマンドが違うと怒られました。