[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:13550] Re: Where to put, /usr/share or /usr/lib or...



佐野@浜松です。

In <20010123164915Z.kohda@xxxxxxxxxxxxxxxxxxxx>,
  on "Tue, 23 Jan 2001 16:47:32 +0900',
   with "[debian-devel:13548] Where to put, /usr/share or /usr/lib or...",
 Atsuhito Kohda <kohda@xxxxxxxxxxxxxxxxxxxx> さん wrote:

> prefix=/usr だと /usr/ewb/3.2 とかになって lintian が
> 文句言います。

これは FHS に適合しないのでダメでしょう。

No large software packages should use a direct subdirectory under the
/usr hierarchy.  An exception is made for the X Window System because of
considerable precedent and widely-accepted practice.  This section of
the standard specifies the location for most such packages.

> prefix=/usr/share だと /usr/share/ewb/3.2/bin とか
> /usr/share/ewb/3.2/share/texmf は妙な気がします。

 /opt 以下に置くようなものならこういう配置になるのでしょうが、
 FHS に合わせて配置するなら本来は

 architecture 依存のバイナリなどは /usr/lib/<package>/ 以下
ただしエンドユーザが直接実行するコマンドは /usr/bin 以下

 architecture 非依存の設定ファイル、(変更されない) データファイル
などは /usr/share/<package> 以下

プログラムの動作によって変更されていくログファイルやデータファイル
などは /var/lib/<package> 以下

になると思います

/usr -- Secondary Hierarchy
|
+-bin       Most user commands
+-lib       Libraries
+-sbin      Non-vital system binaries
+-share     Architecture-independent data

4.5  /usr/lib : Libraries for programming and packages

/usr/lib includes object files, libraries, and internal binaries that
are not intended to be executed directly by users or shell scripts.

Applications may use a single subdirectory under /usr/lib.  If an
application uses a subdirectory, all architecture-dependent data
exclusively used by the application should be placed within that
subdirectory.  For example, the perl5 subdirectory for Perl 5 modules
and libraries.

Miscellaneous architecture-independent application-specific static files
and subdirectories should be placed in /usr/share.

Any program or package which contains or requires data that doesn't need
to be modified should store that data in /usr/share (or
/usr/local/share, if installed locally).  It is recommended that a
subdirectory be used in /usr/share for this purpose.

あと /var/cache, /var/lib, /var/spool などもありますね。

> prefix=/usr/lib だと /usr/lib/ewb/3.2/bin とか
> /usr/lib/ewb/3.2/share/texmf になる訳ですが、これが
> 良いと言えるのでしょうか?
> 
> 一体どういう構成にするべきなんでしょう???

 prefix= が使えるということは bindir, libdir, etcdir などを
それぞれ指定できたりしませんか ?

 ./configure とか使えるんですよね ?

たぶん、望ましいのは

  バイナリは /usr/lib/ewb/3.2/bin ただしユーザが直接実行するコマンドは
 /usr/bin 以下に置く必要があるので link するか sh script を置くか、、、

  manual は /usr/share/man 以下。

 shared file は /usr/share/ewb/3.2/texmf にして、量が多ければ _all.deb
として別パッケージにする

といった感じじゃないかと思います。が、具体的にどうすればいいのかは
見てないんで。

ここのところ sgmltools-lite やってますがこいつは Makefile.in に

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
datadir=@datadir@
DOCDIR=@prefix@/doc
mandir=@mandir@
sysconfdir=@sysconfdir@
etcdir=@etcsgml@

と書かれていて、./configure でそれぞれ指定できます。

が、これだけ指定できてもうまくいかない場合があるみたいで、
 sgmltools-2 のパッケージを見ると make install した後に
 debian/rules でいろいろ調整してますね。

# sgmltools-lite も何故かうまくいってなかったり。
# まあ、あまり時間をかけられなかったりするせいもあると思うのだけれど。

-- 
     # (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
    <kgh12351@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)