Changes between Version 29 and Version 30 of OSGeo4W_jp/PackagingInstructions
- Timestamp:
- 03/31/10 23:19:07 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
OSGeo4W_jp/PackagingInstructions
v29 v30 1 このページは OSGeo4Wパッケージの作成に使用された手法を説明するものです。1 このページはOSGeo4Wパッケージの作成に使用された手法を説明するものです。 2 2 [[TOC]] 3 3 = 概要 = 4 4 5 OSGeo4W パッケージは、それぞれ bzip2 圧縮された.tar ファイルであり、OSGeo4W ルートディレクトリで復元するよう意図されています。依存性とパッケージ説明を記述するようデザインされた setup.hintファイルと一緒になっています。5 OSGeo4Wパッケージは、それぞれbzip2圧縮された.tarファイルであり、OSGeo4Wルートディレクトリで復元するよう意図されています。依存性とパッケージ説明を記述するようデザインされたsetup.hintファイルと一緒になっています。 6 6 7 7 == パッケージディレクトリのレイアウト == 8 8 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 13 OSGeo4W用のパッケージは現在次の場所にアップロードされています: 14 14 15 15 upload.osgeo.org:/osgeo/download/osgeo4w/release/<package> … … 17 17 このツリーは次でレビューが可能です: http://download.osgeo.org/osgeo4w/release 18 18 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 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 を参照) 28 28 29 29 … … 33 33 34 34 * /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' という名前のアプリケーションのエイリアスの例です: 38 38 39 39 {{{ … … 45 45 }}} 46 46 47 ファイルの名前は非常に重要です。Apache 47 ファイルの名前は非常に重要です。Apacheは次のパターンに一致するファイルのみロードします: 48 48 {{{ 49 49 httpd_*.conf 50 50 }}} 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エイリアスファイルを通じて提供しているエイリアスにアクセスするリンクを提供します。インデックスパッケージファイルは厳密な命名規則に従っています: 56 56 {{{ 57 57 packagename.pkg.html 58 58 }}} 59 .pkg.html で終わるファイルのみがインデックスページに含まれます。ここに .pkgファイルの例があります ('foobar.pkg.html と名付けられています):59 .pkg.htmlで終わるファイルのみがインデックスページに含まれます。ここに.pkgファイルの例があります ('foobar.pkg.html と名付けられています): 60 60 {{{ 61 61 <pre><h3>Foobar Application</h3> … … 64 64 == setup.hint == 65 65 66 各パッケージディレクトリは通常、パッケージの長短の記述そして依存する他のパッケージのリストを含む setup.hint ファイルを所有しています。 パッケージにいくつかのバージョンがある場合でも、パッケージには setup.hint ファイルは通常1つのみです。通常の setup.hintファイルは次のようになります::66 各パッケージディレクトリは通常、パッケージの長短の記述そして依存する他のパッケージのリストを含むsetup.hintファイルを所有しています。 パッケージにいくつかのバージョンがある場合でも、パッケージにはsetup.hintファイルは通常1つのみです。通常のsetup.hintファイルは次のようになります:: 67 67 {{{ 68 68 sdesc: "The Libgeotiff library, commandline tools and supporting tables." … … 76 76 == インストール後の動作 == 77 77 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つあります:: 81 81 82 82 === !TextReplace 例 !#1 === 83 83 84 * gmap 84 * gmapパッケージの /httpd.d/httpd_gmap.conf ファイルにあるハードコードされたパス: 85 85 {{{ 86 86 Alias /gmap/ "C:/mypath/apps/gmap/htdocs/" … … 102 102 </Directory> 103 103 }}} 104 * 次に、その変数を実際のユーザーのインストールパスと置き換えるため、gmap.bat (gmap パッケージの /etc/postinstall/ にあります) という名前の postinstallスクリプトを作成します:104 * 次に、その変数を実際のユーザーのインストールパスと置き換えるため、gmap.bat(gmapパッケージの /etc/postinstall/ にあります)という名前のpostinstallスクリプトを作成します: 105 105 {{{ 106 106 textreplace -sf httpd.d/httpd_gmap.conf -df httpd.d/httpd_gmap.conf -map @osgeo4w@ %OSGEO4W_ROOT% … … 109 109 === !TextReplace 例 !#2 === 110 110 111 2008年4月の時点で textreplace はファイルをアップデートするので、 infile/outfileシンタックスは不要になります:111 2008年4月の時点でtextreplaceはファイルをアップデートするので、infile/outfileシンタックスは不要になります: 112 112 {{{ 113 113 textreplace -std -t bin/o4w_env.bat … … 134 134 === textreplace および python === 135 135 136 textreplace が二重のバックスラッシュを使用するように、postinstall batのはじめに以下を追加してください。(`C:\OSGeo4W` は `C:\\OSGeo4W` となります):136 textreplaceが二重のバックスラッシュを使用するように、postinstall batのはじめに以下を追加してください。(`C:\OSGeo4W` は `C:\\OSGeo4W` となります): 137 137 {{{ 138 138 set OSGEO4W_ROOT=%OSGEO4W_ROOT:\=\\% … … 141 141 == ショートカットの作成 == 142 142 143 パッケージが処理するもう1つの postinstall タスクは、特定のコマンドを起動するショートカットの作成です。テキスト置換実行ファイルの場合のように、インストーラにあるユーティリティバイナリ xxmklink.exe (msvcrt パッケージの一部) があります. xxmklinkを入力することによって、このユーティリティがサポートしている全てのオプションを見ることができます。インストール後のファイルにおいての使用例をここにいくつか挙げておきます:143 パッケージが処理するもう1つのpostinstallタスクは、特定のコマンドを起動するショートカットの作成です。テキスト置換実行ファイルの場合のように、インストーラにあるユーティリティバイナリxxmklink.exe(msvcrt パッケージの一部)があります。xxmklinkを入力することによって、このユーティリティがサポートしている全てのオプションを見ることができます。インストール後のファイルにおいての使用例をここにいくつか挙げておきます: 144 144 {{{ 145 145 mkdir "%OSGEO4W_STARTMENU%" … … 158 158 }}} 159 159 160 postinstall スクリプトは いかなる DOSコマンドまたは指定した引数をもつインストールされたバイナリを実行することが可能です。160 postinstallスクリプトはいかなるDOSコマンドまたは指定した引数をもつインストールされたバイナリを実行することが可能です。 161 161 162 162 = シェルの初期化 = 163 163 164 特定の環境変数を設定する必要のあるパッケージもあります。OSGeo4W 164 特定の環境変数を設定する必要のあるパッケージもあります。OSGeo4Wコマンドシェルにとって、これは etc/ini にある初期化ファイルを追加することによって達成されます。 以下は典型的な例です:: 165 165 {{{ 166 166 SET GDAL_DATA=%OSGEO4W_ROOT%\share\gdal 167 167 }}} 168 これらのスクリプトは、OSGeo4W シェルの環境構築の際に %OSGEO4W_ROOT%\OSGeo4W.bat によってランダムな順番で実行されます。 OSGEO4W_ROOt環境変数は常に最初に設定されます。168 これらのスクリプトは、OSGeo4Wシェルの環境構築の際に%OSGEO4W_ROOT%\OSGeo4W.batによってランダムな順番で実行されます。OSGEO4W_ROOt環境変数は常に最初に設定されます。 169 169 170 170 = アプリケーションバッチファイルのテンプレート = 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を設定します。 172 172 {{{ 173 173 @echo off … … 180 180 == Setup.ini == 181 181 182 Cygwin Setup.exe は、実行されるたびに[http://download.osgeo.org/osgeo4w/setup.ini setup.ini] ファイルを全パッケージのリストと一緒にダウンロードします。このファイルは、ウェブ上にある `osgeo4w-regen.sh` を呼び出すスクリプトの実行に伴い、パッケージのアップロードの度にサーバーに再作成されるべきです。これは、-t コマンドラインオプションをパスすることによってセットアッププログラムと一緒に使用可能なファイルのテストバージョンを作成します。一度テストが行われたら、一般のユーザーが利用できるようリンク `osgeo4w-promote.sh` を用いてこのファイルを setup.iniにコピーします。182 Cygwin Setup.exeは、実行されるたびに[http://download.osgeo.org/osgeo4w/setup.ini setup.ini] ファイルを全パッケージのリストと一緒にダウンロードします。このファイルは、ウェブ上にある `osgeo4w-regen.sh` を呼び出すスクリプトの実行に伴い、パッケージのアップロードの度にサーバーに再作成されるべきです。これは、-t コマンドラインオプションをパスすることによってセットアッププログラムと一緒に使用可能なファイルのテストバージョンを作成します。一度テストが行われたら、一般のユーザーが利用できるようリンク `osgeo4w-promote.sh` を用いてこのファイルをsetup.iniにコピーします。 183 183 184 184 * テストセットアップの生成: `http://upload.osgeo.org/cgi-bin/osgeo4w-regen.sh` … … 189 189 == 記録 == 190 190 191 あなたのパッケージに関する情報を含む [wiki:OSGeo4W_jp/PackageListing パッケージリスト] とリンクしていない wiki ページを準備してください。ページは端末からサーバへのプロジェクトに戻るポインター、パッケージャーの名前 (パッケージャーのコンタクト情報が記載されているページへのリンク)、そして OSGeo4W内での置き場所についての特別な注意書きを含みます。191 あなたのパッケージに関する情報を含む [wiki:OSGeo4W_jp/PackageListing パッケージリスト] とリンクしていないwikiページを準備してください。ページは端末からサーバへのプロジェクトに戻るポインター、パッケージャーの名前(パッケージャーのコンタクト情報が記載されているページへのリンク)、そしてOSGeo4W内での置き場所についての特別な注意書きを含みます。 192 192 193 193 == 共通の問題 == … … 195 195 === 問題のあるパッケージのバージョン === 196 196 197 現在のバージョンとしてリストされていないパッケージが見つかるかもしれません。インストーラーはapache-2.2.8-3 が最新のバージョンとしていますが、apache-2.2.14が正しい最新のバージョンである、という例が次にあります:197 現在のバージョンとしてリストされていないパッケージが見つかるかもしれません。インストーラーはapache-2.2.8-3を最新のバージョンとしていますが、apache-2.2.14が正しい最新のバージョンである、という例が次にあります: 198 198 199 199 {{{ … … 206 206 }}} 207 207 208 これを解決するため、次のようにsetup.hint ファイル (詳細は http://cygwin.com/setup.html#setup.hint を参照)で現在のバージョンと前のバージョンを明確にしてください:208 これを解決するため、次のようにsetup.hintファイル(詳細は http://cygwin.com/setup.html#setup.hint を参照)で現在のバージョンと前のバージョンを明確にしてください: 209 209 210 210 {{{