poldek --split

Paweł A. Gajda mis w k2.net.pl
Czw, 28 Cze 2001, 11:56:43 CEST


środa 27/06/2001 20:03:49, Arkadiusz Miskiewicz:
> 
> Hej,
> 
> Kombinuję właśnie z generowaniem 2 iso i odpowiednim dzieleniem za
> pomocą poldka. I tak:
> 
> - nie generuje plików przy pracy via ftp czyli np.
> [misiek w arm abc]$ ./poldek -v -s ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/ --split 650
> Loading ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/packages.dir.gz...
> 2522 packages read
> Indexing...
> [misiek w arm abc]$ 
> (lokalnie działa). IMHO powinno działać również zdalnie bo w końcu
> informacje o zależnościach są w packages.dir cacheowanym lokalnie.


Hem, u mnie to działa: 

$ poldek -v -s ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/ --split 650
Retrieving ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/packages.dir.md...
Retrieving ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/packages.dir.gz...
Verifying ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/packages.dir.gz...
Loading ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/packages.dir.gz...
2522 packages read
Indexing...
Writing packages.chunk.0 (2335 packages, 661903040 bytes)
Writing packages.chunk.1 ( 187 packages, 33813499 bytes)

I jak jest zkeszownay też:

$ poldek -v -s ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/ --split 650
Loading ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/packages.dir.gz...
2522 packages read
Indexing...
Writing packages.chunk.0 (2335 packages, 661903040 bytes)
Writing packages.chunk.1 ( 187 packages, 33813499 bytes)

Może mógłbyś zrobić:

$ gdb ./poldek 
(gdb) break packages_split
(gdb) set args -s ftp://ftp.pld.org.pl/PLD-1.0/i386/PLD/RPMS/ --split 650 
(gdb) r 

i zobaczyć co się dzieje?

> - format plików jest niezbyt wygodny do zastosowania z mkisofs.
> mkisofsowi podaje się plik zawierający listę globów jakie ma
> _wyłączyć_ z image więc najlepiej by było gdyby można ów format
> definiować np.
> --split-format="*%p*"
> (%d/%D - katalog w ktorym siedzi ow plik (wzgledny, bezwgledny), %p -
> nazwa pakietu, %v - wersja pakietu, %r - release, %a - arch itp)
> i do tego opcja negacji (--split-negation czy coś) tzn potrzebne
> (aczkolwiek nie konieczne) są listy plików do wyłączenia, a nie
> włączenia.
> 
> Also IMVHO wpisywanie zakomentowanych informacji do packages.chunk*
> też jest błe - niech poldek wypisuje to info na stdout albo coś w tym
> stylu. Tam jest potrzebna lista globów do wyłączenia lub lista plików
> _o pełnych nazwach_ (wraz z ścieżką) do włączenia.


Zgadzam się tu z Rafałem; skryptem go, skryptem ;-) Dokładanie 
printf-formatu to trochę zabawy, podczas gdy można to załatwić 
kawałkiem skryptu w rodzaju:

rm -f CHUNK*
poldek -s DIR --split --split-out=CHUNK 
for i 0 1 2 3...; do  
     if [ -f CHUNK.$i ]; then
     	for p in `cat CHUNK.$i | grep -v '^#'`; do
		mkdir /tmp/cd$i/RPMS/
		ln -sf DIR/$p /tmp/cd$i/$p
	done
     fi
     
     if [ $i -eq 0 ]; then
        poldek -s /tmp/cd$i/RPMS/ --mkidxz
     else 
     	mkdir /tmp/cd0/cd$i
	poldek -s /tmp/cd$i/RPMS/ --mkidxz=/tmp/cd0/cd$i/packages.dir.gz
     fi	      
done     


Dużo prościej, niż pisanie tego w C. 




Więcej informacji o liście dyskusyjnej pld-installer