パッケージマネジャ

パッケージマネジャは、OPKファイルに変わってOriginに新しく導入されました。古いOPKファイルはバイナリファイルで、モジュールのインストールで使用する際に制限がありました。新しいOPXファイルはXMLファイルで、モジュールのインストールをより簡単にする目的で設計されています。ツールメニューのパッケージマネジャを選び、ダイアログを開くことができます。

ダイアログ:ファイルメニュー

パッケージマネジャのダイアログにはファイルメニューがあります。このメニューには次の項目があります。

新規

新しいパッケージを作成します。この操作は、既にパッケージが開いていると、現在のパッケージを閉じます。現在のパッケージに保存されていない変更があると、その変更を保存するか、保存しないか、新しいパッケージの作成をキャンセルするか、を選択するメッセージボックスが表示されます。

開く

既存のパッケージファイルを開きます。この操作は、既にパッケージが開いていると、現在のパッケージを閉じます。現在のパッケージに保存されていない変更があると、その変更を保存するか、保存しないか、新しいパッケージの作成をキャンセルするか、を選択するメッセージボックスが表示されます。

保存

現在のパッケージを同じ名前で上書き保存します。パッケージが新しく、まだファイル名を付けていない場合には、ファイル名を指定するように促されます。

名前を付けて保存

現在のパッケージに新しいファイル名を付けて保存します。

パッケージのインストール

パッケージファイルを選択するファイルダイアログが開きます。パッケージファイルを選択し、開くボタンをクリックすると、パッケージがインストールされます。

パッケージのアンインストール

この項目は、インストール済みパッケージダイアログを表示します。このダイアログは、現在インストールされているすべてのパッケージを一覧表示します。アンインストールしたいパッケージを単に選択し、アンインストールボタンをクリックします。

パッケージの抽出

パッケージの抽出は、パッケージのインストールとは異なります。パッケージの抽出は、パッケージからファイルを取得したいときに使います。前後のスクリプトは実行されません。目的のフォルダを選択するように促されます。目的のフォルダはユーザフォルダまたはOriginのインストールフォルダにすることはできません。

閉じる

ダイアログを閉じます。現在のパッケージに変更を行っていて、まだ保存していない場合、メッセージボックスが表示されます。

ダイアログ:ツリービュー

ツリービューは、パッケージの設定が編集される場所です。以下は、設定についての説明です。

パッケージ
  • モジュール名
    モジュールの名前名前は、リリースされた各バージョン*に対して同じとなります。
    インストール中、モジュール名が既にインストールされているパッケージの名前と比較されます。名前が一致すると、バージョンフィールドが比較され、既にインストールされているパッケージに対して、新しい、古い、同じであることをユーザに通知します。ユーザは、インストールを続行するかキャンセルするかを選択することができます。
  • 説明
    モジュールまたはパッケージの内容の説明です。
  • バージョン
    パッケージに含まれるモジュールのバージョンです。
    インストール中、モジュール名が既にインストールされているパッケージの名前と比較されます。名前が一致すると、バージョンフィールドが比較され、既にインストールされているパッケージに対して、新しい、古い、同じであることをユーザに通知します。
  • 著者
    パッケージに含まれるモジュールの作成者です。
アプリ
  • アイコン
    アプリギャラリーでアイコンとして使用するbmp画像です。
  • スクリプトを実行
    アプリを起動するときに実行するLabTalkスクリプト
必要なOriginのバージョン

パッケージに含まれるモジュールを使用するのに必要なOriginのバージョンです。

ターゲットパス

ターゲットパスはインストール中に使われ、パッケージマネジャにパッケージの内容をどこにインストールするのかを通知しします。

  • ユーザ = ユーザファイルフォルダ
  • System = Originのプログラムフォルダ
  • 自動 = ユーザおよびシステムのパスに書き込みできるかチェックします。どちらか一方だけが書き込める場合、そこにインストールします。両方とも書き込める場合、ターゲットパスを選択するようにユーザに促します。
ツールバー
  • ボタングループファイル
    パッケージにボタングループファイルが含まれ、そのボタングループをパッケージのインストール中にOriginのユーザ定義ボタングループに追加したい場合、ここにボタングループファイルを指定します。
    このフィールドをセットする最も簡単な方法は、最初にパッケージにボタングループファイルを追加することです。追加したら、ファイルリストでボタングループファイルを選択し、ツールバーの設定ボタンをクリックします。
  • ツールバーを作成
    これは、パッケージのインストール中に、ボタングループからツールバーを作成するかどうかを決めます。
    チェックを付けるとツールバーを作成し、チェックを付けないとツールバーを作成しません。
LabTalkスクリプト
  • インストール前
    ここに入力したLabTalkのコードをパッケージがインストールされる前に実行します。LabTalkのコマンドエラーが発生したら、インストールはキャンセルされます。作成したスクリプトコードでいくつかチェックを行い、インストールするべきでないと判定したら、'break 1;' で強制的にコマンドエラーを発生させるか、OPXERRに0以外の値をセットします。
  • インストール後
    ここに入力したLabTalkのコードをパッケージがインストールされた後に実行します。
  • アンインストール前
    ここに入力したLabTalkのコードをインストール済みのファイルがアンインストールされる前に実行します。これを使って、インストール前またはインストール後に行った変更を元に戻すことができます。作成したスクリプトコードでいくつかチェックを行い、アンインストールするべきでないと判定したら、'break 1;' で強制的にコマンドエラーを発生させるか、OPXERRに0以外の値をセットします。
ソースパス

このフィールドは、パッケージファイルすべてのソースパスを表示します。パッケージに追加されるすべてのファイルは、同じソースパスからのものでなければなりません。ソースパスは、最初にフォルダまたはファイルを追加したときにセットされます。

  • 最初のフォルダまたはファイルがOriginのプログラムフォルダまたはそのサブフォルダからのものであれば、ソースパスはOriginのプログラムフォルダにセットします。
  • 最初のフォルダまたはファイルがユーザファイルフォルダまたはそのサブフォルダからのものであれば、ソースパスはユーザファイルフォルダにセットします。
  • 最初のフォルダまたはファイルがOriginのプログラムフォルダでもユーザファイルフォルダからのものでもなければ、ソースパスは追加するフォルダの上位のフォルダパスまたは追加するファイルを含むフォルダのパスにセットします。
ファイルの位置を変更したら、手動でソースパスを編集できます。ソースパスの設定を新しい位置に変更すると、パッケージ内の変更したファイルを更新するため、ファイルの再パックボタンが使えるようになります。ソースパスを変更すると、他のコンピュータで作成したパッケージを再パックすることができます。

ダイアログ:ボタン

ツリービューの下には、6つのボタンがあります。以下は、ボタンについての説明です。

ファイルの再パック

このボタンをクリックして、パッケージに追加したすべてのファイルを再パックします。このボタンは、ファイルを変更し、変更したファイルをファイルパッケージ内に配置する場合に役立ちます。ファイルを削除して、再び追加するのではなく、単にこのボタンをクリックするだけで、ファイルに行ったすべての変更がパッケージに再パックされます。

このボタンはパッケージに少なくとも1つのファイルが存在しないと有効になりません。

ツールバーの設定

このボタンをクリックして、ツリービューのツールバーブランチのボタングループファイル設定をセットします。

このボタンは、ファイルリストでファイルを選択しないと有効になりません。

フォルダの追加...

このボタンをクリックして、フォルダを追加し、すべてのファイルとサブフォルダを選択したフォルダに含めます。

ツリービューのソースパスフィールドは、最初にフォルダまたはファイルがパッケージに追加されたときにセットされます。詳細は、ソースパスをご覧下さい。

ファイルの追加...

このボタンをクリックして、パッケージにファイルを追加します。「パッケージにファイルを追加」ダイアログでファイルを指定するように促されます。

ツリービューのソースパスフィールドは、最初にフォルダまたはファイルがパッケージに追加されたときにセットされます。詳細は、ソースパスをご覧下さい。

ファイルの削除

このボタンをクリックすると、選択されたファイルをすべてパッケージから削除します。

このボタンは、ファイルリストで1つ以上ファイルを選択しないと有効になりません。

最も右のボタンは、ファイルリストを表示するのに使用します。

ダイアログ:ファイルリスト

ファイルリストは、現在パッケージにあるすべてのファイルを表示します。リスト内のファイルの数と選択したファイルの数により、上記で述べたようにボタンの状態が変化します。

OriginC

パッケージマネジャダイアログは、OriginC\OriginLab\XMLPackage.cにあるOriginCコードで扱われます。

XMLPackage.cファイルは、パッケージを操作するOriginのエクスポートされた関数のコレクションを呼び出します。次の関数がoUtils.hで宣言されており、OriginのokUtil80.dllからエクスポートされた関数です。

  • okutil_create_package_tree
  • okutil_create_package_file
  • okutil_install_package_file
  • okutil_uninstall_package_file
  • okutil_get_installed_package_names
  • okutil_add_folder_to_package
  • okutil_add_files_to_package
  • okutil_remove_files_from_package
  • okutil_get_packed_file_names
  • okutil_repack_files

関数の戻り型および各関数が受け入れる引数についてはOriginCのUtils.hをご覧下さい。

内部動作

パッケージをインストールするとき、Originは最初にパッケージが既にインストールされているかどうかをチェックします。既にインストールされている場合、Originは、そのパッケージが既にインストールされていることをユーザに通知し、インストールを続行するかどうかを尋ねます。ユーザがインストールを続行することを選択した場合、Originは最初に既にインストールされているパッケージをアンインストールし、続けて現在のパッケージをインストールします。

インストールされる各パッケージに対して、Originはパッケージをパックされたファイル無しでパッケージリストファイルにコピーします。パッケージリストファイルは、OPXList.xmlで、ユーザファイルフォルダに保存されています。

サイレントインストール

サイレントインストールができるようにOPXを作成するには、次のように設定を行います。

  • LabTalkスクリプト > インストール前 の設定を空白にするか、ユーザの操作を要求しないスクリプトのみをセットします。
  • LabTalkスクリプト > インストール後の設定を次の2つのコマンドの前に、ユーザの操作を要求しないスクリプトをセットします。
doc -s; exit;

OPXへ必要な変更を行い、Originを起動し、OPXをインストールし、人による操作無しでOriginを終了します。次のコマンドラインは、OPXファイルのサイレントインストールのサンプルです。

Origin8.exe -h -R "instOPX OPXFileName.opx"

上記のコマンドラインで、自分のOPXのファイル名に編集して使用できます。