Provided by: dpkg-dev_1.16.1.2ubuntu7_all bug

NAMN

       dpkg-shlibdeps - skapar substvar-beroenden for delade bibliotek

SYNOPS

       dpkg-shlibdeps [flagga...] [-e]programfil [flagga...]

BESKRIVNING

       dpkg-shlibdeps  beraknar  beroenden  mellan exekverbara filer som anges
       som  argument  och  delade   bibliotek.   Beroendena   laggs   till   i
       substitueringsvariabelfilen  debian/substvars  som variabler med namnen
       shlibs:beroendef"alt dar beroendeef"alt ar  ett  beroendefaltsnamn.  Alla
       andra variabler som borjar pa shlibs: tas bort ur filen.

       dpkg-shlibdeps    kan    generera    beroendeinformation    fran    tva
       informationskallor, antingen filen  symbols  eller  filen  shlibs.  For
       varje  binarfil som analyseras av dpkg-shlibdeps tas en lista fram over
       vilka bibliotek de ar lankade mot.  Programmet  slar  sedan  upp  varje
       bibliotek  i  filen  symbols,  eller i filen shlibs (om den forstnamnda
       inte existerar eller om  debian/shlibs.local  innehaller  ett  relevant
       beroende).    ).    De    bada   filerna   skall   tillhandahallas   av
       bibliotekspaketet   och   borde   darfor    vara    tillgangliga    som
       /var/lib/dpkg/info/paket.symbols eller /var/lib/dpkg/info/paket.shlibs.
       Paketnamnet identifieras i tva  steg:  biblioteksfilen  lokaliseras  pa
       systemet  (genom  att  sla upp i de kataloger ld.so skulle anvant), och
       darefter anvands dpkg -S biblioteksfil for att  sla  upp  vilket  paket
       biblioteket kommer fran.

   Symbolfiler
       Symbolfiler innehaller mer finkornig beroendeinformation genom att ange
       det minsta beroendet for varje symbol som  exporteras  av  biblioteket.
       Skriptet  forsoker  hitta  de  symboler  som  ar  associerade  med  ett
       bibliotek pa foljande platser (den forsta traffen anvands):

       debian/*/DEBIAN/symbols
              Information om delade bibliotek  som  skapats  av  den  aktuella
              byggproceduren  som  ocksa anropade dpkg-shlibdeps. De genereras
              av dpkg-gensymbols(1). De anvands endast om biblioteket finns  i
              paketets  byggrad.  Filen  symbols  i  det  byggtradet  gar fore
              symbols-filer fran andra binarpaket.

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

       /etc/dpkg/symbols/paket.symbols
              Overstyrningsfil for beroendeinformation for  delade  bibliotek,
              per  system.  arkitektur  ar  det  aktuella systemets arkitektur
              (hamtas fran dpkg-architecture -qDEB_HOST_ARCH).

       Utdata fran "dpkg-query --control-path package symbols"
              Paketlokal   overstyrande   beroendeinformation    for    delade
              bibliotek.   Filerna   befinner  sig  i  /var/lib/dpkg  om  inte
              overstyrt med --admindir.

       dpkg-shlibs kommer ihag den (storsta) minimala version  som  behovs  av
       varje  bibliotek  nar  den  soker genom de symboler som anvands av alla
       binarfilerna. Nar proceduren  ar  avslutad  kan  den  visa  det  minsta
       beroende  som  behovs  av  alla  bibliotek  som  anvands  (sa  tillvida
       informationen i symbols-filerna ar korrekt).

       Som    en    sakerhetsatgard    kan    en     symbols-fil     innehalla
       metainformationsfaltet   Build-Depends-Package,   varpa  dpkg-shlibdeps
       hamtar   vilken   minsta   version   som   behovs   for   paketet    ur
       Build-Depends-faltet  och anvander denna version om den ar hogre an den
       minsta version som beraknats genom att soka genom symbolerna.

   Shlibs-filer
       Shlibs-filer associerar ett bibliotek direkt till  ett  beroende  (utan
       att  se  pa  symbolerna).  Det  ar  darfor  oftare  starkare an vad som
       egentligen behovs, men mycket sakert och enkelt att hantera.

       Beroenden for ett bibliotek slas upp pa flera platser. Den forsta filen
       som innehaller information om det intressanta biblioteket anvands:

       debian/shlibs.local
              Paketlokal    overstyrande    beroendeinformation   for   delade
              bibliotek.

       /etc/dpkg/shlibs.override
              Systemspecifik  overstyrande  beroendeinformation   for   delade
              bibliotek.

       debian/*/DEBIAN/shlibs
              Information  om  delade  bibliotek  som  skapats av den aktuella
              byggproceduren som ocksa anropade dpkg-shlibdeps.  De  genereras
              av  dpkg-gensymbols(1).  De  anvands bara om biblioteket finns i
              paketets  byggtrad.  Filen  shlibs   i   byggtradet   gar   fore
              shlibs-filer fran andra paket.

       Utdata fran "dpkg-query --control-path package shlibs"
              Paketlokal    overstyrande    beroendeinformation   for   delade
              bibliotek.  Filerna  befinner  sig  i  /var/lib/dpkg   om   inte
              overstyrt med --admindir.

       /etc/dpkg/shlibs.default
              Systemspecifik standardberoendeinformation for delade bibliotek.

       De  utokade  beroendena  anvands sedan direkt (forutom om de filtrerats
       bort for att de identifierats som  dubbletter,  eller  svagare  an  ett
       annat beroende).

FLAGGOR

       dpkg-shlibdeps  tolkar argument som inte ar flaggor som namn pa korbara
       filer, precis som om de angivits som -eprogramfil.

       -eprogramfil
              Ta med beroenden som ar passar for delade  bibliotek  som  kravs
              for programfil.

       -dberoendef"alt
              Lagg  till  beroenden  som skall laggas till till control-filens
              beroendefalt beroendef"alt. (Beroenden for detta falt laggs in  i
              variabeln shlibs:beroendef"alt.)

              Flaggan   -dberoendef"alt   galler  for  samtliga  binarer  efter
              flaggan, fram  till  nasta  -dberoendef"alt.  Standardvardet  for
              beroendef"alt ar Depends.

              Om   samma   katalogpost   (eller   en  uppsattning  alternativ)
              forekommer  i  mer  an  ett  av  de   kanda   beroendefaltnamnen
              Pre-Depends,  Depends,  Recommends,  Enhances  eller Suggests sa
              kommer dpkg-shlibdeps att automatiskt  ta  bort  beroendet  fran
              samtliga falt forutom det som anger de viktigaste beroendena.

       -pvariabelnamnsprefix
              Inled substitueringsvariabler med variabelnamnsprefix: i stallet
              for    shlibs:.    Pa    samma    satt     kommer     befintliga
              substitueringsvariabler  som  inleds med variabelnamnsprefix: (i
              stallet     for     shlibs:)     att     tas      bort      fran
              substitueringsvariabelfilen.

       -O     Skriv  substitueringsvariabelinstallningar  pa  standard  ut,  i
              stallet    for    att    forsoka    lagga     till     dem     i
              substitueringsvariabelfilen (som standard debian/substvars).

       -ttyp  Foredra information om delade bibliotek som markts for den givna
              pakettypen. Om det inte finns nagon  markt  information  anvands
              omarkt.  Standardpakettypen  ar  "deb".  Beroendeinformation for
              delade bibliotek marks for en given typ genom att inleda det med
              namnet pa typen, ett kolon, samt blanktecken.

       -Llokal-shlibs-fil
              Las  overstyrande  beroendeinformation  om delade bibliotek fran
              lokal-shlibs-fil i stallet for debian/shlibs.local.

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

       -V     Aktiverar   pratsamt  lage.  Flera  meddelanden  visas  for  att
              forklara vad dpkg-shlibs haller pa med.

       -xpaket
              Uteslut  paketet  fran  de  genererade  beroendena.  Flaggan  ar
              anvandbar   for   att   undvika  sjalvberoenden  for  paket  som
              innehaller        ELF-binarer         (exekverbara         eller
              biblioteksinsticksprogram) som anvander ett bibliotek som ligger
              i samma  paket.  Flaggan  kan  anvandas  flera  ganger  for  att
              utesluta flera paket.

       -Spaketbyggkatalog
              Se  forst i paketbyggkatalog vid forsok att hitta ett bibliotek.
              Anvandbart nar kallkodspaketet bygger flera varianter  av  samma
              bibliotek  och  du  vill  se  till att du far beroendet fran ett
              givet  binarpaket.  Flaggan  kan  inte  anvandas  flera  ganger:
              kataloger  soks  efter i samma ordning fore kataloger fran andra
              binarpaket.

       --ignore-missing-info
              Misslyckas inte om det inte upptacks  nagon  beroendeinformation
              for  ett  delat  bibliotek.  Alla  bibliotek  bor tillhandahalla
              beroendeinformation  (antingen  med   shlibs-filer   eller   med
              symbols-filer), aven om de annu inte anvands av andra paket.

       --warnings=v"arde
              V"arde  ar  ett  bitfalt  som  anger  de varningar som kan ges av
              dpkg-shlibdeps. Bit 0 (varde=1)  aktiverar  varningen  "symbolen
              sym,   som   anvands   av   bin"ar,  hittades  inte  i  nagot  av
              biblioteken", bit 1 (varde=2) aktiverar varningen "beroendet  pa
              bibliotekt   kunde  undvikas"  och  bit  2  (varde=4)  aktiverar
              varningen "bin"ar borde inte vara lankat mot bibliotek". Standard
              for  v"arde  ar  3:  de  forsta  tva  varningarna  ar  aktiva som
              standard, men inte den sista. Satt v"arde till 7 om du  vill  att
              alla varningar skall vara aktiva.

       --admindir=kat
              Andra platsen for dpkg-databasen. Forval ar /var/lib/dpkg.

       -h, --help
              Visar hjalpskarm och avslutar.

       --version
              Visar version och avslutar.

VARNINGAR

       Eftersom  dpkg-shlibdeps  analyserar  mangden  symboler  som anvands av
       varje binarfil i det genererade paketet, kan det i flera fall skriva ut
       varningsmeddelanden.  De visar pa saker som kan forbattras i paketet. I
       de flesta fall galler forbattringarna direkt uppstromskallkoden. Har ar
       de varningar du kan stota pa, i fallande allvarlighetsgrad:

       symbolen   sym,  som  anv"ands  av  bin"ar,  hittades  inte  i  noagot  av
       biblioteken.
              Den omnamnda symbolen hittades inte i biblioteken som lankas mot
              binaren.  Bin"ar ar antagligen ett bibliotek och maste lankas mot
              ett  annat   bibliotek   under   byggproceduren   (lankarflaggan
              -lbibliotek).

       bin"ar  innehoaller  en  referens till symbolen sym som inte kan kopplas;
       det "ar troligen ett insticksprogram
              Den angivna symbolen hittades inte i biblioteken som lankats mot
              binaren.  Bin"ar  ar  antagligen ett insticksprogram och symbolen
              tillhandahalls av programmet som laser in det. I teorin har inte
              insticksprogram  nagot  SONAMN,  men den har binaren har ett och
              darmed kunde det inte tydligt identifieras som  insticksprogram.
              Det  faktum att binaren befinner sig i en icke-offentlig katalog
              ar dock en stark indikation pa att det inte ar ett vanligt delat
              bibliotek.  Om  binaren  faktiskt  ar ett insticksprogram kan du
              ignorera varningen. Det ar dock alltid mojligt att  det  ar  ett
              riktigt  bibliotek  och  att  program som lanker det anvander en
              RPATH sa att den dynamiska lankaren hittar det. Om sa ar  fallet
              ar biblioteket trasigt och behover fixas.

       Beroendet  poa  bibliotek  kunde  undvikas  om  inte bin"arer meningsl"ost
       l"ankades mot det (de anv"ander inga av dess symboler).
              Ingen av bin"arerna som lankas mot bibliotek  anvander  nagon  av
              symbolerna  som  tillhandahalls  av biblioteket. Genom att ratta
              alla binarer kan du undvika beroendet som galler detta bibliotek
              (savida   inte  samma  beroende  aven  genereras  av  ett  annat
              bibliotek som faktiskt anvands).

       bin"ar  borde  inte  vara  l"ankat  mot  bibliotek  (inga  av  symbolerna
       anv"ands).
              Bin"ar lankar mot ett bibliotek den inte behover. Det ar inte ett
              problem, Men genom att inte lanka biblioteket  mot  binaren  kan
              man uppna en mindre prestandaforbattring. Varningen kontrollerar
              samma information som den foregaende,  men  gor  det  for  varje
              binar  istallet  for  att  utfora  kontrollen  globalt  pa  alla
              analyserade binarer.

FELMEDDELANDEN

       dpkg-shlibdeps kommer att misslyckas  om  det  inte  hittar  ett  oppet
       bibliotek  som  en  av  binarerna anvander, eller om biblioteket saknar
       associerad  beroendeinformation  (antingen  en  shlibs-fil   eller   en
       symbols-fil).   Ett   oppet   bibliotek   har   ett   SONAMN   och   ar
       versionshanterad  (libvadsomhelst.so.X).  Ett  privat  bibliotek  (till
       exempel  ett insticksprogram) bor inte ha nagot SONAMN och behover inte
       vara versionshanterat.

       hittade inte biblioteket bibliotek-sonamn som beh"ovs  f"or  bin"ar  (dess
       RPATH "ar "rpath")
              Bin"ar  anvander  ett  bibliotek  som heter bibliotek-sonamn, men
              dpkg-shlibdeps  kunde  inte  hitta  biblioteket.  dpkg-shlibdeps
              skapar  en  lista  over  kataloger  det  ser i pa foljande satt:
              katalogerna som  beskrivs  i  RPATH  i  binaren,  kataloger  som
              beskrivs   i   /etc/ld.so.conf,   kataloger   i   miljovariabeln
              LD_LIBRARY_PATH, och vanliga oppna  kataloger  (/lib,  /usr/lib,
              /lib32,  /usr/lib32,  /lib64,  /usr/lib64).  Darefter  ser det i
              motsvarande kataloger i byggtradet for  paketet  som  innehaller
              binaren   som   analyseras,  i  paketbyggtradet  som  anges  med
              kommandoradsflaggan -S, i andra pakets byggtrad  som  innehaller
              en   DEBIAN/shlibs-fil   och   slutligen   i   rotkatalogen.  Om
              biblioteket inte hittas i nagon av dessa kataloger  far  du  det
              har felmeddelandet.

              Om  biblioteket  som  inte hittades ligger i en privat katalog i
              samma paket bor du lagga till katalogen  i  LD_LIBRARY_PATH.  Om
              det  finns  i  ett annat binarpaket som byggs bor du se till att
              shlibs- eller symbols-filen for paketet redan  har  skapats  och
              att  LD_LIBRARY_PATH  innehaller  korrekt  katalog som det ocksa
              ligger i en privat katalog.

       hittade ingen beroendeinformation f"or biblioteksfil (anv"and av bin"ar).
              Biblioteket som behovs av  bin"ar  hittades  i  biblioteksfil  av
              dpkg-shlibdeps,   men  dpkg-shlibdeps  kunde  inte  hitta  nagon
              beroendeinformation for biblioteket. For att hitta beroendet har
              det  forsokt koppla biblioteket mot ett Debianpaket med hjalp av
              dpkg -S biblioteksfil. Darefter sag det  i  motsvarande  shlibs-
              och   symbols-filer  i  /var/lib/dpkg/info/,  samt  i  de  olika
              paketens byggtrad (debian/*/DEBIAN/).

              Det har felet kan orsakas av  felaktiga  eller  saknade  shlibs-
              eller  symbols-filer i bibliotekets paket. Det kan aven intraffa
              om biblioteket byggts i samma kallkodspaket och om  shlibs-filen
              annu  inte har skapats (da maste du fixa debian/rules sa att det
              skapar shlibs-filen innan det anropar dpkg-shlibdeps).  Felaktig
              RPATH  kan  ocksa  leda  till  att  biblioteket hittas under ett
              icke-kanoniskt           namn           (till           exempel:
              /usr/lib/openoffice.org/../lib/libssl.so.9.8     istallet    for
              /usr/lib/libssl.so.0.9.8) som inte associeras till nagot  paket,
              dpkg-shlibdeps  forsoker  ga runt detta genom att falla tillbaka
              pa ett kanoniskt namn (med realpath(3)), men det fungerar kanske
              inte  alltid.  Det  ar alltid bast att stada upp RPATH i binaren
              for att undvika problem.

              Om du anropar dpkg-shlibdeps i pratsamt lage (-v) kommer det  ge
              mycket    mer    information   om   var   det   forsokte   hitta
              beroendeinformationen.  Det  kan  vara  anvandbart  om  du  inte
              forstar varfor du far felmeddelandet.

SE "AVEN

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

F"ORFATTARE

       Upphovsrattsskyddat (C) 1995-1996 Ian Jackson
       Upphovsrattsskyddat (C) 2000 Wichert Akkerman
       Upphovsrattsskyddat (C) 2006 Frank Lichtenheld
       Upphovsrattsskyddat (C) 2007-2008 Raphael Hertzog

       Detta ar fri programvara; se GNU General Public License version 2 eller
       senare for kopieringsvillkor. Det finns INGEN GARANTI.

"OVERS"ATTNING

       Peter Krefting och Daniel Nylander.