dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / sv / dpkg-shlibdeps.man
CommitLineData
1479465f
GJ
1.\" dpkg manual page - dpkg-deb(1)
2.\"
3.\" Copyright © 1995-1996 Ian Jackson <ijackson@chiark.greenend.org.uk>
4.\" Copyright © 2000 Wichert Akkerman <wakkerma@debian.org>
5.\" Copyright © 2006 Frank Lichtenheld <djpig@debian.org>
6.\" Copyright © 2007-2011 Raphaël Hertzog <hertzog@debian.org>
7.\" Copyright © 2011-2013, 2015 Guillem Jover <guillem@debian.org>
8.\"
9.\" This is free software; you can redistribute it and/or modify
10.\" it under the terms of the GNU General Public License as published by
11.\" the Free Software Foundation; either version 2 of the License, or
12.\" (at your option) any later version.
13.\"
14.\" This is distributed in the hope that it will be useful,
15.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17.\" GNU General Public License for more details.
18.\"
19.\" You should have received a copy of the GNU General Public License
20.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
21.
22.\"*******************************************************************
23.\"
24.\" This file was generated with po4a. Translate the source file.
25.\"
26.\"*******************************************************************
27.TH dpkg\-shlibdeps 1 %RELEASE_DATE% %VERSION% Dpkg\-sviten
28.nh
29.SH NAMN
30dpkg\-shlibdeps \- skapar substvar\-beroenden för delade bibliotek
31.
32.SH SYNOPS
33\fBdpkg\-shlibdeps\fP [\fIflagga\fP...] [\fB\-e\fP]\fIprogramfil\fP [\fIflagga\fP...]
34.
35.SH BESKRIVNING
36\fBdpkg\-shlibdeps\fP beräknar beroenden mellan exekverbara filer som anges som
37argument och delade bibliotek. Beroendena läggs till i
38substitueringsvariabelfilen \fBdebian/substvars\fP som variabler med namnen
39\fBshlibs:\fP\fIberoendefält\fP där \fIberoendeefält\fP är ett
40beroendefältsnamn. Alla andra variabler som börjar på \fIshlibs:\fP tas bort ur
41filen.
42.P
43\fBdpkg\-shlibdeps\fP kan generera beroendeinformation från två
44informationskällor, antingen filen \fIsymbols\fP eller filen \fIshlibs\fP. För
45varje binärfil som analyseras av \fBdpkg\-shlibdeps\fP tas en lista fram över
46vilka bibliotek de är länkade mot. Programmet slår sedan upp varje bibliotek
47i filen \fIsymbols\fP, eller i filen \fIshlibs\fP (om den förstnämnda inte
48existerar eller om debian/shlibs.local innehåller ett relevant
49beroende). ). De båda filerna skall tillhandahållas av bibliotekspaketet och
50borde därför vara tillgängliga som %ADMINDIR%/info/\fIpaket\fP.\fIsymbols\fP eller
51/var/lib/dpkg/info/\fIpaket\fP.\fIshlibs\fP. Paketnamnet identifieras i två steg:
52biblioteksfilen lokaliseras på systemet (genom att slå upp i de kataloger
53\fBld.so\fP skulle använt), och därefter används \fBdpkg \-S\fP \fIbiblioteksfil\fP
54för att slå upp vilket paket biblioteket kommer från.
55.SS Symbolfiler
56Symbolfiler innehåller mer finkornig beroendeinformation genom att ange det
57minsta beroendet för varje symbol som exporteras av biblioteket. Skriptet
58försöker hitta de symboler som är associerade med ett bibliotek på följande
59platser (den första träffen används):
60.IP debian/*/DEBIAN/symbols
61Information om delade bibliotek som skapats av den aktuella byggproceduren
62som också anropade \fBdpkg\-shlibdeps\fP. De genereras av
63\fBdpkg\-gensymbols\fP(1). De används endast om biblioteket finns i paketets
64byggräd. Filen symbols i det byggträdet går före symbols\-filer från andra
65binärpaket.
66.IP %PKGCONFDIR%/symbols/\fIpackage\fP.symbols.\fIarkitektur\fP
67.IP %PKGCONFDIR%/symbols/\fIpaket\fP.symbols
68Överstyrningsfil för beroendeinformation för delade bibliotek, per
69system. \fIarkitektur\fP är det aktuella systemets arkitektur (hämtas från
70\fBdpkg\-architecture \-qDEB_HOST_ARCH\fP).
71.IP "Utdata från ”\fBdpkg\-query \-\-control\-path\fP \fIpackage\fP symbols”"
72Paketlokal överstyrande beroendeinformation för delade bibliotek. Filerna
73befinner sig i %ADMINDIR% om inte överstyrt med \fB\-\-admindir\fP.
74.P
75\fBdpkg\-shlibs\fP kommer ihåg den (största) minimala version som behövs av
76varje bibliotek när den söker genom de symboler som används av alla
77binärfilerna. När proceduren är avslutad kan den visa det minsta beroende
78som behövs av alla bibliotek som används (så tillvida informationen i
79\fIsymbols\fP\-filerna är korrekt).
80.P
81Som en säkerhetsåtgärd kan en symbols\-fil innehålla metainformationsfältet
82\fIBuild\-Depends\-Package\fP, varpå \fBdpkg\-shlibdeps\fP hämtar vilken minsta
83version som behövs för paketet ur \fBBuild\-Depends\fP\-fältet och använder denna
84version om den är högre än den minsta version som beräknats genom att söka
85genom symbolerna.
86.SS Shlibs\-filer
87Shlibs\-filer associerar ett bibliotek direkt till ett beroende (utan att se
88på symbolerna). Det är därför oftare starkare än vad som egentligen behövs,
89men mycket säkert och enkelt att hantera.
90.P
91Beroenden för ett bibliotek slås upp på flera platser. Den första filen som
92innehåller information om det intressanta biblioteket används:
93.IP debian/shlibs.local
94Paketlokal överstyrande beroendeinformation för delade bibliotek.
95.IP %PKGCONFDIR%/shlibs.override
96Systemspecifik överstyrande beroendeinformation för delade bibliotek.
97.IP debian/*/DEBIAN/shlibs
98Information om delade bibliotek som skapats av den aktuella byggproceduren
99som också anropade \fBdpkg\-shlibdeps\fP. De genereras av
100\fBdpkg\-gensymbols\fP(1). De används bara om biblioteket finns i paketets
101byggträd. Filen shlibs i byggträdet går före shlibs\-filer från andra paket.
102.IP "Utdata från ”\fBdpkg\-query \-\-control\-path\fP \fIpackage\fP shlibs”"
103Paketlokal överstyrande beroendeinformation för delade bibliotek. Filerna
104befinner sig i %ADMINDIR% om inte överstyrt med \fB\-\-admindir\fP.
105.IP %PKGCONFDIR%/shlibs.default
106Systemspecifik standardberoendeinformation för delade bibliotek.
107.P
108De utökade beroendena används sedan direkt (förutom om de filtrerats bort
109för att de identifierats som dubbletter, eller svagare än ett annat
110beroende).
111.SH FLAGGOR
112\fBdpkg\-shlibdeps\fP tolkar argument som inte är flaggor som namn på körbara
113filer, precis som om de angivits som \fB\-e\fP\fIprogramfil\fP.
114.TP
115\fB\-e\fP\fIprogramfil\fP
116Ta med beroenden som är passar för delade bibliotek som krävs för
117\fIprogramfil\fP. Flaggan kan användas flera gånger.
118.TP
119\fB\-l\fP\fIkatalog\fP
120Prepend \fIdirectory\fP to the list of directories to search for private shared
121libraries (since dpkg 1.17.0). This option can be used multiple times.
122
123Observera: Använd den här flaggan istället för att sätta \fBLD_LIBRARY_PATH\fP,
124eftersom miljövariabeln används för att styra körtidslänkaren, och genom att
125utnyttja det för att ange sökvägen till delade bibliotek vid kompilering kan
126det uppstå problem, till exempel vid korskompilering.
127.TP
128\fB\-d\fP\fIberoendefält\fP
129Lägg till beroenden som skall läggas till till control\-filens beroendefält
130\fIberoendefält\fP. (Beroenden för detta fält läggs in i variabeln
131\fBshlibs:\fP\fIberoendefält\fP.)
132
133Flaggan \fB\-d\fP\fIberoendefält\fP gäller för samtliga binärer efter flaggan, fram
134till nästa \fB\-d\fP\fIberoendefält\fP. Standardvärdet för \fIberoendefält\fP är
135\fBDepends\fP.
136
137Om samma katalogpost (eller en uppsättning alternativ) förekommer i mer än
138ett av de kända beroendefältnamnen \fBPre\-Depends\fP, \fBDepends\fP,
139\fBRecommends\fP, \fBEnhances\fP eller \fBSuggests\fP så kommer \fBdpkg\-shlibdeps\fP att
140automatiskt ta bort beroendet från samtliga fält förutom det som anger de
141viktigaste beroendena.
142.TP
143\fB\-p\fP\fIvariabelnamnsprefix\fP
144Inled substitueringsvariabler med \fIvariabelnamnsprefix\fP\fB:\fP i stället för
145\fBshlibs:\fP. På samma sätt kommer befintliga substitueringsvariabler som
146inleds med \fIvariabelnamnsprefix\fP\fB:\fP (i stället för \fBshlibs:\fP) att tas
147bort från substitueringsvariabelfilen.
148.TP
149\fB\-O\fP[\fIfilnamn\fP]
150Print substitution variable settings to standard output (or \fIfilename\fP if
151specified, since dpkg 1.17.2), rather than being added to the substitution
152variables file (\fBdebian/substvars\fP by default).
153.TP
154\fB\-t\fP\fItyp\fP
155Prefer shared library dependency information tagged for the given package
156type. If no tagged information is available, falls back to untagged
157information. The default package type is \fBdeb\fP. Shared library dependency
158information is tagged for a given type by prefixing it with the name of the
159type, a colon, and whitespace.
160.TP
161\fB\-L\fP\fIlokal\-shlibs\-fil\fP
162Läs överstyrande beroendeinformation om delade bibliotek från
163\fIlokal\-shlibs\-fil\fP i stället för \fBdebian/shlibs.local\fP.
164.TP
165\fB\-T\fP\fIsubstvars\-fil\fP
166Skriv substitueringsvariabler i \fIsubstvars\-fil\fP; standard är
167\fBdebian/substvars\fP.
168.TP
169\fB\-V\fP
170Enable verbose mode (since dpkg 1.14.8). Numerous messages are displayed to
171explain what \fBdpkg\-shlibdeps\fP does.
172.TP
173\fB\-x\fP\fIpaket\fP
174Exclude the package from the generated dependencies (since dpkg 1.14.8).
175This is useful to avoid self\-dependencies for packages which provide ELF
176binaries (executables or library plugins) using a library contained in the
177same package. This option can be used multiple times to exclude several
178packages.
179.TP
180\fB\-S\fP\fIpaketbyggkatalog\fP
181Look into \fIpackage\-build\-dir\fP first when trying to find a library (since
182dpkg 1.14.15). This is useful when the source package builds multiple
183flavors of the same library and you want to ensure that you get the
184dependency from a given binary package. You can use this option multiple
185times: directories will be tried in the same order before directories of
186other binary packages.
187.TP
188\fB\-I\fP\fIpackage\-build\-dir\fP
189Ignore \fIpackage\-build\-dir\fP when looking for shlibs, symbols, and shared
190library files (since dpkg 1.18.5). You can use this option multiple times.
191.TP
192\fB\-\-ignore\-missing\-info\fP
193Do not fail if dependency information can't be found for a shared library
194(since dpkg 1.14.8). Usage of this option is discouraged, all libraries
195should provide dependency information (either with shlibs files, or with
196symbols files) even if they are not yet used by other packages.
197.TP
198\fB\-\-warnings=\fP\fIvärde\fP
199\fIvalue\fP is a bit field defining the set of warnings that can be emitted by
200\fBdpkg\-shlibdeps\fP (since dpkg 1.14.17). Bit 0 (value=1) enables the warning
201“symbol \fIsym\fP used by \fIbinary\fP found in none of the libraries”, bit 1
202(value=2) enables the warning “package could avoid a useless dependency” and
203bit 2 (value=4) enables the warning “\fIbinary\fP should not be linked against
204\fIlibrary\fP”. The default \fIvalue\fP is 3: the first two warnings are active
205by default, the last one is not. Set \fIvalue\fP to 7 if you want all warnings
206to be active.
207.TP
208\fB\-\-admindir=\fP\fIkat\fP
209Change the location of the \fBdpkg\fP database (since dpkg 1.14.0). The
210default location is \fI%ADMINDIR%\fP.
211.TP
212\fB\-?\fP, \fB\-\-help\fP
213Visar hjälpskärm och avslutar.
214.TP
215\fB\-\-version\fP
216Visar version och avslutar.
217.
218.SH DIAGNOSTIK
219.SS Varningar
220Eftersom \fBdpkg\-shlibdeps\fP analyserar mängden symboler som används av varje
221binärfil i det genererade paketet, kan det i flera fall skriva ut
222varningsmeddelanden. De visar på saker som kan förbättras i paketet. I de
223flesta fall gäller förbättringarna direkt uppströmskällkoden. Här är de
224varningar du kan stöta på, i fallande allvarlighetsgrad:
225.TP
226\fBsymbolen\fP \fIsym\fP\fB, som används av\fP \fIbinär\fP\fB, hittades inte i något av biblioteken.\fP
227Den omnämnda symbolen hittades inte i biblioteken som länkas mot
228binären. \fIBinär\fP är antagligen ett bibliotek och måste länkas mot ett annat
229bibliotek under byggproceduren (länkarflaggan \fB\-l\fP\fIbibliotek\fP).
230.TP
231\fIbinär\fP \fBinnehåller en referens till symbolen\fP \fIsym\fP \fBsom inte kan kopplas; det är troligen ett insticksprogram\fP
232Den angivna symbolen hittades inte i biblioteken som länkats mot
233binären. \fIBinär\fP är antagligen ett insticksprogram och symbolen
234tillhandahålls av programmet som läser in det. I teorin har inte
235insticksprogram något SONAMN, men den här binären har ett och därmed kunde
236det inte tydligt identifieras som insticksprogram. Det faktum att binären
237befinner sig i en icke\-offentlig katalog är dock en stark indikation på att
238det inte är ett vanligt delat bibliotek. Om binären faktiskt är ett
239insticksprogram kan du ignorera varningen. Det är dock alltid möjligt att
240det är ett riktigt bibliotek och att program som länker det använder en
241RPATH så att den dynamiska länkaren hittar det. Om så är fallet är
242biblioteket trasigt och behöver fixas.
243.TP
244\fBpaketet kan undvika ett onödigt beroende om\fP \fIbinär\fP \fBinte länkades mot\fP \fIbibliotek\fP \fB(det använder inget av bibliotekets symboler)\fP
245Ingen av \fIbinärer\fPna som länkas mot \fIbibliotek\fP använder någon av
246symbolerna som tillhandahålls av biblioteket. Genom att rätta alla binärer
247kan du undvika beroendet som gäller detta bibliotek (såvida inte samma
248beroende även genereras av ett annat bibliotek som faktiskt används).
249.TP
250\fBpackage could avoid a useless dependency if \fP\fIbinaries\fP\fB were not linked against \fP\fIlibrary\fP\fB (they use none of the library's symbols)\fP
251Exakt samma varning som ovan, men för flera binärer
252.TP
253\fIbinär\fP \fBborde inte vara länkat mot\fP \fIbibliotek\fP \fB(det använder inget av bibliotekets symboler)\fP
254The \fIbinary\fP is linked to a library that it doesn't need. It's not a
255problem but some small performance improvements in binary load time can be
256obtained by not linking this library to this binary. This warning checks the
257same information as the previous one but does it for each binary instead of
258doing the check globally on all binaries analyzed.
259.SS Fel
260\fBdpkg\-shlibdeps\fP kommer att misslyckas om det inte hittar ett öppet
261bibliotek som en av binärerna använder, eller om biblioteket saknar
262associerad beroendeinformation (antingen en shlibs\-fil eller en
263symbols\-fil). Ett öppet bibliotek har ett SONAMN och är versionshanterad
264(libvadsomhelst.so.\fIX\fP). Ett privat bibliotek (till exempel ett
265insticksprogram) bör inte ha något SONAMN och behöver inte vara
266versionshanterat.
267.TP
268\fBhittade inte biblioteket\fP \fIbibliotek\-sonamn\fP \fBsom behövs för\fP \fIbinär\fP \fB(dess RPATH är "\fP\fIrpath\fP\fB")\fP
269The \fIbinary\fP uses a library called \fIlibrary\-soname\fP but \fBdpkg\-shlibdeps\fP
270has been unable to find the library. \fBdpkg\-shlibdeps\fP creates a list of
271directories to check as following: directories listed in the RPATH of the
272binary, directories added by the \fB\-l\fP option, directories listed in the
273\fBLD_LIBRARY_PATH\fP environment variable, cross multiarch directories
274(ex. /lib/arm64\-linux\-gnu, /usr/lib/arm64\-linux\-gnu), standard public
275directories (/lib, /usr/lib), directories listed in /etc/ld.so.conf, and
276obsolete multilib directories (/lib32, /usr/lib32, /lib64, /usr/lib64).
277Then it checks those directories in the package's build tree of the binary
278being analyzed, in the packages' build trees indicated with the \fB\-S\fP
279command\-line option, in other packages' build trees that contains a
280DEBIAN/shlibs or DEBIAN/symbols file and finally in the root directory. If
281the library is not found in any of those directories, then you get this
282error.
283
284Om biblioteket som inte hittades ligger i en privat katalog i samma paket
285bör du lägga till katalogen med \fB\-l\fP. Om det finns i ett annat binärpaket
286som byggs bör du se till att shlibs\- eller symbols\-filen för paketet redan
287har skapats och att \fB\-l\fP innehåller korrekt katalog som det också ligger i
288en privat katalog.
289.TP
290\fBhittade ingen beroendeinformation för\fP \fIbiblioteksfil\fP \fB(använd av\fP \fIbinär\fP\fB).\fP
291The library needed by \fIbinary\fP has been found by \fBdpkg\-shlibdeps\fP in
292\fIlibrary\-file\fP but \fBdpkg\-shlibdeps\fP has been unable to find any dependency
293information for that library. To find out the dependency, it has tried to
294map the library to a Debian package with the help of \fBdpkg \-S
295\fP\fIlibrary\-file\fP. Then it checked the corresponding shlibs and symbols
296files in %ADMINDIR%/info/, and in the various package's build trees
297(debian/*/DEBIAN/).
298
299Det här felet kan orsakas av felaktiga eller saknade shlibs\- eller
300symbols\-filer i bibliotekets paket. Det kan även inträffa om biblioteket
301byggts i samma källkodspaket och om shlibs\-filen ännu inte har skapats (då
302måste du fixa debian/rules så att det skapar shlibs\-filen innan det anropar
303\fBdpkg\-shlibdeps\fP). Felaktig RPATH kan också leda till att biblioteket
304hittas under ett icke\-kanoniskt namn (till exempel:
305/usr/lib/openoffice.org/../lib/libssl.so.9.8 istället för
306/usr/lib/libssl.so.0.9.8) som inte associeras till något paket,
307\fBdpkg\-shlibdeps\fP försöker gå runt detta genom att falla tillbaka på ett
308kanoniskt namn (med \fBrealpath\fP(3)), men det fungerar kanske inte
309alltid. Det är alltid bäst att städa upp RPATH i binären för att undvika
310problem.
311
312Om du anropar \fBdpkg\-shlibdeps\fP i pratsamt läge (\fB\-v\fP) kommer det ge mycket
313mer information om var det försökte hitta beroendeinformationen. Det kan
314vara användbart om du inte förstår varför du får felmeddelandet.
315.SH "SE ÄVEN"
316\fBdeb\-shlibs\fP(5), \fBdeb\-symbols\fP(5), \fBdpkg\-gensymbols\fP(1).
317.SH ÖVERSÄTTNING
318Peter Krefting och Daniel Nylander.