Re: Pakkeproblem

From: Henrik Andersen (none@hem--hamster.dk.lh.bsd-dk.dk)
Date: Mon 07 May 2001 - 15:11:16 CEST


Date: Mon, 7 May 2001 15:11:16 +0200
From: Henrik Andersen <none@hem--hamster.dk.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: Re: Pakkeproblem

Svarene kommer længer nede ;)

In-Reply-To: <none@20010507140311.A57914--neumann.gnix.lh.bsd-dk.dk>; from esbjerg@ehp.dk on Mon, May 07, 2001 at 02:03:11PM +0200

On Mon, May 07, 2001 at 02:03:11PM +0200, Sven Esbjerg wrote:
> Nå, men jeg er stødt ind i et irriterende problem. Jeg har en eller anden
> gang installeret makedepend. Den er i en version som ikke er ny og jeg
> ville derfor gerne afinstallere og derefter opgradere den. Det viser sig at
> være umuligt med de normale pakkerværktøjer.
> Kommandoen:
> pkg_version | grep makedepend
> resulterer i:
> make: no target to make.
> make: no target to make.
> makedepend <
>
> kommandoen:
> pkg_delete makedepend
> resulterer i:
> pkg_delete: no such package 'makedepend' installed
>
> Normalt har en pakke jo også et versionnummer...
>

pkg_version giver dig bare info om den version du har installeret om den
er ældre, up2date, eller nyere end den i dit ports træ. Brug pkg_info så
får du de oplysninger om version som du skal bruge for at lave pkg_delete.

> Jeg har prøvet at installere den nye makedepend som opfører sig på samme
> måde som den gamle - den kan dog fjernes med en: make deinstall
>
> Nu er spørsgmålet: Hvad gør man ved pakke der opfører sig på ovenstående
> måde?
>
>
> Nu vi alligevel er ved det. Er der nogen der har en god fremgangsmåde til at
> opgradere pakker på. Jeg har kørt lidt med FORCE_PKG_REGISTER=YES i
> make.conf, men det giver mange duplikerede pakker (el. tribletter) og _det_
> giver især problemer med Gnome-programmer. Det skal lige siges at jeg følger
> STABLE og sidste nye pakketræ.

Problemerne opstår sikkert at der bliver opdateret libs som de er
afhængige af. Den letteste måde at at få et overblik over hvilke
programmer der er nødvendige at opdatere (med pkg_version) og lave en
pkg_delete og derefter installere nyeste version.

Det med dependencies har jeg ikke kigget meget på om det findes en direkte
værktøj til at klare det, men du kan altid kigge i den enkeltes Makefile
og se hvad programmet er afhængig af. Typisk vil du få installeret de
dependencies som de nyeste versioner i dit ports træ hvis du bruger
FORCE_PKG_REGISTER=YES. Hvis du vil fjerne dine dubletter/tribletter kan
du køre pkg_delete $GAMMELVERSION. Men da dette typisk vil slette de nyere
filer også (filerne hedder typisk det samme, ligge samme sted) så er det
ikke en god ide.

Du kan gøre som følgende ;)

Lige en hurtig advarsel, jeg har ikke brugt det i praksis, men det burde
virke ;)

Alle pakker / ports som bliver installeret, efterlader sine spor i
/var/db/pkg/

Som eksempel : /var/db/pkg/cvsup-bin-16.1/ indeholder filer som fortæller
dig info om hvilke filer der er installeret / og andre ting, har ikke
kigget videre igennem dem ;) ..

Du kan kigge de enkelte versioners "+CONTENTS" fil og se om filerne ligger
samme sted, eller om du manuelt kan slette enkelte filer som ikke bruges
af den nyere version.

Efter dette kan du slette det dir som ligger i /var/db/pkg/ for den gamle
version og den vil ikke vise sig mere.

Det er min teori (men vil mene den virker)

Hvis der skulle være spørgsmål, så spark ud efter mig her på listen, kan
jo komme andre til gode ;)

/Hemster



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:07 CET