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

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
えっと、あとはどうすればいいんだろう?

Thunderbirdが使いにくくなった気がする

THunderbirdとはフリーのメーラです。Vistaになってからoutlookではなくこっちを使っています。
ver3がリリースされてすぐに入れ替えてしばらく使ってみました。
送信フォルダのアイコンの変更にはあえて触れない(←いや触れてるだろ)として、
新機能のタブは、ウィンドウを並べられなくなったので見比べながら入力することができなくなったので不便。
フォルダの表示法もすべてのフォルダ以外使い方勝手がいまいち(やりたいことはわかるけどもう少しどうにかならなかったのかと)で不要。
メールを複数選択したときのスレッド表示は、まとめて選択するのって一括削除前提の操作なのでインデックスを作ったり一度に内容を表示したりする処理が無駄でちと重いし、設定で変更もできなさそう。
全体的な動作についてのver2のモッサリ感はなくなったので、操作的にはいらない機能が増えたけど、使用的には良くなったのかもしれない。

CentOSのFirefoxでFLASHを使えるようにする

Firefoxには自動的にアドオンやらプラグインやらを追加する機能がありますが、CentOSではFLASHのプラグインをダウンロードするものの導入に失敗し、手動で入れても失敗します。
Adobeのサイトからtar.gzのファイルを落として回答すると「libflashplayer.so」ファイルがあるので、「/usr/lib/mozilla/plugins」にコピーしてfirefoxを再起動すると何事もなかったように動き始めます。
さて、これでサイトのスクリーンショットの機能を試しますか、これでWindowsのcrenaから開放されるのかな?このソフトのためにクローラーにWindowsが必要だったのだけど。

Vine5でwebminを使う

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

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

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

ヘッダ出力に手を抜いてハマる

PHPでの話です。といっても、PHPに限った話ではなさそうですが。
サーバでスクリプトを経由してファイルをダウンロードさせるには、Content-Typeさえ書いておけばとりあえず動いたりします。
さらにContent-Disposition: attachemnt; filename=”hoge.png”とでもしておけば、保存時のファイル名も指定できます。
で、これで満足してました。
通常の画像とかテキストであれば特に問題はなかったのですが、テキストで始まって途中にバイナリが混ざるファイル、そうPDFではだめでした。
PHPではバッファとか内部何とかとか、なくてもいい余計なものがたくさんあるので、それに振り回されます。
今回必要だったのは、mb_http_output(”pass”);
テキストで始まるものは強制的に内部エンコを行うためか、途中のバイナリが破壊されてしまうようです。それを回避するためのおまじない。
後、おまけとしてダウンロード完了までの時間を表示させるにはContent-Lengthでファイルサイズを送ってあげると親切なのかもしれません。
まぁ、しかし、これでPDFも正常にダウンロードできるようになりました。でめたしでめたし。

CentOS5.3にHDDを追加しようとして失敗する

パソコンのパーツの入れ替えなどでHDDが1つ余ったので、Linuxへの追加のチャレンジしてみました。fdiskでいろいろコマンドをいじって、GUIで論理ボリュームをいじって再起動・・・orz
grubが立ち上がっただけでOSのブートが始まりません。インストールCDを入れてもOSの領域は生きてるみたいだけど、どうやってもブートが始まりません。grubに関するサイトを見てもチンプンカンプンです。
追加しようとしてやったことは、パーテイションをいじって既存のグループとは別にグループを作って・・・
いや、正直なところ理解してなかったから、何をやったのかいまいち覚えてません。
HDDの追加なんて頻繁にやることではないけれど、なんだか負けた気分です。
今回は負け逃げということで。

Googleのページランクが更新されたようです

最近Googleのデータベースに更新があったようです。
私の運営するサイトのページでは、0は大体0のままでしたが、1が2に、2が3にランクアップしているようです。
ネトゲアンテナでもトップページが3にランクアップしていました。

ソケット478のマザーボードを買いました

今まで散々こき使ってきたセレロンD2.93GHzのパソコンはマザーボードのコンデンサ破裂を確認してからかれこれ半年は経っています。
さすがにこのまま使い続けて火を噴いても困るし、478対応のマザーボードで一般流通に乗っているのはBIOSTARとASROCKの2種類しかなさそうなので、覚悟を決めて買うことにしました。
さて、ケースからばらしてマザーボードを付け替えて、ケースから伸びるアクセスランプやスイッチやUSBをつないで、DVDドライブやHDDのケーブルをつなげ、CPUのグリスを綺麗に拭き取り、クーラーのファンにこびりついた埃も麺棒と厚紙でガシガシそぎ落として、新しいソケットに装着、シリコングリスを自分でも惚れ惚れするほど綺麗に塗ってファンも装着、さて最後にメモリをと・・・
メモリを・・・
メモリ・・・?
メ、メモリィーーーー!?
思わず「げっ」と漏らしてしまいました。
なんということでしょう。買ってきたマザーボードはチップセットが新しくメモリはDDR2の240pinが必要だったのです。
478ソケット=DDRだとすっかり思い込んでいたため、確認すらしていませんでした。
DDRならかなり在庫があるにもかかわらず、240pinは一つも持っていませんでした。
せっかく買ってきたのに、起動スイッチを押してもメモリがないというビープ音が鳴るのみ・・・
とっても悲しい一夜を過ごし増したとさ。

ちなみに、買ってきたマザーボードはこいつ
ASROCK P4i945GC
そして比較検討していたもうひとつのマザーボードはこいつ
BIOSTAR PM-900M4