このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

実行形式のスクリプトは環境に依存するのですか?

発言者:なんとか中級者です
( Date Thursday, April 24, 1997 00:44:34 )


Apple Script でCGIを作っているのですが、
会社ののマックでスクリプトを作成し遠隔地のマックにFTP経由でアップロードして
実行していたのですが、ファイルサイズの少ない時の初期段階ではちゃんと実行されていたのですが
最近は正しく実行しなくなってきました、
例としては、そこに存在するのにファイルが読めなくなったり、フォルダーが無いとかとエラーになってしまいます
ところが、そこの遠隔地のマックでスクリプトをコンパイルして実行すると正しく処理されます

そこで質問なのですが、Apple Scriptはローカルでコンパイルして実行しないといけないのでしょうか?
よろしくお願いします。

ちなみにスクリプト・オブジェクトを2つ呼び出しています

田中求之 さんからのコメント
( Thursday, April 24, 1997 11:05:03 )

基本的には、実行するマシンでコンパイルを行う必要があるようです。

ファイル指定に alias 型を使わないとか、アプリケーションは呼び出さない
などの限定を加えたスクリプトであれば、コンパイル済みのものを転送しても
問題ないようですが、どういった条件のスクリプトであれば大丈夫かというこ
とは私は確認できていません。

以前、CGI Kit をコンパイルした形で配付していたのですが、エラーが出る
ようでしたので、スクリプト(テキスト)での配付に切り替えたことがあります。

コンパイル時に、環境に依存する情報がどのように扱われるか不明ですので、
やはり、実行するサーバーでコンパイルを行う、というのが確実でしょう。

重松修 さんからのコメント
( Thursday, April 24, 1997 15:33:02 )

私の場合は、同じマシンでもしばらく前にコンパイルしたものが動作しなかっ
たことがあり、理由が分かりませんでした。

うかつにもソースを捨ててしまったんですが、実行せんよう形式で保存したも
のは何らかの方法でソースに戻すことは出来るのでしょうか?

田中求之 さんからのコメント
( Thursday, April 24, 1997 17:22:27 )

>実行せんよう形式で保存したも
>のは何らかの方法でソースに戻すことは出来るのでしょうか?

いまのところ、これができるツール(逆コンパイラ)はないようです。
実行形式にした場合は、かならずスクリプトも保存しておくというのが
鉄則ということになりますね。

私も、以前、このサーバーの CGI のコアになる部分を実行形式にして
おいて壊してしまい、ソースを失ってしまっていて、やむなくゼロから
書き直したことがあります(起動時にシステムエラーが出た、あるいは
異常終了・リスタートを行った場合などに、スクリプトが壊れてしまう
ことがあります)。

実行時のことを考えると、実行専用の方がよい(具体的な理由ははっきり
しませんが、メモリーが少なくてすみます)ので、それ以来、スクリプトは
テキストの形で保存・バックアップするというのを心掛けています。


なんとか中級者です さんからのコメント
( Thursday, April 24, 1997 19:51:10 )

>コンパイル時に、環境に依存する情報がどのように扱われるか不明ですので、
>やはり、実行するサーバーでコンパイルを行う、というのが確実でしょう。

そうですか、やはりそのほうが確実ですよね
今の所はスクリプト・オブジェクトを1つにするとちゃんと実行する様になりましたので
問題ないのですが、でもやはり困った問題です。