Version 6 (modified by 15 years ago) ( diff ) | ,
---|
このページは OSGeo4W パッケージの作成に使用された手法を説明するものです。
Table of Contents
概要
OSGeo4W パッケージは、それぞれ bzip2 圧縮された.tar ファイルで、OSGeo4W ルートディレクトリでunpackするよう意図されています。 依存性とパッケージ説明を記述するようデザインされた setup.hint ファイルと一緒になっています。
パッケージディレクトリのレイアウト
インストールされた OSGeo4W ディレクトリツリーは DirectoryLayout に記述されています。
通常 OSGeo4W パッケージは http://cygwin.com/setup.html で説明されている Cygwin のパッケージのように構築されています。
OSGeo4W 用のパッケージは現在次の場所にアップロードされています:
upload.osgeo.org:/osgeo/download/osgeo4w/release/<package>
このツリーは次でレビューが可能です: http://download.osgeo.org/osgeo4w/release
各パッケージディレクトリは1つの setup.hint ファイルを所有しており、.tar.bz2 ファイルとしてそのパッケージの1つまたはそれ以上のバージョンを所有しています。これらは通常、 "1.5.0" がパッケージされていたGDALのバージョンで "-1" がパッケージを試みるバージョンを指す場所では gdal-1.5.0-1.tar.bz2 のような名前を持っています。 ディレクトリはまた、gdal-1.5.0-1-src.tar.bz2 のように名付けられた対応するソーススナップショットを含むことが可能です。ベースネームはパッケージが見つかったディレクトリと完全に一致していなければなりません。ですから "gdal" ディレクトリは gdal-<version>-<revision>.tar.bz2 パッケージファイルを持っていることになります。
1つのプロジェクトがいくつかのパッケージとしてパッケージされている場合があります。このようなケースでは、パッケージは通常primaryディレクトリのサブディレクトリとして作成されています。例えば、GDAL の Oracle 10g ドライバーは release/gdal/gdal-oracle10g ディレクトリに保管され gdal-oracle10g-1.5.0-1.tar.bz2 としてパッケージされています。
Note: osgeo4w の msys (%OSGEO4W_ROOT%\apps\msys\bin) から tar
と bzip2
を使用してください。setup.exe は作成されるアーカイブをunderstandできないため、7zip は使用しないでください。Linux tar/bzip2 によって報告されている問題はありません。(チケット #101 を参照)
ウェブアプリケーションパッケージのガイドライン
重要なガイドライン:
- /osgeo4w/apps/ ディレクトリはアプリケーションをの保管します。 なるべく意味のある名前(小文字で)を用いて /osgeo4w/apps/ ディレクトリのサブディレクトリにアプリケーションをインストールしてください。
- アパッチエイリアス "/ms_tmp/" は、/osgeo4w/tmp/ms_tmp/ ディレクトリを指す一時的な web-accessible ファイルにアクセスします。
- アパッチエイリアス "/cgi-bin/" は /osgeo4w/bin/ フォルダーを指しています。 例 mapserv.exe は /bin フォルダにあります。
- /osgeo4w/httpd.d/ ディレクトリは アパッチエイリアスファイルを所有しています。このディレクトリは開始すると自動的にアパッチによってスキャンされます。 以下は 'foobar' という名前のアプリケーションのエイリアスの例です:
Alias /foobar/ @osgeo4w@/apps/foobar/htdocs/ AllowOverride None Options Indexes FollowSymLinks Multiviews Order allow,deny Allow from all
ファイルの名前は非常に重要です。アパッチは次のパターンに一致するファイルのみロードします:
httpd_*.conf
通常、* をアプリケーションの名前に置き換えます。 上記の例では、アプリケーションは /OSGEO4W/httpd.d/ ディレクトリにおいて httpd_foobar.conf を使用しています。これはアプリケーションにアクセスするためユーザーの http://localhost/foobar/ への接続を可能にします。
- アプリケーションへのリンクが OSGeo4W インデックスページ (ローカルホスト) に表示されるよう、全てのウェブアプリケーションは小さい .pkg ファイルを /osgeo4w/apache/htdocs/ フォルダに含むべきです。
この 'Index Package File' は 自動的に OSGeo4W インデックスページに含まれる小さい HTML スニペット を提供します。 この HTML スニペット はアプリケーションの短い説明とアパッチエイリアスファイルを通じて提供しているエイリアスにアクセスするリンクを提供します。 インデックスパッケージファイルは厳密な命名規約 naming convention に従っています:
packagename.pkg.html
.pkg.html で終わるファイルのみがインデックスページに含まれます。 ここに .pkg ファイルの例があります ('foobar.pkg.html と名付けられています):
<pre><h3>Foobar Application</h3> <blockquote><p><a href="/foobar/">Foobar demo</a></p></pre>
setup.hint
各パッケージディレクトリは通常、パッケージの長短の記述そして依存する他のパッケージのリストを含む setup.hint ファイルを所有しています。 パッケージにいくつかのバージョンがある場合でも、パッケージには setup.hint ファイルは通常1つのみです。 通常の setup.hint ファイルは次のようになります::
sdesc: "The Libgeotiff library, commandline tools and supporting tables." ldesc: "The Libgeotiff library, commandline tools and supporting tables. Used for manipulating GeoTIFF files." category: Libs Commands requires: msvcrt libtiff
これはパッケージの長短の記述、インストーラーユーザーインターフェイスのためそれが現れるカテゴリーのリスト、そして要求するパッケージを指しています。This indicates the short and long description for the package, the list of categories it will appear in for the installer user interface, and the package it requires.
インストール後の動作
パッケージは、/etc/postinstall ディレクトリにある .bat ファイルをパッケージの一部として含むことによってpost-install actions をとることがあります。ファイル名は etc/postinstall/<package>.bat. と名付けられます。この bat ファイルは the environment variables OSGEO4W_STARTMENU, OSGEO4W_HOME and OSGEO4W_HOME_MSYS defined, and with OSGEO4W_HOME/bin already in the path とともに実行されます
postinstall actions でよく行われることの1つが、 OSGeo4W ツリーへのインストールされたパスを含むための設定ファイルの挿入/アップグレードです。 これは普通 postintall ファイルと処理され、ここにその例が2つあります::
TextReplace Example #1
- gmap パッケージの /httpd.d/httpd_gmap.conf ファイルにあるハードコードされたパス:
Alias /gmap/ "C:/mypath/apps/gmap/htdocs/" <Directory "C:/mypath/apps/gmap/htdocs/"> AllowOverride None Options Indexes FollowSymLinks Multiviews Order allow,deny Allow from all </Directory>
- まず始めに、ファイルにあるハードコードされたパスを好みのテキスト編集で @osgeo4w@ 変数に置き換えます。 例えば、上記のファイルは次のようになります:
Alias /gmap/ "@osgeo4w@/apps/gmap/htdocs/" <Directory "@osgeo4w@/apps/gmap/htdocs/"> AllowOverride None Options Indexes FollowSymLinks Multiviews Order allow,deny Allow from all </Directory>
- 次に、その変数を実際のユーザーのインストールパスと置き換えるため、gmap.bat (gmap package の /etc/postinstall/ にあります) という名前の postinstall スクリプトを作成します:
textreplace -sf httpd.d/httpd_gmap.conf -df httpd.d/httpd_gmap.conf -map @osgeo4w@ %OSGEO4W_ROOT%
TextReplace Example #2
textreplace -sf bin/gdal-config.tmpl -df bin/gdal-config \ -map @osgeo4w@ "%OSGEO4W_ROOT%" \ -map @osgeo4w_msys@ "%OSGEO4W_ROOT_MSYS%"
どちらの例も bin/textreplace プログラム (msvcrt パッケージの一部)を使用しています. 2つ目の例はソースファイル bin/gdal-config.tmpl と 目的ファイル bin/gdal-config と一緒に使用し、@osgeo4w@ の occurances を OSGEO4W_ROOT 環境変数の値で置き換え、 @osgeo4w_msys@ を OSGEO4W_ROOT_MSYS 環境変数の値で置き換えます。 .tmpl バージョンからファイルをプロセスするパターンは十分に共通しているため、テキスト置換は同じ動作に対してこの short form をサポートしています:
textreplace -std -t bin/gdal-config
これは、"standard" 変換をファイル bin/gdal-config.tmpl に適用し bin/gdal-config に結果を挿入します。
ショートカットの作成
パッケージが行うもう1つの postinstall タスクは、特定のコマンドを起動するショートカットの作成です。 テキスト置換実行ファイルの場合のように、インストーラにあるユーティリティバイナリ xxmklink.exe (msvcrt パッケージの一部package) があります. xxmklink を入力することによって、このユーティリティがサポートしている全てのオプションを見ることができます。インストール後のファイルにおいての使用例をここにいくつか挙げておきます:
mkdir "%OSGEO4W_STARTMENU%" mkdir "%OSGEO4W_STARTMENU%\Apache" xxmklink "%OSGEO4W_STARTMENU%\Apache\OSGEO4W-Apache-Install.lnk" %OSGEO4W_ROOT%\Apache\bin\httpd.exe " -k install -n \"Apache OSGEO4W Web Server\""
アイコンの使用:
xxmklink "%OSGEO4W_STARTMENU%\ttt.lnk" cmd.exe "" . "my_desc" 1 "%OSGEO4W_ROOT%\OSGeo4W.ico"
デスクトップのアイコン:
xxmklink "%ALLUSERSPROFILE%\Desktop\OpenEV.lnk" "%OSGEO4W_ROOT%\bin\openev.bat" " " \ "OSGeo4W OpenEV" 1 "%OSGEO4W_ROOT%\apps\openev\icon.ico"
postinstall スクリプトは いかなる DOS コマンドまたは設定する desired 引数のインストールされたバイナリを実行することが可能です。
シェルの初期化
特定の環境変数を設定する必要のあるパッケージもあります。 OSGeo4W コマンドシェルにとって、これは etc/ini にある初期化ファイルを追加することによって達成されます。 以下は典型的な例です::
SET GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
これらのスクリプトは、OSGeo4W シェルの環境構築の際に %OSGEO4W_ROOT%\OSGeo4W.bat によってランダムな順番で実行されます。 OSGEO4W_ROOt 環境変数は常にbe set on the way in.
アプリケーションバッチファイルのテンプレート
標準環境設定でのアプリケーション開始方法のサンプル。foo.exe
をアプリケーション実行可能ファイルで置き換え、 foobar.bz2:bin/foo.bat.tmpl
として保存します。 Post-Install は適切な OSGEO4W_ROOT を設定します。
@echo off SET OSGEO4W_ROOT=@osgeo4w@ call "%OSGEO4W_ROOT%\bin\o4w_env.bat" start "Foo window title" /B "%OSGEO4W_ROOT%\bin\foo.exe" %* @echo on
Setup.ini
Cygwin Setup.exe は、実行されるたびにsetup.ini ファイルを全パッケージのリストと共にダウンロードします。 このファイルはパッケージがアップロードされるたびにウェブ上にあるosgeo4w-regen.sh
を呼び出すスクリプトを実行することによってサーバに再作成されるべきです。 これは、passing the -t コマンドラインオプションをパスすることによってセットアッププログラムと一緒に使用可能なファイルのテストバージョンを作成します。 一度テストが行われたら 一般のユーザーが利用できるようリンクosgeo4w-promote.sh
を用いてこのファイルを setup.ini にコピーします。
- テストセットアップの生成:
http://upload.osgeo.org/cgi-bin/osgeo4w-regen.sh
- パッケージバージョンナンバーの立証(PackageListing トップ)
- -t を セットアッププログラムにパスすることによるテスト (osgeo-setup_test-ini.bat)
- テストセットアップ実行の促進:
http://upload.osgeo.org/cgi-bin/osgeo4w-promote.sh
記録
wiki ページがパッケージにある情報にリンクされていないことを確認してください PackageListing 。 端末からサーバへのプロジェクトに戻るポインター、packager の名前 (packager のコンタクト情報が記載されているページへのリンク)、そしてOSGeo4W内のどこに置かれているかの特別なノートを含みます。