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

Bug#190003: FHS problem



On Mon, Apr 21, 2003 at 08:48:53PM +0000, debian@computerdatasafe.com.au wrote:
> I am looking at
> http://www.au.debian.org/releases/stable/i386/ch-post-install.en.html#s-kernel-baking
> 
> Para 9.6.1 deals with compiling one's own kernel. It recommends,
> "Hereafter, we'll assume your kernel source will be located in
> /usr/local/src and that your kernel version is 2.2.22. As root, create a
> directory under /usr/local/src and change the owner of that directory to
> your normal non-root account. As your normal non-root account, change
> your directory to where you want to unpack the kernel sources (cd
> /usr/local/src), extract the kernel sources (tar xIf
> /usr/src/kernel-source-2.2.22.tar.bz2), change your directory to it (cd
> kernel-source-2.2.22/)."

I can see the logic in that, and it could well solve some problems
I have with existing tools since I always build my own.

> In contrast, the FHS at http://www.pathname.com/fhs/2.2/fhs-4.1.html
> says, "/usr is the second major section of the filesystem. /usr is
> shareable, read-only data. That means that /usr should be shareable
> between various FHS-compliant hosts and must not be written to. Any
> information that is host-specific or varies with time is stored
> elsewhere."

I see some serious problems with this from an historical point of
view. I can perhaps understand the efficacy of compiling kernels
in /usr/local/src instead of /usr/src, I still see so many problems
here that it is almost insoluble.

Many games story varying data in their "home" directories in /usr/games
or /usr/local/games. This is a violation; however there is another problem.
The rules have long been that local packages install with BASE=/usr and
locally installed ones go to BASE=/usr/local. This goes back at least
20 years as a standard way of doing things. It also means it is easy
to source build and install packages in test directories and into
chrootable directories, ie BASE=/myroot/usr/. 

That means the standard out there for source packages is to place pretty
much everything into /usr/something. 

> A better location for building kernels and debian packages is somewhere
> in the $HOME structure. Advising users to build software in a filesystem
> that may be mounted read-only and which 'must not bw written to" is
> wrong.

But would we also want to install /home/somenetworkgame with
all of it's game data there rather than in /usr/local/somenetworkgame?
Some game data is run time changeable, and by definition random, not
debian package source builds are supposed to go into /usr/local
because they are not debian are not going to be FHS compliant.

You're pointing out a more general problem in the
definitions. I think it's better to say /usr follows
the rules you state but that /usr/local is a non-debian
directory and cannot be assumed to follow any debian
standard whatever.

-- 
------------------------------------------------------
       IN MY NAME:            Dale Amon, CEO/MD
  No Mushroom clouds over     Islandone Society
    London and New York.      www.islandone.org
------------------------------------------------------



Reply to: