Changes between Version 29 and Version 30 of OSGeo4W_jp/PackagingInstructions


Ignore:
Timestamp:
Mar 31, 2010, 11:19:07 PM (14 years ago)
Author:
hfujii
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OSGeo4W_jp/PackagingInstructions

    v29 v30  
    1 このページは OSGeo4W パッケージの作成に使用された手法を説明するものです。
     1このページはOSGeo4Wパッケージの作成に使用された手法を説明するものです。
    22[[TOC]]
    33= 概要 =
    44
    5 OSGeo4W パッケージは、それぞれ bzip2 圧縮された.tar ファイルであり、OSGeo4W ルートディレクトリで復元するよう意図されています。依存性とパッケージ説明を記述するようデザインされた setup.hint ファイルと一緒になっています。
     5OSGeo4Wパッケージは、それぞれbzip2圧縮された.tarファイルであり、OSGeo4Wルートディレクトリで復元するよう意図されています。依存性とパッケージ説明を記述するようデザインされたsetup.hintファイルと一緒になっています。
    66
    77== パッケージディレクトリのレイアウト ==
    88
    9 インストールされた OSGeo4W ディレクトリツリーは[wiki:OSGeo4W_jp/DirectoryLayout ディレクトリレイアウト]に記述されています。
    10 
    11 通常、OSGeo4W パッケージは http://cygwin.com/setup.html で説明されている Cygwin のパッケージのように構築されています。
    12 
    13 OSGeo4W 用のパッケージは現在次の場所にアップロードされています:
     9インストールされたOSGeo4Wディレクトリツリーは[wiki:OSGeo4W_jp/DirectoryLayout ディレクトリレイアウト]に記述されています。
     10
     11通常、OSGeo4Wパッケージは http://cygwin.com/setup.html で説明されているCygwinのパッケージのように構築されています。
     12
     13OSGeo4W用のパッケージは現在次の場所にアップロードされています:
    1414
    1515 upload.osgeo.org:/osgeo/download/osgeo4w/release/<package>
     
    1717このツリーは次でレビューが可能です: http://download.osgeo.org/osgeo4w/release
    1818
    19 [[Image(ticket:132:package-name.png, nolink,title="Osaka City University", right)]]各パッケージディレクトリは1つの setup.hint ファイルを所有しています。例えば、gdal-1.5.0-1.tar.bz2 の場合、.tar.bz2 ファイルはそのパッケージの1つまたはそれ以上のバージョンを所有しています。これらは通常、 "1.5.0" がパッケージされていた GDAL のバージョンで
    20 "-1" がパッケージを試みるバージョンを指す場所なので gdal-1.5.0-1.tar.bz2 のような名前になります。
    21 ディレクトリはまた、gdal-1.5.0-1-src.tar.bz2 のように名付けられた、対応するソーススナップショットを含むことが可能です。ベースネームはパッケージが見つかったディレクトリと完全に一致していなければなりません。ですから "gdal" ディレクトリは gdal-<version>-<revision>.tar.bz2 パッケージファイルを持っていることになります。
    22 
    23 
    24 1つのプロジェクトが複数のパッケージとしてまとめられている場合があります。このようなケースでは、パッケージは通常プライマリディレクトリのサブディレクトリとして作成されています。例えば、GDAL の Oracle 10g ドライバは release/gdal/gdal-oracle10g ディレクトリに保管され gdal-oracle10g-1.5.0-1.tar.bz2 としてパッケージされています。
    25 
    26 
    27 '''注意:''' osgeo4w の msys (%OSGEO4W_ROOT%\apps\msys\bin) から `tar` と `bzip2` を使用してください。setup.exe は作成されるアーカイブを処理できないため、7zip は使用しないでください。Linux tar/bzip2 によって報告されている問題はありません。(チケット #101 を参照)
     19[[Image(ticket:132:package-name.png, nolink,title="Osaka City University", right)]]各パッケージディレクトリは1つのsetup.hintファイルを所有しています。例えば、gdal-1.5.0-1.tar.bz2の場合、.tar.bz2ファイルはそのパッケージの1つまたはそれ以上のバージョンを所有しています。これらは通常、"1.5.0" がパッケージされていたGDALのバージョンで
     20"-1" がパッケージを試みるバージョンを指す場所なのでgdal-1.5.0-1.tar.bz2のような名前になります。
     21ディレクトリはまた、gdal-1.5.0-1-src.tar.bz2のように名付けられた、対応するソーススナップショットを含むことが可能です。ベースネームはパッケージが見つかったディレクトリと完全に一致していなければなりません。ですから "gdal" ディレクトリはgdal-<version>-<revision>.tar.bz2パッケージファイルを持っていることになります。
     22
     23
     241つのプロジェクトが複数のパッケージとしてまとめられている場合があります。このようなケースでは、パッケージは通常プライマリディレクトリのサブディレクトリとして作成されています。例えば、GDALのOracle 10gドライバはrelease/gdal/gdal-oracle10gディレクトリに保管されgdal-oracle10g-1.5.0-1.tar.bz2としてパッケージされています。
     25
     26
     27'''注意:''' osgeo4wのmsys(%OSGEO4W_ROOT%\apps\msys\bin)から`tar`と`bzip2`を使用してください。setup.exeは作成されるアーカイブを処理できないため、7zipは使用しないでください。Linux tar/bzip2によって報告されている問題はありません。(チケット #101 を参照)
    2828
    2929
     
    3333
    3434 * /osgeo4w/apps/ ディレクトリはアプリケーションを保管します。 なるべく意味のある名前(小文字で)を用いて /osgeo4w/apps/ ディレクトリのサブディレクトリにアプリケーションをインストールしてください。
    35  * Apache エイリアス "/ms_tmp/" は、/osgeo4w/tmp/ms_tmp/ ディレクトリを指す一時的な web-accessible ファイルにアクセスします。
    36  * Apache エイリアス "/cgi-bin/" は /osgeo4w/bin/ フォルダーを指しています。 例 mapserv.exe は /bin フォルダにあります。
    37  * /osgeo4w/httpd.d/ ディレクトリは Apache エイリアスファイルを所有しています。このディレクトリは開始すると自動的にアパッチによってスキャンされます。 以下は、'foobar' という名前のアプリケーションのエイリアスの例です:
     35 * Apacheエイリアス "/ms_tmp/" は、/osgeo4w/tmp/ms_tmp/ ディレクトリを指す一時的なweb-accessibleファイルにアクセスします。
     36 * Apacheエイリアス "/cgi-bin/" は /osgeo4w/bin/ フォルダーを指しています。 例 mapserv.exeは /binフォルダにあります。
     37 * /osgeo4w/httpd.d/ ディレクトリはApacheエイリアスファイルを所有しています。このディレクトリは開始すると自動的にアパッチによってスキャンされます。 以下は、'foobar' という名前のアプリケーションのエイリアスの例です:
    3838
    3939{{{
     
    4545}}}
    4646
    47 ファイルの名前は非常に重要です。Apache は次のパターンに一致するファイルのみロードします:
     47ファイルの名前は非常に重要です。Apacheは次のパターンに一致するファイルのみロードします:
    4848{{{
    4949           httpd_*.conf
    5050}}}
    51 通常、* をアプリケーションの名前に置き換えます。上記の例では、アプリケーションは /OSGEO4W/httpd.d/ ディレクトリにおいて httpd_foobar.conf を使用しています。これはアプリケーションにアクセスするためユーザーの http://localhost/foobar/ への接続を可能にします。
    52 
    53  * アプリケーションへのリンクが OSGeo4W インデックスページ (ローカルホスト) に表示されるよう、全てのウェブアプリケーションは小さい .pkg ファイルを /osgeo4w/apache/htdocs/ フォルダに含みます。  
    54 
    55 この 'Index Package File' は 自動的に OSGeo4W インデックスページに含まれる小さい HTML スニペット を提供します。この HTML スニペット はアプリケーションの短い説明と、 Apache エイリアスファイルを通じて提供しているエイリアスにアクセスするリンクを提供します。インデックスパッケージファイルは厳密な命名規則に従っています:
     51通常、* をアプリケーションの名前に置き換えます。上記の例では、アプリケーションは /OSGEO4W/httpd.d/ ディレクトリにおいてhttpd_foobar.confを使用しています。これはアプリケーションにアクセスするためユーザーの http://localhost/foobar/ への接続を可能にします。
     52
     53 * アプリケーションへのリンクがOSGeo4Wインデックスページ(ローカルホスト)に表示されるよう、全てのウェブアプリケーションは小さい.pkgファイルを /osgeo4w/apache/htdocs/ フォルダに含みます。  
     54
     55この 'Index Package File' は自動的にOSGeo4Wインデックスページに含まれる小さいHTMLスニペットを提供します。このHTMLスニペットはアプリケーションの短い説明と、 Apacheエイリアスファイルを通じて提供しているエイリアスにアクセスするリンクを提供します。インデックスパッケージファイルは厳密な命名規則に従っています:
    5656{{{
    5757   packagename.pkg.html
    5858}}}
    59 .pkg.html で終わるファイルのみがインデックスページに含まれます。ここに .pkg ファイルの例があります ('foobar.pkg.html と名付けられています):
     59.pkg.htmlで終わるファイルのみがインデックスページに含まれます。ここに.pkgファイルの例があります ('foobar.pkg.html と名付けられています):
    6060{{{
    6161   <pre><h3>Foobar Application</h3>
     
    6464== setup.hint ==
    6565
    66 各パッケージディレクトリは通常、パッケージの長短の記述そして依存する他のパッケージのリストを含む setup.hint ファイルを所有しています。 パッケージにいくつかのバージョンがある場合でも、パッケージには setup.hint ファイルは通常1つのみです。通常の setup.hint ファイルは次のようになります::
     66各パッケージディレクトリは通常、パッケージの長短の記述そして依存する他のパッケージのリストを含むsetup.hintファイルを所有しています。 パッケージにいくつかのバージョンがある場合でも、パッケージにはsetup.hintファイルは通常1つのみです。通常のsetup.hintファイルは次のようになります::
    6767{{{
    6868 sdesc: "The Libgeotiff library, commandline tools and supporting tables."
     
    7676== インストール後の動作 ==
    7777
    78 パッケージは、/etc/postinstall ディレクトリにある .bat ファイルをパッケージの一部として含むことによってインストール後の動作をとることがあります。ファイル名は etc/postinstall/<package>.bat. と名付けられます。この bat ファイルは 環境変数 OSGEO4W_STARTMENU、 OSGEO4W_HOME と OSGEO4W_HOME_MSYS 定義された, そしてすでにパスにある OSGEO4W_HOME/bin とともに実行されます。
    79 
    80 インストール後の動作でよく行われることの1つが、OSGeo4W ツリーへのインストールされたパスを含むための設定ファイルの挿入/アップグレードです。これは普通 postintall ファイルと一緒に処理され、ここにその例が2つあります::
     78パッケージは、/etc/postinstall ディレクトリにある.batファイルをパッケージの一部として含むことによってインストール後の動作をとることがあります。ファイル名は etc/postinstall/<package>.bat. と名付けられます。このbatファイルは環境変数OSGEO4W_STARTMENU、OSGEO4W_HOMEとOSGEO4W_HOME_MSYS定義された、そしてすでにパスにあるOSGEO4W_HOME/binとともに実行されます。
     79
     80インストール後の動作でよく行われることの1つが、OSGeo4Wツリーへのインストールされたパスを含むための設定ファイルの挿入/アップグレードです。これは普通postintallファイルと一緒に処理され、ここにその例が2つあります::
    8181
    8282=== !TextReplace 例 !#1 ===
    8383
    84  * gmap パッケージの /httpd.d/httpd_gmap.conf ファイルにあるハードコードされたパス:
     84 * gmapパッケージの /httpd.d/httpd_gmap.conf ファイルにあるハードコードされたパス:
    8585{{{
    8686  Alias /gmap/ "C:/mypath/apps/gmap/htdocs/"
     
    102102  </Directory>
    103103}}}
    104  * 次に、その変数を実際のユーザーのインストールパスと置き換えるため、gmap.bat (gmap パッケージの /etc/postinstall/ にあります) という名前の postinstall スクリプトを作成します:
     104 * 次に、その変数を実際のユーザーのインストールパスと置き換えるため、gmap.bat(gmapパッケージの /etc/postinstall/ にあります)という名前のpostinstallスクリプトを作成します:
    105105{{{
    106106  textreplace -sf httpd.d/httpd_gmap.conf -df httpd.d/httpd_gmap.conf -map @osgeo4w@ %OSGEO4W_ROOT%
     
    109109=== !TextReplace 例 !#2 ===
    110110
    111 2008年4月の時点で textreplace はファイルをアップデートするので、 infile/outfile シンタックスは不要になります:
     1112008年4月の時点でtextreplaceはファイルをアップデートするので、infile/outfileシンタックスは不要になります:
    112112{{{
    113113textreplace -std -t bin/o4w_env.bat
     
    134134=== textreplace および python ===
    135135
    136 textreplace が二重のバックスラッシュを使用するように、postinstall bat のはじめに以下を追加してください。(`C:\OSGeo4W` は `C:\\OSGeo4W` となります):
     136textreplaceが二重のバックスラッシュを使用するように、postinstall batのはじめに以下を追加してください。(`C:\OSGeo4W` は `C:\\OSGeo4W` となります):
    137137{{{
    138138set OSGEO4W_ROOT=%OSGEO4W_ROOT:\=\\%
     
    141141== ショートカットの作成 ==
    142142
    143 パッケージが処理するもう1つの postinstall タスクは、特定のコマンドを起動するショートカットの作成です。テキスト置換実行ファイルの場合のように、インストーラにあるユーティリティバイナリ xxmklink.exe (msvcrt パッケージの一部) があります. xxmklink を入力することによって、このユーティリティがサポートしている全てのオプションを見ることができます。インストール後のファイルにおいての使用例をここにいくつか挙げておきます:
     143パッケージが処理するもう1つのpostinstallタスクは、特定のコマンドを起動するショートカットの作成です。テキスト置換実行ファイルの場合のように、インストーラにあるユーティリティバイナリxxmklink.exe(msvcrt パッケージの一部)があります。xxmklinkを入力することによって、このユーティリティがサポートしている全てのオプションを見ることができます。インストール後のファイルにおいての使用例をここにいくつか挙げておきます:
    144144{{{
    145145  mkdir "%OSGEO4W_STARTMENU%"
     
    158158}}}
    159159
    160 postinstall スクリプトは いかなる DOS コマンドまたは指定した引数をもつインストールされたバイナリを実行することが可能です。
     160postinstallスクリプトはいかなるDOSコマンドまたは指定した引数をもつインストールされたバイナリを実行することが可能です。
    161161
    162162= シェルの初期化 =
    163163
    164 特定の環境変数を設定する必要のあるパッケージもあります。OSGeo4W コマンドシェルにとって、これは etc/ini にある初期化ファイルを追加することによって達成されます。 以下は典型的な例です::
     164特定の環境変数を設定する必要のあるパッケージもあります。OSGeo4Wコマンドシェルにとって、これは etc/ini にある初期化ファイルを追加することによって達成されます。 以下は典型的な例です::
    165165{{{
    166166 SET GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
    167167}}}
    168 これらのスクリプトは、OSGeo4W シェルの環境構築の際に %OSGEO4W_ROOT%\OSGeo4W.bat によってランダムな順番で実行されます。 OSGEO4W_ROOt 環境変数は常に最初に設定されます。
     168これらのスクリプトは、OSGeo4Wシェルの環境構築の際に%OSGEO4W_ROOT%\OSGeo4W.batによってランダムな順番で実行されます。OSGEO4W_ROOt環境変数は常に最初に設定されます。
    169169
    170170= アプリケーションバッチファイルのテンプレート =
    171 標準環境設定でのアプリケーション開始方法のサンプル。`foo.exe` をアプリケーション実行可能ファイルで置き換え、`foobar.bz2:bin/foo.bat.tmpl` として保存します。 [#Post-InstallActions Post-Install] は適切な OSGEO4W_ROOT を設定します。
     171標準環境設定でのアプリケーション開始方法のサンプル。`foo.exe` をアプリケーション実行可能ファイルで置き換え、`foobar.bz2:bin/foo.bat.tmpl` として保存します。 [#Post-InstallActions Post-Install] は適切なOSGEO4W_ROOTを設定します。
    172172{{{
    173173@echo off
     
    180180== Setup.ini ==
    181181
    182 Cygwin Setup.exe は、実行されるたびに[http://download.osgeo.org/osgeo4w/setup.ini setup.ini] ファイルを全パッケージのリストと一緒にダウンロードします。このファイルは、ウェブ上にある `osgeo4w-regen.sh` を呼び出すスクリプトの実行に伴い、パッケージのアップロードの度にサーバーに再作成されるべきです。これは、-t コマンドラインオプションをパスすることによってセットアッププログラムと一緒に使用可能なファイルのテストバージョンを作成します。一度テストが行われたら、一般のユーザーが利用できるようリンク `osgeo4w-promote.sh` を用いてこのファイルを setup.ini にコピーします。
     182Cygwin Setup.exeは、実行されるたびに[http://download.osgeo.org/osgeo4w/setup.ini setup.ini] ファイルを全パッケージのリストと一緒にダウンロードします。このファイルは、ウェブ上にある `osgeo4w-regen.sh` を呼び出すスクリプトの実行に伴い、パッケージのアップロードの度にサーバーに再作成されるべきです。これは、-t コマンドラインオプションをパスすることによってセットアッププログラムと一緒に使用可能なファイルのテストバージョンを作成します。一度テストが行われたら、一般のユーザーが利用できるようリンク `osgeo4w-promote.sh` を用いてこのファイルをsetup.iniにコピーします。
    183183
    184184 * テストセットアップの生成: `http://upload.osgeo.org/cgi-bin/osgeo4w-regen.sh`
     
    189189== 記録 ==
    190190
    191 あなたのパッケージに関する情報を含む [wiki:OSGeo4W_jp/PackageListing パッケージリスト] とリンクしていない wiki ページを準備してください。ページは端末からサーバへのプロジェクトに戻るポインター、パッケージャーの名前 (パッケージャーのコンタクト情報が記載されているページへのリンク)、そして OSGeo4W 内での置き場所についての特別な注意書きを含みます。
     191あなたのパッケージに関する情報を含む [wiki:OSGeo4W_jp/PackageListing パッケージリスト] とリンクしていないwikiページを準備してください。ページは端末からサーバへのプロジェクトに戻るポインター、パッケージャーの名前(パッケージャーのコンタクト情報が記載されているページへのリンク)、そしてOSGeo4W内での置き場所についての特別な注意書きを含みます。
    192192
    193193== 共通の問題 ==
     
    195195=== 問題のあるパッケージのバージョン ===
    196196
    197 現在のバージョンとしてリストされていないパッケージが見つかるかもしれません。インストーラーはapache-2.2.8-3 が最新のバージョンとしていますが、apache-2.2.14 が正しい最新のバージョンである、という例が次にあります:
     197現在のバージョンとしてリストされていないパッケージが見つかるかもしれません。インストーラーはapache-2.2.8-3を最新のバージョンとしていますが、apache-2.2.14が正しい最新のバージョンである、という例が次にあります:
    198198
    199199{{{
     
    206206}}}
    207207
    208 これを解決するため、次のようにsetup.hint ファイル (詳細は http://cygwin.com/setup.html#setup.hint を参照) で現在のバージョンと前のバージョンを明確にしてください:
     208これを解決するため、次のようにsetup.hintファイル(詳細は http://cygwin.com/setup.html#setup.hint を参照)で現在のバージョンと前のバージョンを明確にしてください:
    209209
    210210{{{