FHS 2.0

Artur Frysiak wiget w t17.ds.pwr.wroc.pl
Czw, 6 Maj 1999, 22:32:50 CEST


Witam
Oto wyjątki z FHS 2.0:
1. Root fs
- powinien być jak najmiejszy
- zawierać tylko poniższe katalogi:
/ -- the root directory
|
+-bin       Essential command binaries
+-boot      Static files of the boot loader
+-dev       Device files
+-etc       Host-specific system configuration
+-home      User home directories
+-lib       Essential shared libraries and kernel modules
+-mnt       Mount point of temporary partitions
+-opt       Add-on application software packages
+-root      Home directory for the root user
+-sbin      Essential system binaries
+-tmp       Temporary files
+-usr       Secondary hierarchy
+-var       Variable data

2. /bin
- zawiera tylko to co najpotrzebniejsze czyli to co potrzebe aby zamontować
  inne fs'y, ustawić sieć, zrobić i odtworzyć backup, wyedytować pliki
  konfiguracyjne:
  { cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, ed,
   false, kill, ln, login, ls, mkdir, mknod, more, mount, mv, ps,
   pwd, rm, rmdir, sed, setserial, sh, stty, su, sync, true, umount,
   uname , vi, tar, gzip, gunzip (link to gzip), zcat (link to gzip)
   domainname, hostname, netstat, ping }

- nie powinien zawierać podkatalogów

3. /boot
- ma zawiarać plik jądra i potrzebne mu do zbootowania rzeczy (np. System.map)
- może być jako oddzielny fs (wymagane dla ix86 aby był poniżej 1024
  cylindra)

4. /dev
- zawiara pliki specjalne i pliki urządzeń
- może zawierać MAKEDEV i MAKEDEV.local

5. /etc
- zawiera pliki konfiguracyjne
- ma podkatalog X11 dla programów pod X11
- ma podkatalog opt dla programów z /opt
- zawiera takie pliki jak :
adjtime, csh.login, disktab, fdprm, fstab, gettydefs, group,
inittab, confissue, ld.so.conf, lilo.conf, motd, mtab, mtools,
passwd, profile, securetty, shells, syslog.conf, ttytype, exports,
ftpusers, gateways, host.conf, hosts, hosts.allow,
hosts.deny, hosts.equiv, hosts.lpd, inetd.conf, networks,
printcap, protocols, resolv.conf, rpc, services

(Prosze zwrócić uwagę że pliki hosts.allow i hosts.deny są w /etc a nie w
/etc/tcpd)
(dodatkowe zalecenia dla PLD:
- jeśli jakiś pakiet zawiera więcej niż jeden plik konfiguracyjny to powinny
  one znaleść się w /etc/%{name}
)

5.1 /etc/X11
- zawiera między innymi katalog xdm z plikami konfiguracyjnymi dla xdm
  (PLD: oraz kdm i gdm jako zamienniki xdm)
- Jeśli Zarządca Okien ma tylko jeden plik konfiguracyjny to powinien on
  mieć nazwę system.*wmrc (lub inna szeroko akceptowalną)
- Jeśli Zarządca Okien potrzebuje katalogu w /etc/X11 to katalog powinien
  nazywać się tak jak nazywa się binarka Zarządcy

5.2 /etc/opt
- zaleca się aby pliki konfiguracyjne programów z /opt były w katalogach
  /etc/opt/%{name}

6. /home
- zawiera katalogi urzytkowników
- może być dzielony przez różne hosty (np via NFS)
(PLD: zawiera tylko katalogi urzytkowników systemowych, urzytkownicy mają
katalogi w /home/<primary group>/<login>)

7. /lib
- zawiera katalog modules z modułami kernela
- zawiera tylko libc.so.* libm.so* ld.so i te biblioteki które są potrzebne
  aplikacją z /bin i /sbin
- libm.so* może być w /usr/lib jeśli nic z /bin i /sbin tego nie wymaga
- może zawierać /lib/cpp jako link do właściwej binarki
  (/usr/lib/gcc-lib/<target>/<version>/cpp)


8. /mnt
- katalog do chwilowo montowanych systemów plików

9. /opt
- może być dzielony
- zawiera dodatkowe aplikacje w katalogach /opt/%{name}
- pliki zmieniane podczas pracy powinny być w /var/opt
- pliki konfiguracyjne w /etc/opt

10. /root
- katalog domowy root'a
- musi być na root fs

11. /sbin
- zawiera programy systemowe takie jak:
clock, getty, init, update, mkswap, swapon, swapoff, telinit
fastboot, fasthalt, halt, reboot, shutdown
fdisk, fsck, fsck.*, mkfs, mkfs.*
ifconfig, route

12. /tmp
- zawiera tylko pliki tymczasowe
(PLD: należy dąrzyć do wyeliminowania pisania do /tmp. Urzytkownicy powinni
korzystać z ~/tmp.
/tmp powinnien być okresowo czyszczony)

13. /usr
- może być dzielony i montowany ro
- zawiera następujące katalogi:
/usr -- Secondary Hierarchy
|
+-X11R6     X Window System, version 11 release 6
+-X386      X Window System, version 11 release 5 on x86 platforms
+-bin       Most user commands
+-games     Games and educational binaries
+-include   Header files included by C programs
+-lib       Libraries
+-local     Local hierarchy (empty after main installation)
+-sbin      Non-vital system binaries
+-share     Architecture-independent data
+-src       Source code
- może zawierać poniższe linki:
    /usr/spool -> /var/spool
    /usr/tmp -> /var/tmp
    /usr/spool/locks -> /var/lock

14. /usr/X11
- dla zachowania zgodności z X11 mogą pojawić się linki:
    /usr/bin/X11 -> /usr/X11R6/bin
    /usr/lib/X11 -> /usr/X11R6/lib/X11
    /usr/include/X11 -> /usr/X11R6/include/X11

15. /usr/X386
- historyczne
- w /usr może być link X11 wskazujący na /usr/X11R6 lub /usr/X386

16. /usr/bin
- może zwierać katalog mh i link do X11 -> /usr/X11R6/bin
- powinien zawierać binarki lub linki do binarek wszystkich interpreterów
  (/usr/bin/perl, /usr/bin/python itp)

17. /usr/include
- pliki nagłówkowe
- może zawierać podkatalogi X11, g++ i inne ale jednoznacznie
  indentyfikujące pakiet z jakiego pochodzą np /usr/include/ssl)

18. /usr/lib
- zależne od architektury biblioteki 
- pakiet może mieć _jeden_ podkatalog np dla modułów perl'a przeznaczony
  jest podkatalog perl5
- może zawierać link sendmail -> /usr/sbin/sendmail oraz binarkę makewhatis
- może zawierać link X11 -> /usr/X11R6/lib
- pliki nie zależne od architektury powinny znaleść się w /usr/share

19. /usr/local 
- do urzytku przed lokalnego administratora
- może zawiarać następujące katalogi:
/usr/local -- Local hierarchy
|
+-bin       Local binaries
+-games     Local game binaries
+-include   Local C header files
+-lib       Local libraries
+-sbin      Local system binaries
+-share     Local architecture-independent hierarchy
+-src       Local source code

20. /usr/sbin
- binarki systemowe (które nie są potrzebne w /sbin) 
- lokalnie instalowane oprogramowanie systemowe powinno być w
  /usr/local/sbin)

21. /usr/share
- niezależne od architektury dane (statyczne)
- może zawierać następujące podkatalogi:
/usr/share -- Architecture-independent data
|
+-dict      Word lists
+-doc       Miscellaneous documentation
+-games     Static data files for /usr/games
+-info      GNU Info system's primary directory
+-locale    Locale information
+-man       Online manuals
+-nls       Native language support
+-misc      Miscellaneous architecture-independent data
+-terminfo  Directories for terminfo database
+-tmac      troff macros not distributed with groff
+-zoneinfo  Timezone information and configuration

- zaleca się stosowanie podkatalogów /usr/share/%{name}

22. /usr/src
- źródła programów 
(PLD: zaleca się stosowanie /usr/src/examples/%{name} dla przykładów
korzystania z bibliotek)

23. /var
- zawiera pliki zmienne podczas działania programów (variable data)
- zawiera taką strukturę:
/var -- Variable data
|
+-account   Process accounting logs (if supported)
+-cache     Application cache data
+-crash     System crash dumps (if supported)
+-games     Variable game data
+-lock      Lock files
+-log       Log files and directories
+-mail      User mailbox files
+-opt       Variable data for /opt
+-run       Files relevant to running processes
+-spool     Application spool data
+-state     Variable state information
+-tmp       Temporary files preserved between system reboots
+-yp        Network Information Service (NIS) database files

24. /var/account
- logi dla lastcomm i sa czyli process accounting

25. /var/cache
- dane które ulegają po jakimś czasie przedawnieniu
/var/cache -- Cache directories
|
+-fonts     Locally-generated fonts
+-man       Locally-formatted manual pages
+-www       WWW proxy or cache data
+-<package> Package specific cache data

- dopuszczalny jest link /usr/lib/texmf/fonts/tmp -> /var/cache/fonts
- /var/cache/fonts/pk zawiera pliki czcionek wygenerowane przez MakeTeXPK

25.1 /var/cache/man
- dawniej /var/catman
- sformatowane strony manuali

26. /var/games
- dane dynamiczne dla gier (najlepsze wyniki i temu podobne)

27. /var/lock
- blokady dla zasobów (np urządzeń)  w formacie LCK..<nazwa zasobu> 
  np LCK..ttyS0

28. /var/log
- logi systemowe
- mogą zawierać podkatalogi /var/log/%{name}

29. /var/mail
- dawniej /var/spool/mail (zmieniony aby był podobny do innych UNIXów)

30. /var/opt
- dane dynamiczne dla pakietów z /opt
- wszystko w podkatalogach /var/opt/%{name}

31. /var/run
- zawiera pliki /var/run/%{name}.PID z numerami procesów
- zawiera /var/tun/utmp (PLD: oraz utpmx, utpmd.ro, utmpd.rw)
- może zawierać UNIX sockets
(katalog sudo i netreport powinny wylecieć do /var/state)

32. /var/spool
/var/spool -- Spool directories
|
+-lpd       Printer spool directory
+-mqueue    Outgoing mail queue
+-news      News spool directory
+-rwho      Rwhod files
+-smail     Spool directories for smail
+-uucp      Spool directory for UUCP

33. /var/state
/var/state -- Variable state information
|
+-<editor>  Editor backup files and state
+-misc      Miscellaneous state data
+-xdm       X display manager variable data
+-<pkgtool> Packaging support files
+-<package> State data for packages and subsystems
- dane dotyczące stanów procesów 
- wszystko w podkatalogach
- jeśli coś jest za małe aby miało swój podkatalog to do /var/state/misc

33.1 /var/state/<editor>
- pliki potrzebne do odworzenia edycji po wpadce edytora (np .swp dla vim'a)
- dawniej było to /var/preserve

34. /var/tmp
- pliki tymczasowe które nie powinny być kasowane przy starcie systemu

35. /var/yp
- bazy NIS

36. /var/db
- bazy danych (np dla rpm'a, passwd.db, shadow.db, services.db itp)


Tyle zaleceń FHS 2.0 (i mojego kometarza)

Wiget
-- 
  __    __ _            _
 / / /\ \ (_) __ _  ___| |_  @__mail:  Artur Frysiak
 \ \/  \/ / |/ _` |/ _ \ __|            Rudlice 10
  \  /\  /| | (_| |  __/ |_           98-311 Ostrowek
   \/  \/ |_|\__, |\___|\__|
             |___/           email:   Wiget w t17.ds.pwr.wroc.pl
PGP key: http://www.t17.ds.pwr.wroc.pl/~wiget/pgp.key
Fingerprint16 = 70 DB E0 2D 12 AB C7 31  B6 58 B5 61 B3 98 B6 E6



Więcej informacji o liście dyskusyjnej pld-devel-pl