Dlaczego?

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Nie, 21 Lis 1999, 13:07:18 CET


On Sun, 21 Nov 1999, Michal Margula wrote:
[..]
> Aha - czy ktoś ma coś naprzeciw żebym się zajął
> biblioteką GGI i svgalib4ggi? Bo nie działa mi na tym quake world i chce to
> spróbować popsuć :)

Próbuj.

> > które ? :)
> 
> Oto te listy :)
> 
> Date: Thu, 18 Nov 1999 16:25:57 +0100
> Subject: Bałagan z RPMem czy mi się coś wydaje? :)

%pre
if [ -L /var/state/rpm ]; then
        echo "WARNING: upgrade cannot be done because /var/state/rpm is symlink"
        exit 1
fi
if [ ! -d /var/state/rpm ]; then 
        if [ -e /var/lib/rpm ] && [ ! -L /var/lib/rpm ]; then
                mkdir -p /var/state/rpm
                cp -ap /var/lib/rpm/* /var/state/rpm
                rm -rf /var/lib/rpm
                ln -sf /var/state/rpm /var/lib/rpm
                echo "RPM Database moved from /var/lib/rpm to /var/state/rpm" 1>&2
                echo "Run second time upgradeing rpm package for complete operation" 1>&2
                exit 1
        fi
        if [ -e /var/db/rpm ] && [ ! -L /var/db/rpm ]; then
                mkdir -p /var/state/rpm
                cp -ap /var/db/rpm/* /var/state/rpm
                rm -rf /var/db/rpm
                ln -sf /var/state/rpm /var/db/rpm
                echo "RPM Database moved from /var/db/rpm to /var/state/rpm" 1>&2
                echo "Run second time upgradeing rpm package for complete operation" 1>&2
                exit 1
        fi
fi

%post
if [ -L /var/lib/rpm ]; then
        rm -rf /var/lib/rpm
fi
if [ -L /var/db/rpm ]; then
        rm -rf /var/db/rpm
fi
/bin/rpm --initdb

To są skrypty z rpm-a. Jak widzisz algorytm jest taki, że sprawdzane jest
czy /var/state/rpm jest linkiem jeżeli jest to jest to pzrerywane gdyż
wskazyje na jakieś ręczne manipulacje i reszta skryptów zachowa się przy
czymś takim w ten sposób, że stracisz całą bazę.
Potem sprawdzane jest czy baza jest w /var/lib/rpm lub /var/db/rpm. Jęzli
jest to jest przenoszona do /var/state/rpm i dodawany jest odpowiedni
link na /var/state/rpm, a następnie upgrade jest przerywanyz komunikatem
żeby powtórzyć operację.
W tak przejściowo spreporowanej lokacji bazy dkonywany jest upgrade
właściwy i instalowany jest plik /usr/lib/rpm/macros który wskazuje na
/var/state/rpm jako położenie bazy.
Po wszystkim są usuwane l;inki /var/db/rpm/ i /var/lib/rpm.

Powtórze jeszcze raz (bo chyba jeszcze nie dotarło :>).
"rpm - U rpm*rpm" wykonać trzeba _dwa razy_.

> Date: Sat, 20 Nov 1999 11:46:03 +0100
> Subject: Wybór nazwy wynikowej

To już ustal z wigetem jak to zrobić :)
Artur będzie dopiero jutro, a moze dzisiaj wieczorem.

W każdym bąć razie nic nie stoi na przeszkodzie żeby pakiet góowny i
podpakiet maiały różne pola Version, Revision itd. (zajrzyj do jade.spec).

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*




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