Provided by: dpkg-dev_1.22.6ubuntu6.1_all bug

NAMN

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

SYNOPS

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

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:beroendefält där beroendeefält ä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 eller om debian/shlibs.local innehåller ett relevant beroende). ). De båda
       filerna ska 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).

       Utdata från ”dpkg-query --control-path package symbols”
           Paketlokal   överstyrande   beroendeinformation   för   delade  bibliotek.  Filerna  befinner  sig  i
           /var/lib/dpkg om inte överstyrt med --admindir.

       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).

       As  a  safe-guard  measure,  a symbols file can provide a Build-Depends-Package or Build-Depends-Packages
       meta-information field and dpkg-shlibdeps will extract the minimal version required by the  corresponding
       package  in the Build-Depends field and use this version if it's higher than the minimal version computed
       by scanning symbols.

   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.

       Utdata från ”dpkg-query --control-path package shlibs”
           Paketlokal  överstyrande  beroendeinformation  för  delade  bibliotek.   Filerna   befinner   sig   i
           /var/lib/dpkg om inte överstyrt med --admindir.

       /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. Flaggan kan användas
           flera gånger.

       -lkatalog
           Lägg till katalog först i listan över kataloger som ska eftersökas  efter  privata  delade  bibliotek
           (sedan dpkg 1.17.0). Flaggan kan användas flera gånger.

           Observera:  Använd  den  här  flaggan istället för att sätta LD_LIBRARY_PATH, eftersom miljövariabeln
           används för att styra körtidslänkaren, och genom att utnyttja det för att ange sökvägen  till  delade
           bibliotek vid kompilering kan det uppstå problem, till exempel vid korskompilering.

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

           Flaggan  -dberoendefält  gäller  för  samtliga binärer efter flaggan, fram till nästa -dberoendefält.
           Standardvärdet för beroendefält ä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[filnamn]
           Skriv  substitueringsvariabelinställningar  på  standard  ut  (eller  filnamn  om angivet, sedan dpkg
           1.17.2), 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 (sedan dpkg 1.14.8). Flera meddelanden visas för att förklara vad dpkg-shlibs
           håller på med.

       -xpaket
           Uteslut  paketet  från  de  genererade beroendena (dpkg 1.14.8). 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 (sedan dpkg 1.14.15). 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 användas flera gånger: kataloger söks efter i samma ordning
           före kataloger från andra binärpaket.

       -Ipaketbyggkatalog
           Ignorera paketbyggkatalog vid sökning efter delade shlibs, symboler och delade biblioteksfiler (sedan
           dpkg 1.18.5). Flaggan kan användas flera gånger.

       --ignore-missing-info
           Misslyckas inte om det inte upptäcks någon beroendeinformation för ett delat  bibliotek  (sedan  dpkg
           1.14.8).  Den  här  flaggan rekommenderas inte, 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=värde
           Värde är ett bitfält som anger de varningar som kan ges av dpkg-shlibdeps (sedan dpkg 1.14.17). Bit 0
           (värde=1) aktiverar varningen ”symbolen  sym,  som  används  av  binär,  hittades  inte  i  något  av
           biblioteken”,  bit  1  (värde=2) aktiverar varningen ”paketet kunde undvika ett onödigt beroende” och
           bit 2 (värde=4) aktiverar varningen ”binär borde inte vara länkat mot bibliotek”. Standard för  värde
           är  3:  de första två varningarna är aktiva som standard, men inte den sista. Sätt värde till 7 om du
           vill att alla varningar ska vara aktiva.

       --admindir=kat
           Ändra platsen för dpkg-databasen (sedan dpkg 1.14.0). Förvald plats är /var/lib/dpkg.

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

       --version
           Visar version och avslutar.

MILJÖVARIABLER

       DPKG_COLORS
           Väljer färgläge (sedan dpkg 1.18.5). För närvarande godtas följande värden: auto (förval), always och
           never.

       DPKG_NLS
           Om  satt,  används  för  att  bestämma  om  lokalt   språkstöd   ska   aktiveras,   även   känt   som
           internationaliseringsstöd (eller i18n) (sedan dpkg 1.19.0). Tillåtna värden är: 0 och 1 (förval).

DIAGNOSTIK

   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 binär, hittades inte i något av biblioteken.
           Den omnämnda symbolen hittades inte i biblioteken som länkas mot binären.  Binär  är  antagligen  ett
           bibliotek och måste länkas mot ett annat bibliotek under byggproceduren (länkarflaggan -lbibliotek).

       binär innehåller en referens till symbolen sym som inte kan kopplas; det är troligen ett insticksprogram
           Den  angivna  symbolen  hittades  inte i biblioteken som länkats mot binären. Binär är antagligen ett
           insticksprogram och symbolen tillhandahålls av programmet  som  läser  in  det.  I  teorin  har  inte
           insticksprogram  något  SONAME,  men  den  här  binären  har  ett  och  därmed kunde det inte tydligt
           identifieras som insticksprogram. Det faktum att binären befinner sig i en icke-offentlig katalog  är
           dock  en  stark indikation på att det inte är ett vanligt delat bibliotek. Om binären faktiskt är ett
           insticksprogram kan du ignorera varningen. Det  är  dock  alltid  möjligt  att  det  är  ett  riktigt
           bibliotek  och att program som länker det använder en RPATH så att den dynamiska länkaren hittar det.
           Om så är fallet är biblioteket trasigt och behöver fixas.

       paketet kan undvika ett onödigt beroende om binär inte länkades mot bibliotek (det använder inget av
       bibliotekets symboler)
           Ingen av binärerna 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).

       paketet kunde undvika ett onödigt beroende om binärer inte länkades mot bibliotek (de använder inga av
       bibliotekets symboler)
           Exakt samma varning som ovan, men för flera binärer

       binär borde inte vara länkat mot bibliotek (det använder inget av bibliotekets symboler)
           Binär  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.

   Fel
       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 SONAME och är versionshanterad (libvadsomhelst.so.X).  Ett  privat  bibliotek
       (till exempel ett insticksprogram) bör inte ha något SONAME och behöver inte vara versionshanterat.

       hittade inte biblioteket bibliotek-sonamn som behövs för binär (dess RPATH är "rpath")
           Binär  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 lagts till med flaggan -l, kataloger i miljövariabeln
           LD_LIBRARY_PATH,         kors-multiarkitekturskataloger          (t.ex          /lib/arm64-linux-gnu,
           /usr/lib/arm64-linux-gnu),   vanliga   öppna   kataloger   (/lib,   /usr/lib),  kataloger  listade  i
           /etc/ld.so.conf,  samt  föråldrade  multilib-kataloger  (/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
           med -l. 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 -l innehåller korrekt katalog som det också ligger i en privat
           katalog.

       hittade ingen beroendeinformation för biblioteksfil (använd av binär).
           Biblioteket som behövs av binär 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/openoffice.org/../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-substvars(5), deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).

ÖVERSÄTTNING

       Peter Krefting och Daniel Nylander.

1.22.6                                             2024-07-17                                  dpkg-shlibdeps(1)