filesystem

Stanisław Miszczak sm181184 w zodiac.mimuw.edu.pl
Wto, 28 Mar 2000, 12:57:03 CEST


On Mon, 27 Mar 2000, Tomasz Kłoczko wrote:

[...]
>> Gdyby ktoś był zainteresowany, mogę podesłać moją kolejność instalowania
>> pakietów, ale ona chyba jest dość oczywista. 
> Myślę, że mógłbyś nawet to wysłać tutaj.
OK, daję tą listę tutaj, wraz z komentarzami w miejscach, gdzie miałem
problemy. Najtrudniejszą sprawą jest właściwie tylko początek instalacji -
wiele pakietów niejawnie zależy od siebie. Starałem się zachowywać
zależności. Specjalnie także w jednym wywołaniu rpm wgrywałem jeden
pakiet. A oto moja kolejność:

-> setup
(Proponowałbym dodać pustego /etc/mtab. Inaczej skrypty rc-scripts krzyczą
przy pierwszym bootowaniu nowopowstałego systemu)
-> ldconfig
(W ld.so.conf są wpisane katalogi /lib oraz /usr/lib, a w post-install
wywoływany jest ldconfig, który krzyczy że ich nie ma. Katalogi te są w
filesystem, ale nie można go wgrać bez /bin/sh, glibca i właśnie
ldconfig. ldconfig jest wołany przy każdej instalacji bibliotek, więc nie 
ma większego problemu - są tylko brzydkie komunikaty ;-)
-> glibc
(Tu nie ma żadnych skryptów post/pre, ale zwracam uwagę, że program
create-db należący do glibc'a to skrypt wołający make'a w /var/db. Poza
tym mam drobną sugestię, żeby w _polskiej_ dystrybucji Linuxa od razu
robić linka /etc/localtime do /usr/share/zoneinfo/Poland)
-> pdksh
(Ten pakiet zapewnia /bin/sh, więc trzeba go jak najszybciej wgrać. W
skryptach, niestety, odwołuje się do: grep, echo, mv. Poza tym, używa
/dev/null ;-) gdy jeszcze nie ma dev'a. Pisze też w katalogu /var/tmp
należącym do filesystem)
-> filesystem
(Skrypty odwołują się do mkdir, cp, rm, ln, chmod)
-> dev
(Brakuje grupy console - sprawdziłem, że jej tworzenie jest wyremowane w
skryptach - i pewnie słusznie, bo groupadd jest w shadow. Moim zdaniem
najprościej dodać tą grupę do /etc/group bezpośrednio w pakiecie setup)
-> zlib
-> mktemp
-> ncurses
-> info
(info jest potrzebne (zależności) do wgrania tak podstawowych rzeczy, jak
fileutils. Niestety, skrypty odwołują się właśnie do cp, rm, ln. W dodatku
/usr/sbin/fix-info-dir jest bardzo brzydki ;-)
-> fileutils
(także woła fix-info-dir. Mam małą sugestię dotyczącą kolorowego ls:
proponuję, żeby przy logowaniu robiło się eval 'dircolors /etc/DIRCOLORS';
można to wrzucić np. do /etc/profile.d/color_ls.sh, oczywiście wraz z
alias ls='ls --color=tty' :-)
-> sed (woła fix-info-dir)
-> pwdb
-> cracklib
-> cracklib-dicts
-> pam
-> sh-utils (fix-info-dir)
-> terminfo
-> pcre (dla grep'a)
-> grep (fix-info-dir)
-> bdflush
-> popt
-> logrotate
-> gawk
(Gawk zamiast skryptu fix-info-dir używa programu install-info ! Nie
przyglądałem się, na czym polega różnica, ale może po prostu wszędzie,
gdzie trzeba, wystarczy używać install-info ?)
-> make (fix-info-dir)
(Make jest potrzebny do zadziałania skryptu create-db z glibc'a. Z kolei w
samym Makefile z /var/db używa się awk'a)
-> shadow (zapewnia groupadd !)
-> SysVinit
(I to właśnie SysVinit potrzebuje grupy utmp !)
-> utempter
(Teoretycznie więc utempter powinien być przed SysVinit, ale on właśnie
tego pakietu wymaga. Błędne koło ? Utempter woła w skryptach update-db,
które tu chyba nie jest potrzebne, a komplikuje sprawę powodując niejawne
zależności od make i awk)
-> textutils (fix-info-dir)
-> modutils
-> procps
(Ponieważ instalowałem z opcją --root, musiałem w docelowym systemie
podmountować proc'a, gdyż odwołuje się do niego ps wołany w skryptach
pakietu procps)
-> iproute2
-> gettext
-> e2fsprogs
-> mount
-> mingetty
-> rc-scripts
-> rpm
-> console-data
-> localedb-src
-> console-tools
-> readline (fix-info-dir)
-> bash (fix-info-dir)
-> tcsh
-> util-linux
(No właśnie, niby bash nie jest niezbędny, ale util-linux zależy od
niego. Od tcsh także. Prawdę mówiąc na problemy wynikające ze stosowania
jako /bin/sh shella ksh natykałem się później wielokrotnie - różne
skrypty, zwłaszcza w X'owych programach, mają wpisane #!/bin/sh, ale w
rzeczywistości używają składni bash'a)
-> issue ;-)
-> klogd
(Wypisuje "Run /etc/rc.d/init.d/... to start..." Nie lubię tego. Kilka
innych pakietów też tak robi)
-> gdbm (do perl'a)
-> perl
-> syslog
(No właśnie, syslog jest zależny od perl'a i dlatego musiałem go
wgrywać ! Jeśli się nie mylę, wystarczy przerobić na awk'a skrypt
/usr/bin/sysglogd-listfiles. Z pakietem syslog-ng chyba takiego problemu
nie ma, ale ja się przyzwyczaiłem do standardowego sysloga ;-)
Pakiet syslog wypisuje przy instalacji komunikat "Run /etc/...")
-> vixie-cron
(Komunikat "Run /etc/..." A poza tym, czym się różni vixie-cron od
hc-cron ?)
-> find-utils (fix-info-dir)
-> diff-utils (fix-info-dir)
-> file (właściwie opcjonalne)
-> gzip (fix-info-dir)
-> tar (fix-info-dir)
-> less
-> which
-> libstdc++
-> groff (do man'a)
-> man (+ opcjonalnie, man-pages)
-> lilo
(Próbuje uruchomić lilo w post-install. Ja bym z tego zrezygnował, tym
bardziej, że nie ma jądra)
-> net-tools
-> cpio (fix-info-dir)
-> nvi (jako minimalny edytor)
-> pump (używany przez rc-scripts do dhcp, ale brak zależności)

  No i to chyba wszystko, co było mi potrzebne do postawienia minimalnego
systemu :-) Teraz wystarczyło zmodyfikować /etc/fstab, /etc/lilo.conf,
wgrać jądro, odpalić lilo i zmienić hasło root'a (i skopiować mu
/etc/skel). Brakuje jeszcze pewnie pełniejszej obsługi sieci (pakiety 
ping, inetd, telnet) ale interfejs powinien się podnieść, o ile wyedytuje
się jego cfg. Dalej pakiety instalowałem już po zabootowaniu, ale tutaj
zaczynają odgrywać rolę indywidualne upodobania (np. co do edytorów) więc
nie opisuję tego. No chyba, że chcecie ? ;-)

-- 
Stanisław Miszczak
s.miszczak w zodiac.mimuw.edu.pl



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