Provided by: dpkg-dev_1.15.8.4ubuntu3_all bug

NAMN

       dpkg-shlibdeps - skapar substvar-beroenden fr delade bibliotek

SYNOPS

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

BESKRIVNING

       dpkg-shlibdeps berknar beroenden mellan exekverbara filer som anges som
       argument   och   delade   bibliotek.    Beroendena    lggs    till    i
       substitueringsvariabelfilen  debian/substvars  som variabler med namnen
       shlibs:beroendeflt dr beroendeeflt r ett beroendefltsnamn.  Alla  andra
       variabler som brjar p shlibs: tas bort ur filen.

       dpkg-shlibdeps     kan     generera    beroendeinformation    frn    tv
       informationskllor, antingen filen symbols eller filen shlibs. Fr  varje
       binrfil  som  analyseras  av dpkg-shlibdeps tas en lista fram ver vilka
       bibliotek de r lnkade mot. Programmet slr sedan upp varje  bibliotek  i
       filen  symbols,  eller  i filen shlibs (om den frstnmnda inte existerar
       eller om debian/shlibs.local innehller ett relevant  beroende).  ).  De
       bda  filerna  skall  tillhandahllas av bibliotekspaketet och borde drfr
       vara    tillgngliga    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 anvnt), och drefter anvnds dpkg -S biblioteksfil fr att sl
       upp vilket paket biblioteket kommer frn.

   Symbolfiler
       Symbolfiler innehller mer finkornig beroendeinformation genom att  ange
       det  minsta  beroendet  fr  varje symbol som exporteras av biblioteket.
       Skriptet frsker hitta de symboler som r associerade med ett bibliotek p
       fljande platser (den frsta trffen anvnds):

       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  anvnds  endast  om  biblioteket finns i
              paketets  byggrd.  Filen  symbols  i  det   byggtrdet   gr   fre
              symbols-filer frn andra binrpaket.

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

       /etc/dpkg/symbols/paket.symbols
              verstyrningsfil  fr beroendeinformation fr delade bibliotek, per
              system. arkitektur r det aktuella  systemets  arkitektur  (hmtas
              frn dpkg-architecture -qDEB_HOST_ARCH).

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

       dpkg-shlibs kommer ihg den (strsta) minimala version som behvs av varje
       bibliotek nr den sker genom de symboler som anvnds av alla binrfilerna.
       Nr proceduren r avslutad kan den visa det minsta beroende som behvs  av
       alla bibliotek som anvnds (s tillvida informationen i symbols-filerna r
       korrekt).

       Som en skerhetstgrd kan en symbols-fil  innehlla  metainformationsfltet
       Build-Depends-Package,  varp dpkg-shlibdeps hmtar vilken minsta version
       som behvs fr paketet ur Build-Depends-fltet och anvnder  denna  version
       om  den  r  hgre  n den minsta version som berknats genom att ska genom
       symbolerna.

   Shlibs-filer
       Shlibs-filer associerar ett bibliotek direkt till  ett  beroende  (utan
       att  se  p symbolerna). Det r drfr oftare starkare n vad som egentligen
       behvs, men mycket skert och enkelt att hantera.

       Beroenden fr ett bibliotek sls upp p flera platser. Den frsta filen som
       innehller information om det intressanta biblioteket anvnds:

       debian/shlibs.local
              Paketlokal  verstyrande beroendeinformation fr delade bibliotek.

       /etc/dpkg/shlibs.override
              Systemspecifik   verstyrande   beroendeinformation   fr   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  anvnds  bara  om  biblioteket  finns  i
              paketets byggtrd. Filen shlibs i byggtrdet gr  fre  shlibs-filer
              frn andra paket.

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

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

       De  utkade beroendena anvnds sedan direkt (frutom om de filtrerats bort
       fr att de identifierats som  dubbletter,  eller  svagare  n  ett  annat
       beroende).

FLAGGOR

       dpkg-shlibdeps  tolkar  argument  som  inte r flaggor som namn p krbara
       filer, precis som om de angivits som -eprogramfil.

       -eprogramfil
              Ta med beroenden som r passar fr delade bibliotek  som  krvs  fr
              programfil.

       -dberoendeflt
              Lgg  till  beroenden  som  skall  lggas till till control-filens
              beroendeflt beroendeflt. (Beroenden  fr  detta  flt  lggs  in  i
              variabeln shlibs:beroendeflt.)

              Flaggan  -dberoendeflt  gller  fr samtliga binrer efter flaggan,
              fram till nsta -dberoendeflt.  Standardvrdet  fr  beroendeflt  r
              Depends.

              Om  samma katalogpost (eller en uppsttning alternativ) frekommer
              i mer n ett av de knda beroendefltnamnen  Pre-Depends,  Depends,
              Recommends,  Enhances eller Suggests s kommer dpkg-shlibdeps att
              automatiskt ta bort beroendet frn samtliga flt  frutom  det  som
              anger de viktigaste beroendena.

       -pvariabelnamnsprefix
              Inled  substitueringsvariabler med variabelnamnsprefix: i stllet
              fr    shlibs:.     P     samma     stt     kommer     befintliga
              substitueringsvariabler  som  inleds med variabelnamnsprefix: (i
              stllet fr shlibs:) att tas bort frn substitueringsvariabelfilen.

       -O     Skriv substitueringsvariabelinstllningar p standard ut, i stllet
              fr att frska lgga till dem  i  substitueringsvariabelfilen  (som
              standard debian/substvars).

       -ttyp  Fredra  information  om  delade bibliotek som mrkts fr den givna
              pakettypen. Om det  inte  finns  ngon  mrkt  information  anvnds
              omrkt. Standardpakettypen r "deb". Beroendeinformation fr delade
              bibliotek mrks fr en given typ genom att inleda det med namnet p
              typen, ett kolon, samt blanktecken.

       -Llokal-shlibs-fil
              Ls  verstyrande  beroendeinformation  om  delade  bibliotek  frn
              lokal-shlibs-fil i stllet fr debian/shlibs.local.

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

       -V     Aktiverar  pratsamt  lge. Flera meddelanden visas fr att frklara
              vad dpkg-shlibs hller p med.

       -xpaket
              Uteslut paketet frn de genererade beroendena. Flaggan r anvndbar
              fr  att  undvika sjlvberoenden fr paket som innehller ELF-binrer
              (exekverbara eller biblioteksinsticksprogram)  som  anvnder  ett
              bibliotek  som  ligger  i samma paket. Flaggan kan anvndas flera
              gnger fr att utesluta flera paket.

       -Spaketbyggkatalog
              Se frst i paketbyggkatalog vid frsk  att  hitta  ett  bibliotek.
              Anvndbart  nr  kllkodspaketet  bygger  flera  varianter av samma
              bibliotek och du vill se till att du fr beroendet frn ett  givet
              binrpaket.  Flaggan  kan inte anvndas flera gnger: kataloger sks
              efter i samma ordning fre kataloger frn andra binrpaket.

       --ignore-missing-info
              Misslyckas inte om det inte upptcks ngon beroendeinformation  fr
              ett   delat   bibliotek.   Alla   bibliotek   br   tillhandahlla
              beroendeinformation  (antingen  med   shlibs-filer   eller   med
              symbols-filer), ven om de nnu inte anvnds av andra paket.

       --warnings=vrde
              Vrde  r  ett  bitflt  som  anger  de  varningar  som  kan ges av
              dpkg-shlibdeps. Bit 0  (vrde=1)  aktiverar  varningen  "symbolen
              sym,  som  anvnds av binr, hittades inte i ngot av biblioteken",
              bit 1 (vrde=2) aktiverar varningen "beroendet p bibliotekt kunde
              undvikas"  och  bit  2  (vrde=4) aktiverar varningen "binr borde
              inte vara lnkat mot bibliotek". Standard fr vrde r 3:  de  frsta
              tv  varningarna  r  aktiva som standard, men inte den sista. Stt
              vrde till 7 om du vill att alla varningar skall vara aktiva.

       --admindir=kat
              ndra platsen fr dpkg-databasen. Frval r /var/lib/dpkg.

       -h, --help
              Visar hjlpskrm och avslutar.

       --version
              Visar version och avslutar.

VARNINGAR

       Eftersom dpkg-shlibdeps analyserar mngden symboler som anvnds av  varje
       binrfil  i  det  genererade  paketet,  kan  det  i flera fall skriva ut
       varningsmeddelanden. De visar p saker som kan frbttras i paketet. I  de
       flesta  fall  gller  frbttringarna  direkt  uppstrmskllkoden.  Hr  r de
       varningar du kan stta p, i fallande allvarlighetsgrad:

       symbolen sym, som anvnds av binr, hittades inte i ngot av  biblioteken.
              Den omnmnda symbolen hittades inte i biblioteken som  lnkas  mot
              binren.  Binr  r antagligen ett bibliotek och mste lnkas mot ett
              annat bibliotek under byggproceduren (lnkarflaggan -lbibliotek).

       binr  innehller en referens till symbolen sym som inte kan kopplas; det
       r troligen ett insticksprogram
              Den  angivna symbolen hittades inte i biblioteken som lnkats mot
              binren. Binr  r  antagligen  ett  insticksprogram  och  symbolen
              tillhandahlls  av  programmet som lser in det. I teorin har inte
              insticksprogram ngot SONAMN, men den hr binren har ett och drmed
              kunde  det  inte  tydligt  identifieras som insticksprogram. Det
              faktum att binren befinner sig i  en  icke-offentlig  katalog  r
              dock  en  stark  indikation  p  att det inte r ett vanligt delat
              bibliotek. Om binren  faktiskt  r  ett  insticksprogram  kan  du
              ignorera  varningen.  Det  r  dock  alltid  mjligt att det r ett
              riktigt bibliotek och att program som lnker det anvnder en RPATH
              s  att  den  dynamiska  lnkaren  hittar  det.  Om  s  r fallet r
              biblioteket trasigt och behver fixas.

       Beroendet p bibliotek kunde undvikas om inte binrer meningslst  lnkades
       mot det (de anvnder inga av dess symboler).
              Ingen av binrerna  som  lnkas  mot  bibliotek  anvnder  ngon  av
              symbolerna som tillhandahlls av biblioteket. Genom att rtta alla
              binrer kan du undvika beroendet som gller detta bibliotek (svida
              inte  samma  beroende  ven  genereras av ett annat bibliotek som
              faktiskt anvnds).

       binr borde inte vara lnkat mot bibliotek (inga av symbolerna anvnds).
              Binr lnkar mot ett bibliotek den inte behver.  Det  r  inte  ett
              problem,  Men genom att inte lnka biblioteket mot binren kan man
              uppn en mindre prestandafrbttring. Varningen kontrollerar  samma
              information  som  den fregende, men gr det fr varje binr istllet
              fr att utfra kontrollen globalt p alla analyserade binrer.

FELMEDDELANDEN

       dpkg-shlibdeps kommer att  misslyckas  om  det  inte  hittar  ett  ppet
       bibliotek  som  en  av  binrerna  anvnder,  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)   br   inte  ha  ngot  SONAMN  och  behver  inte  vara
       versionshanterat.

       hittade inte biblioteket bibliotek-sonamn som behvs fr binr (dess RPATH
       r "rpath")
              Binr anvnder  ett  bibliotek  som  heter  bibliotek-sonamn,  men
              dpkg-shlibdeps  kunde  inte  hitta  biblioteket.  dpkg-shlibdeps
              skapar  en  lista  ver  kataloger  det  ser  i  p  fljande  stt:
              katalogerna  som  beskrivs  i  RPATH  i  binren,  kataloger  som
              beskrivs   i   /etc/ld.so.conf,   kataloger   i    miljvariabeln
              LD_LIBRARY_PATH,  och  vanliga  ppna  kataloger (/lib, /usr/lib,
              /lib32, /usr/lib32,  /lib64,  /usr/lib64).  Drefter  ser  det  i
              motsvarande  kataloger  i  byggtrdet  fr  paketet  som innehller
              binren  som  analyseras,  i   paketbyggtrdet   som   anges   med
              kommandoradsflaggan  -S, i andra pakets byggtrd som innehller en
              DEBIAN/shlibs-fil och slutligen i rotkatalogen.  Om  biblioteket
              inte   hittas   i   ngon   av  dessa  kataloger  fr  du  det  hr
              felmeddelandet.

              Om biblioteket som inte hittades ligger i en  privat  katalog  i
              samma  paket br du lgga till katalogen i LD_LIBRARY_PATH. Om det
              finns i ett annat binrpaket som byggs br du se till att  shlibs-
              eller  symbols-filen  fr  paketet  redan  har  skapats  och  att
              LD_LIBRARY_PATH innehller korrekt katalog som det ocks ligger  i
              en privat katalog.

       hittade ingen beroendeinformation fr biblioteksfil (anvnd av binr).
              Biblioteket  som  behvs  av  binr  hittades  i  biblioteksfil av
              dpkg-shlibdeps,  men  dpkg-shlibdeps  kunde  inte   hitta   ngon
              beroendeinformation  fr  biblioteket. Fr att hitta beroendet har
              det frskt koppla biblioteket mot ett  Debianpaket  med  hjlp  av
              dpkg  -S biblioteksfil. Drefter sg det i motsvarande shlibs- och
              symbols-filer i /var/lib/dpkg/info/, samt i  de  olika  paketens
              byggtrd (debian/*/DEBIAN/).

              Det  hr  felet  kan  orsakas  av felaktiga eller saknade shlibs-
              eller symbols-filer i bibliotekets paket. Det kan ven intrffa om
              biblioteket  byggts i samma kllkodspaket och om shlibs-filen nnu
              inte har skapats (d mste 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/openoffice.org/../lib/libssl.so.9.8     istllet      fr
              /usr/lib/libssl.so.0.9.8)  som  inte associeras till ngot paket,
              dpkg-shlibdeps frsker g runt detta genom att  falla  tillbaka  p
              ett  kanoniskt  namn  (med realpath(3)), men det fungerar kanske
              inte alltid. Det r alltid bst att stda upp RPATH i binren fr att
              undvika problem.

              Om  du  anropar dpkg-shlibdeps i pratsamt lge (-v) kommer det ge
              mycket   mer   information   om    var    det    frskte    hitta
              beroendeinformationen.  Det  kan vara anvndbart om du inte frstr
              varfr du fr felmeddelandet.

SE VEN

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

FRFATTARE

       Upphovsrttsskyddat  1995-1996 Ian Jackson
       Upphovsrttsskyddat  2000 Wichert Akkerman
       Upphovsrttsskyddat  2006 Frank Lichtenheld
       Upphovsrttsskyddat  2007-2008 Raphal Hertzog

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

VERSTTNING

       Peter Krefting och Daniel Nylander.