2006.01.03

MySQLの導入(Package編)・・・(Database)

MovabletypeのDBをBerkley DBからMySQLに移行するために、MySQLをportsから入れる方法を書いた。
知識不足でportsからoptionを付けて入れないとdatabaseの位置などが指定できないと思ったからです。
しかし、Packageからでも自由に構築できるこたが解ったので、以下にその方法を書く。
これは楽だ。
まず、/usr/sbin/sysinstall(FreeBSD 6.0の場合)してpackageのdatabasesを選ぶ。
そして下記をインストール。
(1) mysql-client-4.1.13
(2) mysql-server-4.1.13
(3) p5-DBD-mysql41-3.0002
(4) p5-DBI-1.48
あとは勝ってに依存性を考慮してdependencyとして入れてくれる。
次に、以下の作業をする
(1) /usr/local/share/mysql内にあるmy-medium.cnfをmy.cnfの名前で /etcにコピー。

# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf

(2) /etc/my.cnf に datadir = /usr/db/mysql の1行を追加

[mysqld]
datadir = /usr/db/mysql ・・・この行を追加
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 16M

(3) /usr/local/binにあるmysql_install_dbを使ってdbを設定し、mysqlのオーナーをmysqlに変えておく。

# mysql_install_db
# chown -R mysql /usr/db/mysql

(4) /usr/local/etc/rc.d内にあるmysql-server.sh は複雑でうまく動かなかったので、/usr/local/shre/mysql内にある mysql.server を/usr/local/etc/rc.dにコピーしmysql-server.shに名前を変えます。

# cd /usr/local/etc/rc.d
# mv mysql-server.sh mysql-server.org
# cp /usr/local/share/mysql.server ./mysql-server.sh

そして起動

./mysql-server.sh start

いよいよ、管理者のパスワードを設定です。 portsインストールと少し違う。

# mysqladmin -u root password パスワード

これで、mysql -u -p で入れます。
そして、匿名ユーザの削除以降は以前書いた手順と同じですが、説明は省略しますが繰り返し書いておきます。
Berkeley DBからMySQLへ移行(アップデートしました) と合わせ見てください。

# mysql -u root -p
Enter password: 設定したパスワード
mysql> use mysql;
mysql> delete from user where password=' ';
mysql> flush privileges;
mysql> exit
Bye
# mysql -u root -p
Enter password: パスワード
mysql> create database mtdb;
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> use mysql;
mysql> grant all privileges on mtdb.*
to mtuser@localhost identified by 'パスワード';
Query OK, 0 rows affected (0.13 sec)
mysql> flush privileges;
mysql> exit
Bye

これで、Berkley DBからMySQLに移行の準備完了です。


2005.11.24

post2blogでカテゴリー設定・・・(Movabletype)

メールからブログ投稿できるツールとして、post2blogを愛用させていただいている。
post2blogもカテゴリー設定機能がサポートされた新版がでたが、設定できるカテゴリーは固定で都合が悪い。 記事に複数のカテゴリーを設定することは、あまり無いと思えるが、カテゴリーを1つは設定したい。
そこで、メールの第1行目に Cat=山登り などと書いて、カテゴリーが設定できるように改造を試みた。
まず、下記の赤字部のように、$category_id の値は”0″にし、@categoriesの行はコメントアウトする。

my $blog_id = 1;
my $username = 'Melody';
my $password = 'Nelson';
my $category_id = 0;
#my @categories = (2, 3, 4);
my $parse_path = '/Users/Shared/post2blog';

次に、メールから設定したいカテゴリーの語句を取り出すため、下記の赤字部を追加、修正する。

my $cont;
my $dummy;
my $setName;
foreach (@texts) {
open(CONT, $_);
while (<CONT>) {
s/rn/n/g;
s/r/n/g;
if(/^Cat=/){
                   ($dummy,$setName) = split(/=/);
$setName =~ s/n//g;
$setName = $j->set($setName)->utf8;
}else{$cont = $cont.$_;}
}
close(CONT);
}

さらに、新しく投稿をPostしてカテゴリーをPostする間に、現在登録されているカテゴリーのリストを求めて、語句が一致するcategoryのidを求め、得られたidを引き継ぐようにする。

my $ret = $rpc->call('metaWeblog.newPost',
$blog_id,
$username,
$password,
{
'title' => $title,
'description' => $description,
'mt_text_more' => $text_more
},
0,
);
my $post_id = $ret->result();
   $ret = $rpc->call('mt.getCategoryList',
$blog_id,
$username,
$password,
);
my $ref =$ret->result();
my $catID;
my $catName;
my %tmp;
foreach(@$ref){
%tmp = %$_;
$catID = $tmp{"categoryId"};
$catName = $tmp{"categoryName"};
$catName = $j->set($catName)->utf8;
if($catName eq $setName){$category_id = 1;last;}
}
if ($category_id) {
my $cats;
$cats = [{ 'categoryId' => $catID, 'isPrimary' => 1, }];
#   foreach my $cat_id (@categories) {
#               push @$cats, { 'categoryId' => $cat_id };
#       }
$ret = $rpc->call('mt.setPostCategories',
$post_id,
$username,
$password,
$cats,
);
}
$ret = $rpc->call('metaWeblog.editPost',
$post_id,
$username,
$password,
{
'title' => $title,
'description' => $description,
'mt_text_more' => $text_more
},
1
);

これで、メールの1行目に Cat=History などと予め登録されている、カテゴリーの語句を書くと、そのカテゴリーが設定された投稿となる。
Cat=の文がなければ、カテゴリーは当然無設定になる。
最後に、私が現在使っているpost2blogの修正版を以下に付けて置く。
カテゴリー機能付きpost2blog


2005.11.18

使えるVMwareによるFreeBSD (2)・・・(FreeBSD)

VMwareでフルスクリーンでFreeBSDを稼働させるためには、VMware-Toolsが必要と書いたが、その後詳しく調べてみるとVMware-Toolsは必要ないことが分った。
たしかに、/usr/X11R6/lib/modules/driversにはvmware_drv.oがFreeBSDには標準で入っている。
それで、VMware-Toolsで作られたxorg.confを眺めていたら、
HorizSync 1-10000
VertRefresh 1-10000
の指定が、胆であるのが分った。
しかし、vmmouse_drv.oは/usr/X11R6/lib/modules/inputにないと、自由にVMware画面とホストの画面をマウスのポインターが行き来は出来ない。 
結局、vmmouse_drv.oさえ手に入ればVMware Playerで十分で、個人で買うには高いVMware Workstatinなどは必要ないことになる。 マウスぐらいは標準でも、少し不便だが我慢できる範囲でもある。
以下に私が現在使っているxorg.confを載せて置く。

Section "ServerLayout"
Identifier     "X.org Configured"
Screen      0  "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath      "/usr/X11R6/lib/X11/rgb"
ModulePath   "/usr/X11R6/lib/modules"
FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
FontPath     "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath     "/usr/X11R6/lib/X11/fonts/TrueType/"
EndSection
Section "Module"
Load  "dbe"
Load  "dri"
Load  "extmod"
Load  "glx"
Load  "record"
Load  "xtrap"
Load  "freetype"
Load  "type1"
EndSection
Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
Driver      "keyboard"
Option      "XkbRules" "xorg"
Option      "XkbModel" "jp106"
Option      "XkbLayout" "jp"
EndSection
Section "InputDevice"
Identifier  "Mouse0"
Driver      "vmmouse" ・・・
・・ vmmouseのdriverが無ければ"mouse"とする
Option      "Protocol" "Auto"
Option      "Device" "/dev/sysmouse"
Option "ZAxisMapping"       "4 5"
EndSection
Section "Monitor"
Identifier   "Monitor0"
VendorName   "GSM"
ModelName    "75N"
HorizSync    1-10000
VertRefresh  1-10000 
Option      "DPMS"
EndSection
Section "Device"
Identifier  "Card0"
Driver      "vmware"
VendorName  "VMware Inc."
BoardName   "Generic SVGA"
BusID       "PCI:0:15:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
SubSection "Display"
Viewport   0 0
Depth     16
Modes     "1024x768"
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     24
Modes     "1024x768"
EndSubSection
EndSection

ついでに、Xwindowで日本語が使えるように、自己のホームディレクトリーの.profileに以下の赤字部を追加する。

BLOCKSIZE=K;       export BLOCKSIZE
EDITOR=vi;      export EDITOR
PAGER=more;     export PAGER
LC_ALL=ja_JP.eucJP;    export LC_ALL
LANG=ja_JP.eucJP;      export LANG
XMODIFIERS=@im=kinput2; export XMODIFIERS

Window managerには気に入っているKDEを入れたが、.xinitrcには

kinput2 -canna &
sleep 3   ・・・・ ないと、kinput2での入力がうまく行かない場合が
あるようだ
exec startkde

これで、ktermでも入れておけば日本語のファイルも作れるし、パッケージで入れたfirefox(portsで入れるとえらく時間がかかる)のフォーム入力にも日本語入力が可能になる。
firefox.png


2005.11.17

使えるVMwareによるFreeBSD・・・(FreeBSD)

VMware Playerだけでは、画面が大きくならず、Xwindowで使えるFreeBSDは実現できないことが分ったので、VMware Workstationの30日間トライアル版をダウンロードして作ることにした。 やはり、機能が色々あり自分で勝手にConfiguration fileが作り出せる。
早速、FreeBSDのConfiguration fileを作ってインストール。
Xwindowもインストールして、FreeBSD・・・使いものにならないで書いたようにxorg.confを他から持ってきて修正を施し、立ち上げるがやはり画面は小さいまま。
次にVMware-Toolsを入れるをメニューバーで選び、以下の操作をする。

# mount /cdrom
# cp /cdrom/vmeare* /home/temp ・・ あらかじめ/homeにtempを作っておく
# cd /home/temp
# tar xvzf vmeare-freebsd2-tools.tar.gz
# cd vmeate-tools-distrib
# ./vmware-install.pl

色々、質問が出るが全てDefaultで大丈夫です。
そして、startxでXwindowを起動した。 見事に1024×768の画面が立ち上がった。
xwindow.jpg
         (図-1 : Xwindowsの画面)
めでたし、めでたしでfirefoxもportsからインストールしたが、これは3時間以上かかた。
soundも自分のhost computerのsoundカードを/boot/loader.confで snd_es137x_load=”YES”のように入れれば大丈夫だ。
画面上部のタイトルバーをダブルクリックすると、フル画面表示になり、Ctrl+Altで元の画面に戻るのも便利だ。
textmode.jpg
         (図-2 : Textmodeの画面)
ひとたび、Vmware Workstationでconfiguration fileが出来てしまうと、Vmware Playerでも大きな画面で立ち上げられるので、Workstationの30日のトライアル期間が過ぎても大丈夫だ。 ただし、Vmware-toolsをトライアル期間を過ぎても使いつづけるのがLegalか否かは定かでない。
結局はVMware-ToolsがVMware Playerに付属していないことだけが難点で、多くの人から付属の要請が出ているらしい。
ちなみに、Windows系統ではDisplay Driverの入ったwindows.isoがVMwareのサポートのページで手に入る。
これも、使うのがLergalかどうか分らないが、VMwareに問い合わせたら、短い期間なら良いと答えたというが、なんともアナログな答えでハッキリしない。


VMwareでFreeBSD・・使い物にならない・・・(FreeBSD)

Vine Linuxがうまく行ったのに気をよくし、次に慣れたFreeBSDを入れることにトライした。
Vine Linuxと同じ手順で入れようとしたが、いよいよディスクの領域を確保しようというところで、ハードディスクが無いと言われて、あえなく敗退。
困って、ネットで探したら色々なGuest OS用のconfiguration fileが公開されているページが見つかった。
zipファイルをダウンロードして解凍したら、各種Windows, Linux, FreeBSDなど何でもある。
これを使って、Vine Linuxを入れたときと同じ手順で進めたら、ディスクの領域も確保でき、すんなりインストールできた。
テキストモードのみで使うなら、これで十分でNetworkも問題なく動く。
しかし、Xwindowを入れると、色々とやっかいなことが起こる。
まず、xorg.confを作ろうとして/usr/X11R6/bin/xorgcfgを起動すると設定をして、いざファイルを書き込もうとするとハングアップしてしまった。 もう2度と立ち上がらなくなるのでzipファイルを解凍したオリジナルのFreeBSDのconfigurationファイルをもってきてやり直しです。
2度ほど試みたが、同じくハングする。
しかたがないので、別に作ったxorg.confを持ってきて以下の変更をほどこした。
赤字の部分がキーポイントです。

Section "InputDevice"
Identifier  "Mouse1"
Driver      "vmmouse"
Option "Protocol"    "SysMouse"
Option "Device"      "/dev/sysmouse"
Option "ZAxisMapping"       "4 5"
EndSection
    Section "Device"
Identifier  "Card0"
Driver      "vmware"
VendorName  "VMware Inc."
BoardName   "Generic SVGA"
#       ChipSet     "SIS630/730"
BusID       "PCI:0:15:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
DefaultDepth      16
SubSection "Display"
Viewport   0 0
Depth     1
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     4
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     8
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     15
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     16
Modes     "1024x768"
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     24
EndSubSection
EndSection

これで、Xwindowが立ち上がるようになったが、どうしてもフルスクリーンにならない。小さなWindowでは立ち上がっても、とても使いもものにならない。


« Previous | Next »