Nowe iso na ftp

Witold Filipczyk juandon w poczta.onet.pl
Pon, 7 Sty 2002, 15:43:16 CET


Nigdzie nie jest napisane, że CD-ROMy mają być w formacie iso9660.
Pytanie1:
Jaki system plików jest najefektywniejszy w trybie read-only?
-ext2
-vfat
-reiserfs
-iso9660
-inny (jaki?)

Ogólnie do generowania obrazów mogłaby służyć uniwersalna komenda:

generuj_cokolwiek plik_z_nazwami_plikow rozmiar target, gdzie

plik_z_nazwami_plikow - plik tekstowy z nazwami plików, które należy umieścić
na obrazku.  W jednej linii jedna lub więcej nazw plików, więcej wtedy i tylko
wtedy gdy pliki-nazwy pakietów są od siebie wzajemnie zależne.

rozmiar - maksymalny rozmiar jednego obrazka, powiedzmy w kB.

target - funkcja generująca obrazek, może być np. iso9660, ext2, itp.

Ustalić trzeba jakieś specjalne oznaczenie dla bootsectorów (bootkietek), np.
dla El Torito, itd.

Fragmenty funkcji target mogą wyglądać mniej więcej tak: 


#create filesystem
dd if=/dev/zero of=file bs=1024 count=$rozmiar
make_fs file (np. mke2fs file)
mount -t $fs -o loop file /mnt/zapis

#zapis
jest_miejsce=TRUE
while [ $jest_miejsce ]
read linia
if [ sie_zmieszcza_wszystkie_pliki_z_linii $linia ] then je skopiuj
else jest_miejsce=FALSE;
fi

umount /mnt/zapis

Do opracowania jest kwestia zrobienia tego dla filesystemu iso9660.
Tzn. zrobienie iso9660 rw (lub przynajmniej dołożenie pojedynczego pliku).
BTW, kiedyś coś o stosie było - chodziło o to, że dla iso9660 kopiowało
by się pliki pojedyńczo, a kasowało w odwrotnej kolejności niż zapisywało.

To jest do zrobienia.  Uważam, że byłoby to efektowne, a przy okazji efektywne,
a do tego zrozumiałe.  Tylko nie mówcie, że od razu czaicie o co chodzi
w skryptach, które teraz generują .iso.


Jeśli idzie o plik_z_nazwami_plikow to w przypadku .SRPMS nie ma problemu:
$ ls *.srpm > SRPMS.file

Dla .rpm założenie jest takie, że plik jest posortowany według ważności
pakietów.
Tylko nie piszcie, że tego się nie da zrobić, bo to się robi prosto.
Narzucającym się rozwiązaniem jest sortowanie przez wstawianie, tzn.
1. Na początku plik_wynikowy jest pusty.
2. Z wstawianiem pakietu powinno być związane uaktualnienie bazy dla poldka
i innych baz ewentualnie.
3. Wstawiany pakiet musi spełniać warunek, że może być zależny tylko
i wyłącznie od pakietów, które już są na liście.
4. Pakiet nie może poprzedzać pakietu, od którego jest zależny.

Zresztą gdzieś było o jakichś "scores".  Załóżmy, że im więcej "scores" tym
pakiet ważniejszy.
Na początku pakiety mają jakieś scores.
W pętli poprawimy scores, żeby spełniały warunki 3. i 4.

for $i in pakiety
do
	for j in "Required-by $i"
	do
		if $j.scores <= $i.scores then let $j.scores=$i.scores+1
	done
done

No i jest posortowane.

WF



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