aboutsummaryrefslogtreecommitdiff
blob: 6abe6774ae842c8f56d3d865a3bd449a5221a8cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Filesystem
==========

The basic filesystem layout and purpose is as follows:

* ``/bin``: Boot-critical applications
* ``/etc``: System administrator controlled configuration files
* ``/lib``: Boot-critical libraries
* ``/opt``: Binary-only applications.
* ``/sbin``: System administrator boot-critical applications
* ``/tmp``: Temporary data
* ``/usr``: General applications

  + ``/usr/bin``: Applications
  + ``/usr/lib``: Libraries
  + ``/usr/local``: Non-portage applications. **Ebuilds must not install here**.
  + ``/usr/sbin``: Non-system-critical system administrator applications
  + ``/usr/share``: Architecture independent application data and documentation

* ``/var``: Program generated data

  + ``/var/cache``: Long term data which can be regenerated
  + ``/var/lib``: General application generated data
  + ``/var/log``: Log files

Where possible, we prefer to put non-boot-critical applications in ``/usr``
rather than ``/``. If a program is not needed in the boot process until after
filesystems are mounted then it generally does not belong on ``/``.

Any binary which links against a library under ``/usr`` must itself go into
``/usr`` (or possibly ``/opt``).

The ``/opt`` top-level should only be used for binary-only applications.
Binary-only applications must not be installed outside of ``/opt``.

The ``/usr/local`` heirarchy is for non-portage software. Ebuilds must not
attempt to put anything in here.

The ``/usr/share`` directory is for *architecture independent* application data
which is not modified at runtime.

Try to avoid installing unnecessary things into ``/etc`` -- every file in there
is additional work for the system administrator. In particular, non-text files
and files that are not intended for system administrator usage should be moved
to ``/usr/share``.

FHS
---

Gentoo does not consider the `Filesystem Hierarchy Standard
<http://www.pathname.com/fhs/>`__ to be an authoritative standard, although much
of our policy coincides with it.

.. vim: set ft=glep tw=80 sw=4 et spell spelllang=en : ..