Provided by: dpkg-dev_1.14.20ubuntu6_all bug

NAMN

       dpkg-shlibdeps - skapar substvar-beroenden för delade bibliotek

SYNOPS

       dpkg-shlibdeps [flaggor] programfil|-eprogramfil [flaggor]

BESKRIVNING

       dpkg-shlibdeps  beräknar  beroenden  mellan exekverbara filer som anges
       som  argument  och  delade   bibliotek.   Beroendena   läggs   till   i
       substitueringsvariabelfilen  debian/substvars  som variabler med namnen
       shlibs:beroendeflt där beroendeeflt är  ett  beroendefältsnamn.  Alla
       andra variabler som börjar på shlibs: tas bort ur filen.

       dpkg-shlibdeps    kan    generera    beroendeinformation    från    två
       informationskällor, antingen filen  symbols  eller  filen  shlibs.  För
       varje  binärfil som analyseras av dpkg-shlibdeps tas en lista fram över
       vilka bibliotek de är länkade mot.  Programmet  slår  sedan  upp  varje
       bibliotek  i  filen  symbols,  eller i filen shlibs (om den förstnämnda
       inte   existerar).   De   båda   filerna   skall   tillhandahållas   av
       bibliotekspaketet    och    borde    därför   vara   tillgängliga   som
       /var/lib/dpkg/info/paket.symbols eller /var/lib/dpkg/info/paket.shlibs.
       Paketnamnet  identifieras  i  två  steg: biblioteksfilen lokaliseras på
       systemet (genom att slå upp i de kataloger ld.so  skulle  använt),  och
       därefter  används  dpkg  -S  biblioteksfil för att slå upp vilket paket
       biblioteket kommer från.

   Symbolfiler
       Symbolfiler innehåller mer finkornig beroendeinformation genom att ange
       det  minsta  beroendet  för varje symbol som exporteras av biblioteket.
       Skriptet  försöker  hitta  de  symboler  som  är  associerade  med  ett
       bibliotek på följande platser (den första träffen används):

       debian/*/DEBIAN/symbols
              Information  om  delade  bibliotek  som  skapats av den aktuella
              byggproceduren som också anropade dpkg-shlibdeps.  De  genereras
              av  dpkg-gensymbols(1). De används endast om biblioteket finns i
              paketets byggräd.  Filen  symbols  i  det  byggträdet  går  före
              symbols-filer från andra binärpaket.

       /etc/dpkg/symbols/package.symbols.arkitektur

       /etc/dpkg/symbols/paket.symbols
              Överstyrningsfil  för  beroendeinformation för delade bibliotek,
              per system. arkitektur  är  det  aktuella  systemets  arkitektur
              (hämtas från dpkg-architecture -qDEB_HOST_ARCH).

       adminkat/info/paket.symbols
              Paketlokal    överstyrande    beroendeinformation   för   delade
              bibliotek. Normalt är adminkat /var/lib/dpkg.

       dpkg-shlibs kommer ihåg den (största) minimala version  som  behövs  av
       varje  bibliotek  när  den  söker genom de symboler som används av alla
       binärfilerna. När proceduren  är  avslutad  kan  den  visa  det  minsta
       beroende  som  behövs  av  alla  bibliotek  som  används  (så  tillvida
       informationen i symbols-filerna är korrekt).

       Som    en    säkerhetsåtgärd    kan    en     symbols-fil     innehålla
       metainformationsfältet   Build-Depends-Package,   varpå  dpkg-shlibdeps
       hämtar   vilken   minsta   version   som   behövs   för   paketet    ur
       Build-Depends-fältet  och använder denna version om den är högre än den
       minsta version som beräknats genom att söka genom symbolerna.

   Shlibs-filer
       Shlibs-filer associerar ett bibliotek direkt till  ett  beroende  (utan
       att  se  på  symbolerna).  Det  är  därför  oftare  starkare än vad som
       egentligen behövs, men mycket säkert och enkelt att hantera.

       Beroenden för ett bibliotek slås upp på flera platser. Den första filen
       som innehåller information om det intressanta biblioteket används:

       debian/shlibs.local
              Paketlokal    överstyrande    beroendeinformation   för   delade
              bibliotek.

       /etc/dpkg/shlibs.override
              Systemspecifik  överstyrande  beroendeinformation   för   delade
              bibliotek.

       debian/*/DEBIAN/shlibs
              Information  om  delade  bibliotek  som  skapats av den aktuella
              byggproceduren som också anropade dpkg-shlibdeps.  De  genereras
              av  dpkg-gensymbols(1).  De  används bara om biblioteket finns i
              paketets  byggträd.  Filen  shlibs   i   byggträdet   går   före
              shlibs-filer från andra paket.

       adminkat/info/paket.shlibs
              Paketlokal    överstyrande    beroendeinformation   för   delade
              bibliotek. Normalt är adminkat /var/lib/dpkg.

       /etc/dpkg/shlibs.default
              Systemspecifik standardberoendeinformation för delade bibliotek.

       De  utökade  beroendena  används sedan direkt (förutom om de filtrerats
       bort för att de identifierats som  dubbletter,  eller  svagare  än  ett
       annat beroende).

FLAGGOR

       dpkg-shlibdeps  tolkar argument som inte är flaggor som namn på körbara
       filer, precis som om de angivits som -eprogramfil.

       -eprogramfil
              Ta med beroenden som är passar för delade  bibliotek  som  krävs
              för programfil.

       -dberoendeflt
              Lägg  till  beroenden  som skall läggas till till control-filens
              beroendefält beroendeflt. (Beroenden för detta fält läggs in  i
              variabeln shlibs:beroendeflt.)

              Flaggan   -dberoendeflt   gäller  för  samtliga  binärer  efter
              flaggan, fram  till  nästa  -dberoendeflt.  Standardvärdet  för
              beroendeflt är Depends.

              Om   samma   katalogpost   (eller   en  uppsättning  alternativ)
              förekommer  i  mer  än  ett  av  de   kända   beroendefältnamnen
              Pre-Depends,  Depends,  Recommends,  Enhances  eller Suggests så
              kommer dpkg-shlibdeps att automatiskt  ta  bort  beroendet  från
              samtliga fält förutom det som anger de viktigaste beroendena.

       -pvariabelnamnsprefix
              Inled substitueringsvariabler med variabelnamnsprefix: i stället
              för    shlibs:.    På    samma    sätt     kommer     befintliga
              substitueringsvariabler  som  inleds med variabelnamnsprefix: (i
              stället     för     shlibs:)     att     tas      bort      från
              substitueringsvariabelfilen.

       -O     Skriv  substitueringsvariabelinställningar  på  standard  ut,  i
              stället    för    att    försöka    lägga     till     dem     i
              substitueringsvariabelfilen (som standard debian/substvars).

       -ttyp  Föredra information om delade bibliotek som märkts för den givna
              pakettypen. Om det inte finns någon  märkt  information  används
              omärkt.  Standardpakettypen  är  "deb".  Beroendeinformation för
              delade bibliotek märks för en given typ genom att inleda det med
              namnet på typen, ett kolon, samt blanktecken.

       -Llokal-shlibs-fil
              Läs  överstyrande  beroendeinformation  om delade bibliotek från
              lokal-shlibs-fil i stället för debian/shlibs.local.

       -Tsubstvars-fil
              Skriv  substitueringsvariabler  i  substvars-fil;  standard   är
              debian/substvars.

       -V     Aktiverar   pratsamt  läge.  Flera  meddelanden  visas  för  att
              förklara vad dpkg-shlibs håller på med.

       -xpaket
              Uteslut  paketet  från  de  genererade  beroendena.  Flaggan  är
              användbar   för   att   undvika  självberoenden  för  paket  som
              innehåller        ELF-binärer         (exekverbara         eller
              biblioteksinsticksprogram) som använder ett bibliotek som ligger
              i samma  paket.  Flaggan  kan  användas  flera  gånger  för  att
              utesluta flera paket.

       -Spaketbyggkatalog
              Se  först i paketbyggkatalog vid försök att hitta ett bibliotek.
              Användbart när källkodspaketet bygger flera varianter  av  samma
              bibliotek  och  du  vill  se  till att du får beroendet från ett
              givet  binärpaket.  Flaggan  kan  inte  användas  flera  gånger:
              kataloger  söks  efter i samma ordning före kataloger från andra
              binärpaket.

       --ignore-missing-info
              Misslyckas inte om det inte upptäcks  någon  beroendeinformation
              för  ett  delat  bibliotek.  Alla  bibliotek  bör tillhandahålla
              beroendeinformation  (antingen  med   shlibs-filer   eller   med
              symbols-filer), även om de ännu inte används av andra paket.

       --warnings=vrde
              Vrde  är  ett  bitfält  som  anger  de varningar som kan ges av
              dpkg-shlibdeps. Bit 0 (värde=1)  aktiverar  varningen  "symbolen
              sym,   som   används   av   binr,  hittades  inte  i  något  av
              biblioteken", bit 1 (värde=2) aktiverar varningen "beroendet  på
              bibliotekt   kunde  undvikas"  och  bit  2  (värde=4)  aktiverar
              varningen "binr borde inte vara länkat mot bibliotek". Standard
              för  vrde  är  3:  de  första  två  varningarna  är  aktiva som
              standard, men inte den sista. Sätt vrde till 7 om du  vill  att
              alla varningar skall vara aktiva.

       --admindir=kat
              Ändra platsen för dpkg-databasen. Förval är /var/lib/dpkg.

       -h, --help
              Visar hjälpskärm och avslutar.

       --version
              Visar version och avslutar.

VARNINGAR

       Eftersom  dpkg-shlibdeps  analyserar  mängden  symboler  som används av
       varje binärfil i det genererade paketet, kan det i flera fall skriva ut
       varningsmeddelanden.  De visar på saker som kan förbättras i paketet. I
       de flesta fall gäller förbättringarna direkt uppströmskällkoden. Här är
       de varningar du kan stöta på, i fallande allvarlighetsgrad:

       symbolen   sym,  som  används  av  binr,  hittades  inte  i  något  av
       biblioteken.
              Den omnämnda symbolen hittades inte i biblioteken som länkas mot
              binären. Binr är antagligen ett bibliotek och måste länkas  mot
              ett   annat   bibliotek   under   byggproceduren  (länkarflaggan
              -lbibliotek).

       Beroendet  bibliotek  kunde  undvikas  om  inte  binrer  meningslöst
       länkades mot det (de använder inga av dess symboler).
              Ingen av binrerna som länkas mot bibliotek  använder  någon  av
              symbolerna  som  tillhandahålls  av biblioteket. Genom att rätta
              alla binärer kan du undvika beroendet som gäller detta bibliotek
              (såvida   inte  samma  beroende  även  genereras  av  ett  annat
              bibliotek som faktiskt används).

       binr  borde  inte  vara  länkat  mot  bibliotek  (inga  av  symbolerna
       används).
              Binr länkar mot ett bibliotek den inte behöver. Det är inte ett
              problem,  Men  genom  att inte länka biblioteket mot binären kan
              man uppnå en mindre prestandaförbättring. Varningen kontrollerar
              samma  information  som  den  föregående,  men gör det för varje
              binär  istället  för  att  utföra  kontrollen  globalt  på  alla
              analyserade binärer.

FELMEDDELANDEN

       dpkg-shlibdeps  kommer  att  misslyckas  om  det  inte hittar ett öppet
       bibliotek som en av binärerna använder,  eller  om  biblioteket  saknar
       associerad   beroendeinformation   (antingen  en  shlibs-fil  eller  en
       symbols-fil).   Ett   öppet   bibliotek   har   ett   SONAMN   och   är
       versionshanterad  (libvadsomhelst.so.X).  Ett  privat  bibliotek  (till
       exempel ett insticksprogram) bör inte ha något SONAMN och behöver  inte
       vara versionshanterat.

       hittade  inte  biblioteket  bibliotek-sonamn som behövs för binr (dess
       RPATH är "rpath")
              Binr  använder  ett  bibliotek  som heter bibliotek-sonamn, men
              dpkg-shlibdeps  kunde  inte  hitta  biblioteket.  dpkg-shlibdeps
              skapar  en  lista  över  kataloger  det  ser i på följande sätt:
              katalogerna som  beskrivs  i  RPATH  i  binären,  kataloger  som
              beskrivs   i   /etc/ld.so.conf,   kataloger   i   miljövariabeln
              LD_LIBRARY_PATH, och vanliga öppna  kataloger  (/lib,  /usr/lib,
              /lib32,  /usr/lib32,  /lib64,  /usr/lib64).  Därefter  ser det i
              motsvarande kataloger i byggträdet för  paketet  som  innehåller
              binären   som   analyseras,  i  paketbyggträdet  som  anges  med
              kommandoradsflaggan -S, i andra pakets byggträd  som  innehåller
              en   DEBIAN/shlibs-fil   och   slutligen   i   rotkatalogen.  Om
              biblioteket inte hittas i någon av dessa kataloger  får  du  det
              här felmeddelandet.

              Om  biblioteket  som  inte hittades ligger i en privat katalog i
              samma paket bör du lägga till katalogen  i  LD_LIBRARY_PATH.  Om
              det  finns  i  ett annat binärpaket som byggs bör du se till att
              shlibs- eller symbols-filen för paketet redan  har  skapats  och
              att  LD_LIBRARY_PATH  innehåller  korrekt  katalog som det också
              ligger i en privat katalog.

       hittade ingen beroendeinformation för biblioteksfil (använd av  binr).
              Biblioteket som behövs av  binr  hittades  i  biblioteksfil  av
              dpkg-shlibdeps,   men  dpkg-shlibdeps  kunde  inte  hitta  någon
              beroendeinformation för biblioteket. För att hitta beroendet har
              det  försökt koppla biblioteket mot ett Debianpaket med hjälp av
              dpkg -S biblioteksfil. Därefter såg det  i  motsvarande  shlibs-
              och   symbols-filer  i  /var/lib/dpkg/info/,  samt  i  de  olika
              paketens byggträd (debian/*/DEBIAN/).

              Det här felet kan orsakas av  felaktiga  eller  saknade  shlibs-
              eller  symbols-filer i bibliotekets paket. Det kan även inträffa
              om biblioteket byggts i samma källkodspaket och om  shlibs-filen
              ännu  inte har skapats (då måste du fixa debian/rules så att det
              skapar shlibs-filen innan det anropar dpkg-shlibdeps).  Felaktig
              RPATH  kan  också  leda  till  att  biblioteket hittas under ett
              icke-kanoniskt           namn           (till           exempel:
              /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libssl.so.9.8
              istället för /usr/lib/libssl.so.0.9.8) som inte associeras  till
              något  paket,  dpkg-shlibdeps  försöker  gå runt detta genom att
              falla tillbaka på ett kanoniskt namn (med realpath(3)), men  det
              fungerar  kanske  inte  alltid. Det är alltid bäst att städa upp
              RPATH i binären för att undvika problem.

              Om du anropar dpkg-shlibdeps i pratsamt läge (-v) kommer det  ge
              mycket    mer    information   om   var   det   försökte   hitta
              beroendeinformationen.  Det  kan  vara  användbart  om  du  inte
              förstår varför du får felmeddelandet.

SE ÄVEN

       deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).

FÖRFATTARE

       Upphovsrättsskyddad © 1995-1996 Ian Jackson
       Upphovsrättsskyddat © 2000 Wichert Akkerman
       Upphovsrättsskyddat © 2006 Frank Lichtenheld
       Upphovsrättsskyddat © 2007-2008 Raphaël Hertzog

       Detta är fri programvara; se GNU General Public License version 2 eller
       senare för kopieringsvillkor. Det finns INGEN GARANTI.

ÖVERSÄTTNING

       Peter Karlsson och Daniel Nylander.