some ideas

Witold Filipczyk juandon w poczta.onet.pl
Śro, 26 Wrz 2001, 21:18:38 CEST


Cześć,
Nie wiem jak jest robione instalowanie pakietów teraz,
ale wyobrażam to sobie tak:
- każdemu rpmowi przydzielamy liczbę naturalną, tak żeby dany rpm był
zależny wyłącznie od rpmów o niższych numerach
- w pliku zapisujemy rpmy od najmniejszej liczby (najważniejszego pakietu) rosnąco.
W linii oprócz pełnej nazwy pakietu zapisujemy numery pakietów
od których bezpośrednio dany pakiet zależy, np.
jeśli pakiet A (128) zależy od pakietów B (100) i C (60), ale pakiet B zależy od pakietu
C, to w linii było by coś takiego:

C ...        <-- to jest 60 linia pliku
...
B 60         <-- to jest setna linia pliku
...
A 100        <-- to 128

//Pakiety, które są niezbędne miały by w linii 0, np.
//FHS-2.1-12.i386.rpm 0

Sprawdzanie zależności wygląda tak:

char tab[last+1];
// np.
// 0 nie chciany
// 1 chciany
for (i=last;i;i--)
	if tab[i]==1 
		dla każdej liczby w linii i: tab[liczba]=1

Instalowanie wtedy to byłby już pryszcz
for (i=1;i<=last;i++)
	if tab[i] then rpm -ihv ...

Wygenerowanie tego pliku nie powinno być problemem (nawet ktoś taki jak ja mógłby
napisać program, który by to generował)

Plik ten byłby regenerowany przy każdej zmianie w katalogu RPMS


A teraz coś z innej beczki.
Proponuję, żeby w przypadku pakietów, które są w konflikcie ze sobą, np.
postfix, sendmail, qmail
pozmieniać nazwy plików, które powodują konflikt, np.
sendmail na sendmail-postfix, sendmail-sendmail, sendmail-qmail odpowiednio
i dorzucić skrypt, który pozwala wybrać jednego z nich i ustawić symboliczne linki.

A wszystko to, żeby można było bez zatrzymywania się zainstalować wszystkie pakiety
i móc łatwo przetestować wszystkie możliwości.


Witek



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