忍者ブログ

カウンター

プロモーション

カレンダー

02 2025/03 04
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


No Image

Visual C++ 6.0 Processor Pack と Windows 7

VisualC++ 調べ物

 手持ちのN5(コレ↓)にEclipse を入れて必死にPHPの開発をしようとして使っていた。


超小さくて軽いので便利(GPSも内臓!!!)だが、しかし私がしたい事に対して、とても遅いのだ。

Eclipse というJava仮想マシン上で動く統合開発環境を導入して使っているが遅い。

Eclipse はCPUの早いマシンなら凄く便利だが、
なんだかもうAtomのCPUで、その上Windows 7 とメモリが2Gでは、立ち上がるまでが極端に遅い。

勿論インターネットセキュリティーのソフトなども入れれば尚更重くなるに決まっている。
それはとても気が付いていることだけどEclipse をN5 で使うと地獄だ。

結局小さなPCで何処でも時間を余すことなくプログラミングがしたいだけなので、
Eclipse を使いたかったら、毎回立ち上げなくてスタンバイにしておくしかないと思い、
それでも何か、別の軽い開発環境で、プログラミングがしたいなと思った。

なので別の用途にはなるが、Visual C++ 6.0を入れてみたのだ。
 (追伸ですがPHPとXHTMLやJavaScriptはMicrosoft Visual Web Developer 2010 Express や
Notepad++ を使ってます。 PHP エディタも使おうかと思ってますが、
なぜかNotepad++で修正する方が多くて使ってないです、今からインストールしときますw)


なんだこの快適さは!

さて、何時もながらの前置きはこれぐらいにして
動いたVisual C++ 6.0 にサービスパックを入れる
その本題に入ろう。
 

 


本題ですが、なぜこの話題にしたのか、それはVisual Studio 6.0 Service Pack 5 が
Windows 7 に普通に入らないからです。

理由はMDAC(Microsoft Data Access Components) が違うらしい。
エラーの内容は確か、2.5以上のバージョンを入れるか、
何かを使いたいなら2.6以上を入れろ! の様な事が書かれていた記憶がある。

そこで最新であろう、MDAC 2.8 を入れてみた、がしかし同様のエラーが発生する。
なので古いMDAC2.6 を探して入れてみた、やはりエラーが発生する。

なので諦めて、とりあえずネットで最新のService Pack や何かアップデートがないか
調べてみた。

すると普通にVisual Studio 6.0 Service Pack 6 があったのでダウンロード してインストールできた。
とりあず、Service Pack 5 と 6 の違いを調べたところ、
Visual C++ Processor Pack (VCPP) は、SP6 から除外されました。
お客様が既に VCPP をインストールしていた場合、
SP6 をインストールすると、VCPP はお客様のコンピュータから削除されます。
引き続き VCPP を使い続けたい場合は、これまでどおり SP5 を利用するか、
Visual Studio .NET 2002 または 2003 へ移行していただく必要があります
(Visual Studio .NET 2002、2003 への移行を推奨します)。


らしい(Studio 6.0 SP6 に関する情報)より引用。

つまり、なんかVisual Studio 6.0 のサポートも切れているみたいなので、
今のうちに環境を整える状況を作っておかなければ、何年かすると使えなくなるかもしれないと
思った。

なのでそのVCPP(Visual C++ 6.0 Processor Pack) と言うのを調べた。
そうすると、「ProcessorPack 5.0をVisual C++ 6.0 (Service Pack 6)にインストールする
というサイトを見つけた。

このサイトによると、vcpp5 というターゲットを入手して、それにスイッチをつけて
全て展開し、必要な物だけを手動で移すみたいだ。

なぜこんな事をしているのか疑問で、とりあえずダウンロードしてみようとVCPP を探した。
するとvcpp5 という実行ファイルではなく、vcpp という名前の物が追加使用許諾契約書 の同意の上
公式からダウンロードできるのが分かった。
(一応ダウンロードリンク元リンク先です。)_ _

これはなぜ同意の上なのか、分かった気がします。
追加使用許諾契約書 (以下抜粋)に、

注意:
Visual C++ 6.0 Processor Pack は、各国語のシステム向けにローカライズされておりません。Visual C++ 6.0 日本語版での動作確認は完了していますが、コンパイラの一部ファイルが英語版で上書きされるため、インストール後に一部のエラーメッセージや警告が英語で表示されるようになります

とあるので、正式に対応している訳ではなく、とりあえず動くからの様なものみたいです。

それではこれから、どうやってVCPP に対応させるかの
ProcessorPack 5.0をVisual C++ 6.0 (Service Pack 6)にインストールする
Mr.Ohtaさんのページ さん有難う御座います。)
を参考にし、追加で補足のメモをします。
 

 


 

このサイトによると、ダウンロードしたファイルの名前は私の場合は、vcpp であり、
vcpp5 ではなかったので、vcpp /C /T:C:\temp で解凍しました。
そうすると、C:\temp に全て解凍されてものができました。

とりあえず、その解凍したファイルは、普通にVisual C++ 6.0 をインストールしたならば、
VC98\Include と、VC98\Bin に各ファイルにスイッチにより解凍したファイルを追加する、
もしくは同様のファイルがあった場合には、新しい物を用いるとありました。

その後、その解凍したファイルにある、Enabl__1.reg を実行して、レジストリに登録する様です。
同様に、Disab__1.reg というのもあり、これはレジストリの同じ場所を指し示していて、

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Debug]
"SIMDRegisters"=dword:00000000


"SIMDRegisters"=dword:00000001
の違いだけでした。(前者0がDesab__1.reg 、後者1がEnabl__1.reg

とりあえずレジストリはイネーブルの1にする様です。


このサイト にはサンプルもあるよ!とのことだったので、
解凍した物を確認してみると、確かにサンプルがありました。

私はサンプルが欲しい!案外マイクロソフトが作るサンプルで育ってきた人なので、
サンプルも欲しいのです。

そこで何か無いかと探したら、
vcpp.inf というセットアップ情報ファイルがありました。

この中を覗くと、中にセットアップする場所の記述があり、そこにどのファイルを保存するかが
書いてありました。

[DestinationDirs]
CopyToVC98Bin=49010,Bin
CopyToVC98Include=49010,Include
CopyToVC98CrtSrc=49010,Crt\Src
CopyToSamplesAmdAsdk=49010,Samples\Amd\Asdk
CopyToSamplesAmdIsdk=49010,Samples\Amd\Isdk
CopyToSamplesCPUID=49010,Samples\CPUID
CopyToMsdev98Bin=49020,Msdev98\Bin
CopyToVC98Masm=49010,Bin
CopyToVC98Root=49010

こんな感じになっていて、該当する例えば、
[CopyToVC98Include]
dvec.h,,,32
fpieee.h,,,32
fvec.h,,,32
ivec.h,,,32
malloc.h,,,32
mm3dnow.h,,,32
mmintrin.h,,,32
emmintrin.h,emmint_1.h,,32
xmmintrin.h,xmmint_1.h,,32


とかが存在して
[CopyToVC98Include]=CopyToVC98Include=49010,Include

ということが分かるようになっていました。

あと、英語になると注意があった訳で、それらは何処にインストールするのか考えてみた。
procpack.chm というヘルプを覘いてみたら、英語だった。
じゃprocpack.chm は何処にインストールするのか調べた。
[CopyToVC98Root]=49010
だった、そしてこのファイルについて、同様の日本語ファイルは私の環境では、
見つからなかった。
もし同様のファイルがあるのなら英語になるってことなんだと思う。

それにしてもRootのフォルダは49010なんだろうか?
とりあえずchmのファイルがあるディレクトリは、私の環境では
C:\Program Files\Microsoft Visual Studio\VB98 (1個だけ)
C:\Program Files\Microsoft Visual Studio\VIntDev98\bin (2個だけ)
C:\Program Files\Microsoft Visual Studio\MSDN98\98VS\1041 (いっぱいあった)
でした。

なので間違っていない様です、まぁ、何かAPIで49010 はルートを示すのかもしれませんし、
内部で使っている値かもしれません。
2進数に直したら、1011111101110010 だったので、いくつかフラグが重なっているかもしれないし、
面倒だったので其処までは調べませんでした。

最後になってしまいましたが、vcpp は
Intel Pentium III インストラクション セット (Streaming SIMD Extensions [SSE])、
Intel Pentium 4 インストラクション セット (Streaming SIMD Extensions 2 [SSE2])、
および AMD 3DNow! インストラクション セットらしいです。

あとアセンブラのMASM も入っています。
コンパイラでアセンブラで書かれた部分はMASM を使うのでしょうか、
多分そんな所なのだと思います。

今使わなくとも使いそうなので何時ものように長ぁーいメモでした。

余談:N5

を入れて使うのが結構楽しかった。GPSはたまに初期化関係がおかしい?が
休止状態とかスリープとかすると治ったりするんだよね。

初期化タイミングでもあるのかな?
ご存知の方はお教え下さい。

                                            余談以上。

追伸:
 Windows 7 にVisual Studio 6.0 を入れて、DOMだったかな?
それらのコンポーネントを使おうとすると、Windows 7 のOS には存在しない機能なども
参照しようとするみたいです、またインストールして一番初めだけDOM の機能を使おうとすると
DOM の機能を使うためのインデックスの作成作業みたいなことを裏で行うみたいなので、
その処理時間の長さが遅いPCではフリーズしたんじゃないか? とか感じると思いますが、
気長にお待ち下さい・・・みたいな感じでしたよ^^;

拍手[0回]

PR

No Image

VisualC++ と MySQL でODBCに挑む。

VisualC++ と MySQL の調べ物

 はっきり言って見通しはついていません。
しかしこの先、VisualC++ と Microsoft SQL Server を使う気がどうしてもしない。
 なぜかと言うとPHP を覚えると必然的にLinux に走るだろうから、
PostgreSQL か MySQL を使うことがメジャーとなりそうだから。

 ならなぜVisualC++ を極めようと思うのか、
それは何もしらない人や、一般的な会社が業務としてWindows を用いているから。
 配布するソフトウェアを作る場合には、やっぱりVisualC++ かスマートフォンのOS が
主流になると思う。

 ならなぜ、スマートフォンのOS から始めないのか?
それはiPhone を初めとするiOS は、Objective-C を覚える必要がある。
しかしiOS陣営はアップルストア経由の自分の所主義なので、あまり今後、個人的に
伸びる気がしない。

 そしてAndroid はJava系の開発らしく、私はJSPなどやApache Tomcat などの
Webサーバ と、アプリケーションサーバ を分業した環境の開発を学ばず、
中小規模のPHP から入った為、色々考えるとJava も確かに魅力的だが、
同じオブジェクト指向プログラムの親となるC++ 系統を極めた後であった方が
後に出来たJava も覚えやすいのではないかと考えた。

 実際にJava のプログラミングをしたことが多少あるが、ライブラリに非常に依存している気がする。
PHP と違い純正の統合開発環境もあるので、もしかするとよい本に出合えればとても早く習得が
出来る気もする。

 とりあえずだ、私はどっちかというと手軽さゆえ、VisualBasic6.0 派でAPI をバリバリ使うほどになって
今更やはりVisualC++ を覚えた方が、自身が作りたい、提供したいものが作れるのを確信してしまった。

 今回は、なぜVisualC++ を極める前に、こんなよそ事をしているかというと、
VisualC++ を使った仕事としても考えた場合には、やはりデータベースを用いる何か、
それは結構重要な事だと思ったからだ。
 そしてやはりLAMP 環境の中にあるMySQL を使いたかったということも大きい。

 さて、自身の頭の中の整理はこれぐらいにしておいて、メモに入る。

VisualC++ でのMySQL の接続方法は、2種類あるそうだとネットで調べた、
その2種類とは、ODBCドライバ経由と、MySQLコネクタ ライブラリ を用いる方法らしい。
ODBC は所謂他のDBでも同様な操作方法でデータベースにアクセスできる、汎用性を
求めた使い方でMySQL の良い点を全て使う為のものでなく、他のデータベースに置き換えたり、
また、他のデータベースからの移行がしやすい利点を持つ。

 もうひとつの方である、MySQLコネクタ ライブラリ は、真逆にMySQL の関数個々に対応した、
MySQL の全てを使う為のものだと思えばいいのだと理解した、そしてこちらの使い方の方が
共通化していない分、とても早い。

 さて、いざネットで調べると、PHP からの使い方はPHP 公式サイトからなどで
2種類の使い方がすぐに探し出せるが、VisualStudio や.net、Java については
開発言語ごとに、制約があるものの存在するが、VisualC++6.0 については記述が見当たらない。

 つまり、
「MySQL DDEX プロバイダは、Visual Studio 2005 の Server Explorer メニューを通じて使用できる Visual Studio Data Designer 機能の標準エクステンションとして作動し、MySQL データベース内のデータベース オブジェクトとデータの作成を可能にします。」
とは書いてあるが、VC2005 であり、VC6.0 ではない。

そうなると、やはりODBC を使うべきということになる。
選択肢は具体的に、

24.1. MySQL Connector/ODBC
24.1.2.1. Connector/ODBC の入手方法 とりあえず以上だ。

また私事になるが、色々順番というものがある。
本来はPHP + MySQL を覚えたら先にLinux の使いかってをDebian というディストリービューション か
CentOS でも覚えようと思っていた。RedHat 系のFedora でも良かったのだが、
なんだかDebian は多種のCPU に対応しているなどや、インストーラーが便利でありそうで良かった。
見た目もRedHat より良い感じがして好みであった。
CentOS もスッキリしていて良かったのだが、なぜかバージョンによってAthlon 64 X2 で
うまくインストールできなかった。
最適化なども考えてパッケージを選ばなければいけないことなどもあり、
VirtualPC なども用いてあれこれしてみたが、Linux も普段使わなければ全く意味が無さそうだ。
サーバとして動かしたいので早く毎日の様に使わなければいけない。

あぁ、やる事がいっぱいだ。

かなり長い予断メモであった。

拍手[0回]


No Image

Cookie が消えない様に見える時、ログを完全に消す対処方!

PC ソフトウェア一般

 インターネットエクスプローラ(以下IE) を使っているとなぜか
Cookie(クッキー)が消えてない事があった経験はないだろうか?

実はIEによってはCookie の消し方が多少違うみたいだが、
「インターネットのプロパティ」 開いてCookie の削除 ができるはず。

それで本当に消えたかどうか確認する為に、
「ファイルの表示」 をして確認する。

そうするとエクスプローラー でアドレスが変更してなければ、
[ ~ \Local Settings\Temporary Internet Files ]という場所を指し示し、
そこに表示されているCookie のファイルが無くなっているのが通常の動作であろう・・・

しかし!

そこに名前でCookie:xxx@~ インターネットアドレスでいう[Cookie:xxx@~]みたいなのが
残ってて、どうしても消えない事がある。

これの理由について述べよう。

これはどうも、実際にCookie は消えているけど、Cookie を管理しているファイルに
ログが残っていてそれでどうも、そのログの中にその消えないCookie の名前があるので
ここに表示されている事があるみたいなんだ、ただしウイルスで消えていないことも
あるかもしれない
ので気をつけてほしい。

 とりあえず、そのウイルスじゃない場合には、
ログが初期化されれば、そこの一覧のCookie からは消えます。


なのでログを消すために自身のユーザーがあるフォルダ、例えば[C:\Documents and Settings]
を探して欲しい、インストールする場所が違うならドライブC:\などが違うかもしれない。

そのフォルダに自分のユーザー名があり、次に[Local Settings]
というフォルダがあると思う、もしかすると隠しファイルは見えない設定になっていると
Local Settings が見えないかもしれない。

その場合にはエクスプローラーのツールバーにある[ツール]の中にある、[フォルダ オプション]を選んで、
[表示]タブの詳細設定にある「ファイルとフォルダの表示」 を「すべてのファイルとフォルダを表示する」 に
設定変更すれば見える様になる。


結局ログがある場所は
[Local Settings\Temporary Internet Files\Content.IE5\]で、ログ自体のファイルは
[index.dat]とというファイルなのですが、そのLocal Settings のフォルダの中にある、
Temporary Internet Files は特殊なフォルダなのでそれ以下のフォルダ「Content.IE5]は
普通には見る事は出来ないです。

なのでアドレス[\Content.IE5]をエクスプローラーに貼るかそれとも別のユーザーでログインして、
自分のアカウントにあるTemporary Internet Files 以下を見るしかないです。
他のユーザーになってログインすると特殊な状態のフォルダとしては扱われなくなるので
中身が見える仕組みになっています。


ここで問題なのが、このindex.dat はプロセスに使われている。
これは他のプログラムが使ってますよと述べているんだけど、
これは普通にはプロセスが終了できない、プロセスを終了させるツール、
Unlocker という物も存在するけれど、それで終了させてもどうしてもプロセスが
終了できない、それはエクスプローラーがプロセスで、エクスプローラーは
OSその物と直結しているのでどうしても終了しきれない物だと思ってもらえば良いと思う。

ではどうするのか?
プロセスがそのユーザーのindex.dat を使っていない状態にする。
そうすればそのindex.dat を消す事が出来て、問題であったCookie が存在しないのに
しているかの如く見せているログは消えるのだ。

そのやり方は、実はユーザーごとにそのインターネットエクスプローラーで
使っているTemporary Internet Files のフォルダは違う、ログオンしたユーザーごとに
使われていて、ログインしていないユーザーのTemporary Internet Files のフォルダの中の
index.dat はエクスプローラーによってなんらかのアクセスがない、つまりプロセスとして
使われていない。


なので他のユーザーになって、自分のユーザーのフォルダにあるTemporary Internet Files フォルダの中にある
Content.IE5 フォルダの中のindex.dat を消せばいいです。

他のユーザーになっているので消せるはずです。

ただなんだか、全部とりあえず初期化した方が良いと思えたりもするので、
私はTemporary Internet Files フォルダ ごと丸々消してしまって、中身の量を減らしています。

またこのフォルダは色々他の事で使われたネット関係の情報や、
エクスプローラーで使ったがなぜか消せない情報がどんどんたまっていって、
容量だけ増えてしまう事があるので丸々消した方が良いかもしれません。


他のユーザーになる方法はいろいろあるけれど、
他のユーザーになる方法はログオフするか、再起動して他のユーザーでログインすれば良いのだけど、
簡易切り替えだと良くないかもしれない。

Administrator のログインパスワードがどうなっているかはそのPCによって違うけど、
Administrator になって消す方法や、Administrator 自身のインターネットエクスプローラーの
ログを消したいのであったのならば、他のユーザーで消せばよいと思う。

とりあえずは、また次回にしっかりスクリーンショットから、他のユーザーでログインする方法を
このブログを修正しながら載せようと思う。

また一応メモですが、インターネットエクスプローラーのClient UrlCache MMF という機能が
Cookie のログを生成したり、ログを参照してTemporary Internet Files フォルダをネットのログであると
見せているみたいです、なので実際になくてもCookie が何時までもあるかの如く見えているのでした。


とりあえず概要だけで細かく載せられなかったですが以上です。

拍手[2回]


No Image

PEAR go-pear.php と go-pear.phar の違いとインストール その2

PHP とPEAR の調べ物

拍手[0回]


No Image

PEAR go-pear.php と go-pear.phar の違いとインストール その1

PHP とPEAR の調べ物

 PEAR のWindows へのインストールをするのは今回で2度目である。
しかし凄く今回は時間がかかっている。

 それは前回のインストールでは、あちこちのサイトに書いてある事を見て、
深く追求せずにインストールが終わっていたが、今はある程度何をしているかわかってきたので
何をしているかこだわっている事と、前回は何を見て設定したかを甘く見てメモしていなかったので
時間がかかっている原因である。

 今回は色々また調べながら、そして修正しながらのブログを用いたメモなので
途中作りかけであったり、内容が間違っている可能性も勿論ある。

 今回わかった事、色々調べてみると、最終的に行き着いたのは
php.exe に読み込ませるスクリプトは2種類あり、それぞれのインストールの仕方が違う事。
 その2種類はgo-pear.php と go-pear.phar である。

 そのインストールの方法についてメモを残そうと思うが、まずハマる要点を先に書こう。
  

 


ハマるその①:go-pear.phar とその実行方法

インストール中のインストールするフォルダの位置指定が増えた。

 1. Installation base ($prefix)                         : C:\php                    
 2. Temporary directory for processing             : C:\php\tmp             
 3. Temporary directory for downloads              : C:\php\tmp            
 4. Binaries directory                                   : C:\php                   
 5. PHP code directory ($php_dir)                    : C:\php\pear            
 6. Documentation directory                           : C:\php\docs           
 7. Data directory                                        : C:\php\data            
 8. User-modifiable configuration files directory : C:\php\cfg              
 9. Public Web Files directory                        : C:\php\www            
10. Tests directory                                      : C:\php\tests           
11. Name of configuration file                        : C:\WINDOWS\pear.ini
12. Path to CLI php.exe                                : .                           

今はこの12項目があるが、昔は

 8. User-modifiable configuration files directory : C:\php\cfg              
 9. Public Web Files directory                        : C:\php\www            


がなく10項目であった。とりあえず、これが何を指し示しているのか
厳密にわからない。
www は普通に公開フォルダで、Apache の公開フォルダかな?
とは思うが良く判らない。


そして、パスが大体PHPのフォルダ直下ではなくて、
PHPのフォルダ直下のあとのpear のフォルダの中がデフォルトの指定だった。

こんな感じだった。

 1. Installation base ($prefix)                        : C:\php                  
 2. Temporary directory for processing            : C:\php\pear\tmp     
 3. Temporary directory for downloads             : C:\php\pear\tmp    
 4. Binaries directory                                   : C:\php                 
 5. PHP code directory ($php_dir)                    : C:\php\pear          
 6. Documentation directory                          : C:\php\pear\docs   
 7. Data directory                                       : C:\php\pear\data    
 8. Tests directory                                     : C:\php\pear\tests    
 9. Name of configuration file                       : C:\WINDOWS\pear.ini
10. Path to CLI php.exe                               :C:\php\.                  

PEAR 公式のパッケージのディレクトリ構造 の説明では
なんだかよく判らないのと、このCUIの設定方法までは書いてない。
そして私が見た、2010年11月13日(土)現在では、
「ドキュメントは 2003 年 11 月 4 日に発行されたもの」と書いてありました。
特に細かくインストールの詳細は書いてない気がしました。


ハマるその②:go-pear.phar とその実行方法

  Windows版のPHPのインストーラに既存で付いているPEAR のインストール用バッチの参照先にあるgo-pear.phar は正常に動かない

 とりあえずまず最初にハマるのが、動かないバグがあるPEARインストーラーで、
私の環境のPHP5.3.3(php-5.3.3-Win32-VC6-x86)でも一緒にセットになって配布されていて、
これは昔もバージョンもバグで動かなかった覚えがあり、修正されないままでいる。

 このgo-pear.phar は正常に動く物が配布されているので、go-pear.phar を用いてPEAR を
インストールするのであれば、http://pear.php.net/go-pear.phar から最新を落とすべきだろう。
勿論ダウンロードしたファイルの名前はgo-pear.phar にしてPEAR のフォルダの同一名の古い物と
置き換える。

 そのダウンロードしたgo-pear.phar だが、バージョンの確認方法を記述したい。

私が落としたgo-pear.phar のバージョンは、go-pear.phar の内部を覗くと確認できるが、
ファイルのバージョンを確認するにはどうも、内部の記述を元に管理するしかない様だ。

その内部の記述でバージョンらしき物が書いてあるのは2箇所でそれをメモしておこうと思う。

<1つ目>
8674行目: * @version    CVS: $Id: Common.php 282969 2009-06-28 23:09:27Z dufuz $
と書いてあり、 * PEAR_Common, the base class for the PEAR Installer としてのバージョンだ。
これはPHP5.3.3(私の今の環境:php-5.3.3-Win32-VC6-x86)では
8579行目: * @version    CVS: $Id: Common.php,v 1.168 2009/03/27 19:35:47 dufuz Exp $
になっている。

ここでわかるのは、v 1.168 から 282969 になった事だ。
バージョンからリビジョンっぽい細かな表記になっているので、この場所では判りにくいが、
ここのバージョンを確認するのが一番間違えは無さそうだ。
勿論日付で見たほうが早いのかもしれない・・・

<2つ目>
まぁ同様のファイルなので<1つ目>から書かれた事から変わらないので一部省略する。
旧8686行目: * @version    Release: 1.8.0 
新8781行目: * @version    Release: 1.9.1
これは、 * Class providing common functionality for PEAR administration classes. という
クラスのバージョンらしい。

この<1つ目>か<2つ目>のどちらかを調べれば、バージョンの違いや新しいのかなどは
確認できるだろう。

 バージョンの確認方法や、新しい物を取得する方法の説明はこれぐらいにして、
このgo-pear.phar の実行方法が何をしているか調べてみる。

 当初バッチファイルのgo-pear.bat を実行してPEAR をインストールすれば良いと思い、
中身を確認せず実行して動かなかったので疑問に思い、中身を調べてみた。

@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 PEAR\go-pear.phar
pause

 中身はこんな感じになっていて、
まず@ECHO OFF で画面にコマンドエコー やメッセージ の文字列を表示させない設定にする。

 次が判りにくいが、set 関数 とは現在実行中のコマンドプロンプトのみで
環境変数の追加をする関数なので、ここでset関数 にてセットしたとしても、このコマンドが終わると
set で設定した環境変数は消えてしまう。

 特にgo-pear.phar の呼び出し元のphp.exe で内部的にパスを使っているのかと思ったら、
現在の私が落としたバージョンgo-pear.phar のそうでもなくて、何もphp.ini など外部の環境を設定をせずにgo-pear.bat を実行すると
 1. Installation base ($prefix)                   : C:\php
          : (省略)                                            
12. Path to CLI php.exe                           : .            
の様にphp.exe のパスが通っている訳でもないので、ここでの環境変数を一時的に決める事は
何の意味も無い様だ。
 しかしあえて、変わるはずも無いだろうが、
一時的な変数であるset関数コマンドを使わずにユーザー環境変数として
PHP_BIN=php.exe としてWindows に記憶させてみたが、
やはり何も変わらなかった。

 つまり現状ではset関数を使っている意味が本当に良く判らない。

 なのでとりあえず判り易く書き直してファイルを保存する必要は無いが、バッチファイルの内容を
書き直すと

@ECHO OFF
php.exe -d output_buffering=0 PEAR\go-pear.phar
pause

としている事がわかる。


-- 多少予断 --
 もしこの先ずっと環境変数を変更したいならば環境変数を編集する事になると思う。

 環境変数はユーザー環境変数と、システム環境変数があるが、
ユーザー環境変数はPEAR をインストールすると作られる PEAR_ENV.reg というファイルで
後々追加変更するが、そのファイルの中に1行
"PHP_BIN"=".\\php.exe"
を追加すれば良いと思う、但し今の所何の意味も無い様なので一例です

REGEDIT4
[HKEY_CURRENT_USER\Environment]
"PHP_BIN"=".\\php.exe"
"PHP_PEAR_SYSCONF_DIR"="C:\\php"
"PHP_PEAR_INSTALL_DIR"="C:\\php\\pear"
"PHP_PEAR_DOC_DIR"="C:\\php\\docs"
"PHP_PEAR_BIN_DIR"="C:\\php"
"PHP_PEAR_DATA_DIR"="C:\\php\\data"
"PHP_PEAR_PHP_BIN"=".\\php.exe"
"PHP_PEAR_TEST_DIR"="C:\\php\\tests"
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --


作成途中・・・・

 

拍手[0回]


[PR]