Trzeba taz przewidziec sytuacje, gdy ktos dopisze, ze mysql wymaga gdm-a, a w nowej wersji gdm-a sie okaze, ze jest dokladnie odwrotnie... (sprzeczne wymagania)
System oparty na need(8) się zwyczajnie zdeadlockuje - user będzie musiał dojść do tego, czemu nie działa (wykrywanie czegoś takiego automatem byłoby wykonalne, ale dośc trudne). W systemie BSDowym (który mnie się mniej podoba, choć ma on pewne zalety) da się pewnie takie rzeczy wykrywać. Tak długo jak w pakietach nie będziemy takich pętli dostarczać, tak długo chyba będzie ok.
Żaden problem. W jednym i drugim przypadku sprowadza się to do szukania pętli. W przypadku BSD można to łatwo robić na podstawie treści plików rc. W przypadku need trzeba próbować spełniać wszystkie need jakie się trafią (próbując uruchomić usługi) i odpowiednio wcześnie być w stanie stwierdzić, że na stosie dependencies coś się powtórzyło.
Trzeba by troche pohakować simpleinit. W przypadku recodera jest to prostsze...
[...]BTW: w obecnym ukladzie skryptow startowych trzeba by sie niezle nagimnastykowac, zeby uzystac cos takiego:
/home po NFS /home/services lokalne /home/services/swap jako swap ;)
Ten przykład byłby wykonalny, ale wymagałby osobnego skryptu dla każdego systemu plików i osobnego pliku konfiguracyjnego, żeby pozwolić na zmiane needów bez ręcznej edycji skryptu. No chyba, że zrobimy sobie jakiś generator rc-scriptsów...
swap needs: /home/services/swap /home/services/swap needs: /home/services /home/services needs: /home /home needs: portmap portmap needs: eth0 [i.t.d.]
i z innej strony:
/home/services needs: fsck_/dev/hda2 /dev/hda2 needs: udev
Przydługie to. Ale gdyby komuś się udało rozpisać rc.sysinit na takie zależności, to byłaby rewelacja.
No właśnie problem jest z rozdrobnieniem. Obecnie w simpleinit jeden need to jeden skrypt ,,zaspokajający''.
-- z wyrazami szacunku, Jakub Piotr Cłapa
smime.p7s
Description: S/MIME Cryptographic Signature
