PPMをプロンプト上で操作してみる

現在のActivePerlでは、プロンプト上でppmと打つとGUIが自動で立ち上がります。


昔の操作に慣れてしまっている俺としてはひじょーーーに気持ち悪いのでppmをプロンプト上で動かしたいわけです。


前回のPPMが動かないで調べてた先に、「ppm-shell」で動かしたらCUIで動くそうなので実験。


C:\WINDOWS\system32>ppm-shell
ppm 4.01
Copyright (C) 2007 ActiveState Software Inc. All rights reserved.
動いたんですけどね。やっぱ文字コードの問題のせいか

ppm> rep
レトトトトツトトトトトトツトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトソ
ウ id ウ pkgs ウ name ウ
テトトトトナトトトトトトナトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトエ
ウ 1 ウ 6671 ウ ActiveState Package Repository ウ
ウ 2 ウ 0 ウ theoryx5 ウ
タトトトトチトトトトトトチトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトル
(2 enabled repositories)
かっこいいことになってました。

PPMが動かない

前々から、ActivePerlをインストールした際、PPMが動かないという症状に泣かされてきた。


ppm gui failed: DBI connect('dbname=C:\DOCUME~1\user1\LOCALS~1\APPLIC~1/ActiveS
tate/ActivePerl/820/ppm-MSWin32-x86-multi-thread-5_8.db','',...) failed: unable
to open database file(1)
で、調べてみるとこんな記事があった。

http://rakunet.org/TSNET/TSperl/27/815.html

> 819は、ppmがver.4になってGUI化されているのですが、データをユーザー名を含
> むディレクトリ(USERPROFILE)にインストールしようとします。この場合、UTF-8
> でディレクトリ名を想定しているので失敗します。私の場合は、MSIでは時間は
> 掛かりますが、一応成功したように見えます。が、PPMは失敗します。ASパッケー
> ジのinstaller.batはインストール時に失敗します。


http://rakunet.org/TSNET/TSperl/27/822.html

> あくまでGUIppmが使いたい、けどユーザー名に漢字を使ってしまって
> インストールしてしまった。ということなら、
> 環境変数USERNAME と USERPROFILE を適当な英数字名に変えてやって
> 起動すれば使えるようになります。

ん、つまりユーザアカウント名が日本語(マルチバイト)だと、UTF-8で評価されて文字が化け、正しく認識しないってことか。しかし・・・マルチバイトなんて使ってたっけ・・・



> dbname=C:\DOCUME~1\user1\LOCALS~1\APPLIC~1/ActiveState/ActivePerl/


> user1



アッーーーーーーーーー!



ユーザ名変えちゃってもuser1というディレクトリ自体は変わらないので、とりあえずそれが原因かどうかを確かめるべく、新たにuser2なる(今度はちゃんと半角)で試してみた。



動いた・・・



ということで一件落着。あとは環境変数とかあの辺りいじればいけるっぽい。めでたしめでたし。