[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pkgsrc/doc/guide/files/plist.xml: 1.17 -> 1.18
以下のページの更新をしました。ツッコミをお願いします。
pkgsrc/doc/guide/files/plist.xml: 1.17 -> 1.18
> revision 1.18
> date: 2009/07/20 15:04:27; author: wiz; state: Exp; lines: +12 -62
> Update documentation on shared directory handling.
金曜日までに異議がなければ、 commit します。
更新後の訳の全文は
http://www.na.rim.or.jp/%7Ekano/tmp/docs/pkgsrc/plist.html#faq.common-dirs
に置いてあります。
以下、訳と原文それぞれの新旧の差分です。
--- plist.xml.orig 2009-08-27 22:59:31.000000000 +0900
+++ plist.xml 2009-08-27 22:59:31.000000000 +0900
@@ -1,6 +1,6 @@
-<!-- $NetBSD: plist.xml,v 1.17 2009/04/03 01:52:24 snj Exp $ -->
+<!-- $NetBSD: plist.xml,v 1.18 2009/07/20 15:04:27 wiz Exp $ -->
<!-- Based on english version: -->
-<!-- NetBSD: plist.xml,v 1.17 2009/04/03 01:52:24 snj Exp -->
+<!-- NetBSD: plist.xml,v 1.18 2009/07/20 15:04:27 wiz Exp -->
<chapter id="plist">
<title>PLIST 問題</title>
@@ -244,72 +244,21 @@
<para><quote>共有ディレクトリー</quote>とは、複数の (かつ関連のない)
パッケージがファイルをインストールするディレクトリーのことです。
- 共有ディレクトリーは、条件に応じた削除のために PLIST に特殊な細工をするか、
- 集権的な処理用パッケージを用意する必要があるので、
- 問題を起こすことがあります。</para>
-
- <para>pkgsrc では、このどちらの方法も使うことができます。
- あるディレクトリーを数個の無関連なパッケージが共有していても、
- 多くの場合、そのディレクトリーを削除するためにさらにパッケージを追加する必要はありません。
- このディレクトリーを使っている全パッケージの PLIST で、
- 通常の "@dirrm" 行のかわりに、</para>
-
- <programlisting>
-@unexec ${RMDIR} %D/path/to/shared/directory 2>/dev/null || ${TRUE}
- </programlisting>
-
- <para>と書くだけでうまくいきます。</para>
-
- <para>しかし、ディレクトリーを数多くのパッケージが共有している場合、
- 以下の二種類の解決策を使うことができます。</para>
-
- <orderedlist>
- <listitem>
- <para>各パッケージが共通の依存パッケージを持つ場合、
- その依存先のパッケージでディレクトリーを削除できます。たとえば、
- <filename role="pkg">textproc/scrollkeeper</filename> を参照してください。
- このパッケージは共有ディレクトリー
- <filename>share/omf</filename> を削除しています。</para>
- </listitem>
-
- <listitem>
- <para>パッケージが関連を持たずに共有ディレクトリーを使っている場合
- (つまり、共通の依存パッケージがない場合)、
- *-dirs パッケージで共有ディレクトリーを削除します。</para>
- </listitem>
- </orderedlist>
-
- <para>以下、二つ目の解決策について述べます。
- 既存の *-dirs パッケージを把握するため、以下を実行してください。</para>
-
+ 以前は、共有ディレクトリーは、条件に応じた削除のために PLIST に特殊な細工をするか、
+ 集権的な処理用パッケージを用意する必要があったので、
+ 問題を起こすことがありました。</para>
+
+ <para>現在の pkgsrc では、話は単純になっています。
+ 各パッケージは、必要に応じて、ディレクトリーを作成してファイルをインストールします。
+ <command>pkg_delete</command> は、パッケージのアンインストール後、
+ 空のディレクトリーが残っていればすべて削除します。</para>
+
+ <para>パッケージの動作のために空のディレクトリーが必要な場合は、
+ インストール時に通常と同じようにディレクトリーを作成するようにし、
+ さらに PLIST に以下のような項目を追加します。
<programlisting>
-&cprompt; cd .../pkgsrc
-&cprompt; ls -d */*-dirs
+@pkgdir path/to/empty/directory
</programlisting>
-
- <para>他のパッケージがこれらを使う方法は非常に簡単です。
- <varname>USE_DIRS</varname> 変数に、このパッケージ名 (<quote>-dirs</quote> は除く)
- と必要なバージョン番号 (常に、パッケージを新たに書いたときの最新バージョンを選びます)
- をつけたものを並べます。</para>
-
- <para>たとえば、あるパッケージが
- <filename>share/applications</filename> 以下にファイルをインストールする場合、
- 以下の行を含めておきます。</para>
-
- <programlisting>
-USE_DIRS+= xdg-1.1
- </programlisting>
-
- <para><command>make
- print-PLIST</command> を使って PLIST を作り直すと、
- 行が適切に (コメントアウトされて)
- 得られるはずです。</para>
-
- <para>なお、パッケージがたとえ <filename>$X11BASE</filename>
- を使う場合であっても、*-x11-dirs パッケージに依存させてはいけません。
- この部分を除いた名前を指定するだけでよく、そうすれば
- pkgsrc (特に <filename>mk/dirs.mk</filename>)
- が処理してくれます。</para>
</sect1>
</chapter>
Index: plist.xml
===================================================================
RCS file: /cvsroot/pkgsrc/doc/guide/files/plist.xml,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- plist.xml 3 Apr 2009 01:52:24 -0000 1.17
+++ plist.xml 20 Jul 2009 15:04:27 -0000 1.18
@@ -1,4 +1,4 @@
-<!-- $NetBSD: plist.xml,v 1.17 2009/04/03 01:52:24 snj Exp $ -->
+<!-- $NetBSD: plist.xml,v 1.18 2009/07/20 15:04:27 wiz Exp $ -->
<chapter id="plist">
<title>PLIST issues</title>
@@ -246,71 +246,21 @@
<para>A <quote>shared directory</quote> is a directory where
multiple (and unrelated) packages install files. These
- directories are problematic because you have to add special tricks
- in the PLIST to conditionally remove them, or have some
+ directories were problematic because you had to add special
+ tricks in the PLIST to conditionally remove them, or have some
centralized package handle them.</para>
- <para>Within pkgsrc, you'll find both approaches. If a directory
- is shared by a few unrelated packages, it's often not worth to add
- an extra package to remove it. Therefore, one simply does:</para>
-
- <programlisting>
-@unexec ${RMDIR} %D/path/to/shared/directory 2>/dev/null || ${TRUE}
- </programlisting>
-
- <para>in the PLISTs of all affected packages, instead of the
- regular "@dirrm" line.</para>
-
- <para>However, if the directory is shared across many packages, two
- different solutions are available:</para>
-
- <orderedlist>
- <listitem>
- <para>If the packages have a common dependency, the directory
- can be removed in that. For example, see
- <filename role="pkg">textproc/scrollkeeper</filename>, which
- removes the shared directory
- <filename>share/omf</filename>.</para>
- </listitem>
-
- <listitem>
- <para>If the packages using the directory are not related at
- all (they have no common dependencies), a *-dirs package is
- used.</para>
- </listitem>
- </orderedlist>
-
- <para>From now on, we'll discuss the second solution. To get an
- idea of the *-dirs packages available, issue:</para>
-
+ <para>In pkgsrc, it is now easy: Each package should create
+ directories and install files as needed; <command>pkg_delete</command>
+ will remove any directories left empty after uninstalling a
+ package.</para>
+
+ <para>If a package needs an empty directory to work, create
+ the directory during installation as usual, and also add an
+ entry to the PLIST:
<programlisting>
-&cprompt; cd .../pkgsrc
-&cprompt; ls -d */*-dirs
+@pkgdir path/to/empty/directory
</programlisting>
-
- <para>Their use from other packages is very simple. The
- <varname>USE_DIRS</varname> variable takes a list of package names
- (without the <quote>-dirs</quote> part) together with the required
- version number (always pick the latest one when writing new
- packages).</para>
-
- <para>For example, if a package installs files under
- <filename>share/applications</filename>, it should have the
- following line in it:</para>
-
- <programlisting>
-USE_DIRS+= xdg-1.1
- </programlisting>
-
- <para>After regenerating the PLIST using <command>make
- print-PLIST</command>, you should get the right (commented out)
- lines.</para>
-
- <para>Note that even if your package is using
- <filename>$X11BASE</filename>, it must not depend on the
- *-x11-dirs packages. Just specify the name without that part and
- pkgsrc (in particular, <filename>mk/dirs.mk</filename>) will take
- care of it.</para>
</sect1>
</chapter>