22 |
<author title="Oversætter"> |
<author title="Oversætter"> |
23 |
<mail link="aaby@gentoo.org">Arne Mejlholm</mail> |
<mail link="aaby@gentoo.org">Arne Mejlholm</mail> |
24 |
</author> |
</author> |
25 |
|
<author title="Korrektur"> |
26 |
|
<mail link="broeman@gentoo.org">Jesper Brodersen</mail> |
27 |
|
</author> |
28 |
|
|
29 |
<abstract> |
<abstract> |
30 |
Denne guide informerer om hvordan man bruger prelink understøttelse i |
Denne guide informerer om hvordan man bruger prelink understøttelse i |
32 |
</abstract> |
</abstract> |
33 |
|
|
34 |
<version>1.4</version> |
<version>1.4</version> |
35 |
<date>September 7, 2003</date> |
<date>7. September, 2003</date> |
36 |
|
|
37 |
<license/> |
<license/> |
38 |
|
|
48 |
forskellige symbolske referencer skal udforskes. For de fleste små |
forskellige symbolske referencer skal udforskes. For de fleste små |
49 |
programmer er denne dynamiske form for linkning meget hurtig. Men for |
programmer er denne dynamiske form for linkning meget hurtig. Men for |
50 |
programmer skrevet i C++ og har mange bibliotek afhængigheder, kan den |
programmer skrevet i C++ og har mange bibliotek afhængigheder, kan den |
51 |
dynamiske linkning tage en del tid. |
dynamiske "linkning" tage en del tid. |
52 |
</p> |
</p> |
53 |
|
|
54 |
<p> |
<p> |
62 |
|
|
63 |
<p> |
<p> |
64 |
Prelinkning kan skære af på opstartstiderne for |
Prelinkning kan skære af på opstartstiderne for |
65 |
applicationer. F.eks. kan et typisk KDE programs hentetid skæres ned |
applikationer. F.eks. kan et typisk KDE-programs hentetid skæres ned |
66 |
med så meget som 50%. Den eneste vedlighedelse der kræves er at køre |
med så meget som 50%. Den eneste vedlighedelse der kræves, er at køre |
67 |
prelink igen hver gang et bibliotek bliver opgraderet til en prelinket |
prelink igen hver gang et bibliotek bliver opgraderet til en prelinket |
68 |
eksekverbar fil. |
eksekverbar fil. |
69 |
</p> |
</p> |
81 |
at starte hurtigere. |
at starte hurtigere. |
82 |
</li> |
</li> |
83 |
<li> |
<li> |
84 |
Hvis en applikations afhængige biblioteker ændrer efter at du har |
Hvis applikationsafhængige biblioteker ændrer sig efter at du har |
85 |
prelinket det, så skal du prelinke applikationen igen, ellers |
prelinket det, så skal du prelinke applikationen igen, ellers |
86 |
mister du hastigheds fordelene. Dette vil sige, hver gang du |
mister du hastighedsfordelene. Dette vil sige, hver gang du |
87 |
opdaterer en pakke gennem Portage der opdaterer biblioteker, så |
opdaterer en pakke gennem Portage der opdaterer biblioteker, så |
88 |
skal de prelinkes igen. |
skal de prelinkes igen. |
89 |
</li> |
</li> |
90 |
<li> |
<li> |
91 |
Ændringen der bliver lavet på den binære fil er fuldt ud muligt at |
Ændringen der bliver lavet på den binære fil, og er fuldt ud muligt at |
92 |
fjerne igen. <path>prelink</path> har en |
fjerne igen. <path>prelink</path> har en |
93 |
undo funktion. |
undo funktion. |
94 |
</li> |
</li> |
169 |
|
|
170 |
<p> |
<p> |
171 |
Hvis du har et par skridt der reproducerer den emerge fejl på et andet |
Hvis du har et par skridt der reproducerer den emerge fejl på et andet |
172 |
system så send dem venligst i en email til <mail link="cretin@gentoo.org">Stefan Jones</mail>. |
system, så send dem venligst i en email til <mail link="cretin@gentoo.org">Stefan Jones</mail>. |
173 |
</p> |
</p> |
174 |
|
|
175 |
</body> |
</body> |
176 |
</section> |
</section> |
177 |
<section> |
<section> |
178 |
<title>Konfiguration</title> |
<title>Opsætning</title> |
179 |
<body> |
<body> |
180 |
|
|
181 |
<p> |
<p> |
182 |
Portage genererer automatisk filen <path>/etc/prelink.conf</path> der |
Portage genererer automatisk filen <path>/etc/prelink.conf</path> der |
183 |
fortæller <path>prelink</path> hvilke filer der skal prelinkes. |
fortæller <path>prelink</path> hvilke filer, der skal prelinkes. |
184 |
</p> |
</p> |
185 |
|
|
186 |
<p> |
<p> |
187 |
Uheldigvis kan du ikke prelinke filer der er kompileret af ældre |
Uheldigvis kan du ikke prelinke filer, der er kompileret af ældre |
188 |
versioner af binutils. De fleste af disse applikationer kommer fra |
versioner af binutils. De fleste af disse applikationer kommer fra |
189 |
præ-kompilerede, udelukkende binære pakker som bliver installeret i |
præ-kompilerede, udelukkende binære pakker, som bliver installeret i |
190 |
<path>/opt</path>. Hvis du laver den følgende fil fortæller du prelink |
<path>/opt</path>. Hvis du laver den følgende fil, fortæller du prelink |
191 |
om ikke at prøve at prelinke dem. |
om ikke at prøve at prelinke dem. |
192 |
</p> |
</p> |
193 |
|
|
196 |
</pre> |
</pre> |
197 |
|
|
198 |
<note> |
<note> |
199 |
Du kan tilføje et større eller mindre antal biblioteker til den kolon |
Du kan tilføje et større eller mindre antal biblioteker til den kolon-separerede |
200 |
separerede liste. |
liste. |
201 |
</note> |
</note> |
202 |
|
|
203 |
</body> |
</body> |
222 |
<warn> |
<warn> |
223 |
Det er blevet bemærket at hvis du har lidt diskplads og du prelinker |
Det er blevet bemærket at hvis du har lidt diskplads og du prelinker |
224 |
hele dit system, så er der en sandsynlighed for at dine binære filer |
hele dit system, så er der en sandsynlighed for at dine binære filer |
225 |
bliver trunkeret. Resultatet bliver et smadret system. Brug |
bliver trunkeret. Resultatet bliver et ødelagt system. Brug |
226 |
<c>file</c> eller <c>readelf</c> kommandoen for at tjekke en binær |
<c>file</c> eller <c>readelf</c> kommandoen for at tjekke en binær |
227 |
fils tilstand. Alternativt kan du osse tjekke antallet af fri |
fils tilstand. Alternativt kan du osse tjekke antallet af fri |
228 |
diskplads på din harddisk før med <c>df -h</c> |
diskplads på din harddisk før med <c>df -h</c> |
239 |
<tr> |
<tr> |
240 |
<th>-f</th> |
<th>-f</th> |
241 |
<ti> |
<ti> |
242 |
Tvinger <path>prelink</path> til at prelinke binære filer der |
Tvinger <path>prelink</path> til at prelinke binære filer, der |
243 |
allerede har været prelinket. Dette er nødvendigt da |
allerede har været prelinket. Dette er nødvendigt da |
244 |
<path>prelink</path> aborter hvis prelinkede filer er tilstede og |
<path>prelink</path> afbryder, hvis prelinkede filer er tilstede og |
245 |
deres biblioteksafhængigheder har ændret sig. |
deres biblioteksafhængigheder har ændret sig. |
246 |
</ti> |
</ti> |
247 |
</tr> |
</tr> |
248 |
<tr> |
<tr> |
249 |
<th>-m</th> |
<th>-m</th> |
250 |
<ti> |
<ti> |
251 |
Bevarer den plads der er reserveret til virtuel hukommelse. Dette |
Bevarer den plads, der er reserveret til virtuel hukommelse. Dette |
252 |
er nødvendigt hvis du har en hel masse biblioteker der skal prelinkes. |
er nødvendigt hvis du har en hel masse biblioteker, der skal prelinkes. |
253 |
</ti> |
</ti> |
254 |
</tr> |
</tr> |
255 |
<tr> |
<tr> |
256 |
<th>-R</th> |
<th>-R</th> |
257 |
<ti> |
<ti> |
258 |
Random -- blander adresse rækkefølgen i vikårligt, dette forbedrer sikkerhed overfor buffer overflow. |
Random -- blander adresse-rækkefølgen i virkårligt, dette forbedrer sikkerheden overfor buffer overflow. |
259 |
</ti> |
</ti> |
260 |
</tr> |
</tr> |
261 |
</table> |
</table> |
262 |
|
|
263 |
<note> |
<note> |
264 |
For at se flere muligheder og detaljer se da <c>man prelink</c>. |
For at se flere muligheder og detaljer, se da <c>man prelink</c>. |
265 |
</note> |
</note> |
266 |
|
|
267 |
</body> |
</body> |
271 |
<chapter> |
<chapter> |
272 |
<title>Kendte problemer og løsninger dertil</title> |
<title>Kendte problemer og løsninger dertil</title> |
273 |
<section> |
<section> |
274 |
<title>"Kan ikke prelinke mod et ikke PIC delt bibliotek"</title> |
<title>"Kan ikke prelinke mod et ikke PIC delt bibliotek?"</title> |
275 |
<body> |
<body> |
276 |
|
|
277 |
<p> |
<p> |
278 |
Grunden til at dette problem opstår er fra forkert kompilerede delte |
Grunden til at dette problem opstår, er fra forkert kompilerede delte |
279 |
biblioteker der har været kompileret uden -fPIC muligheden til gcc for |
biblioteker, der har været kompileret uden -fPIC muligheden til gcc for |
280 |
alle objekts filerne. |
alle objektsfilerne. |
281 |
</p> |
</p> |
282 |
|
|
283 |
<p> |
<p> |
284 |
Det følgende er en liste over problem bibliotekerne og hvilke pakker |
Det følgende er en liste over problemsbibliotekerne og hvilke pakker |
285 |
der skal emerges igen hvis du har den fejl der er nævnt ovenfor. |
der skal emerges igen hvis du har den fejl der er nævnt ovenfor. |
286 |
</p> |
</p> |
287 |
|
|
370 |
</body> |
</body> |
371 |
</section> |
</section> |
372 |
<section> |
<section> |
373 |
<title>Jeg har problemer med Nvidia openGL biblioteker</title> |
<title>Jeg har problemer med Nvidia OpenGL biblioteker</title> |
374 |
<body> |
<body> |
375 |
|
|
376 |
<p> |
<p> |
377 |
De accelerede openGL biblioteker der kommer med nvidia-glx pakken er |
De accelerede OpenGL biblioteker, der kommer med nvidia-glx pakken er |
378 |
blevet kompileret på en måde der bryder med standarden så |
blevet kompileret på en måde der bryder med standarden, så |
379 |
<path>prelink</path> vil komme med advarsler. Der er ikke noget at |
<path>prelink</path> vil komme med advarsler. Der er ikke noget at |
380 |
bekymre sig om og det kan ikke ordnes af andre end nvidia. Du kan |
bekymre sig om og det kan ikke ordnes af andre end nvidia. Du kan |
381 |
altid gå tilbage xfree versionen af libGL hvis du ikke har brug for 3D |
altid gå tilbage xfree versionen af libGL hvis du ikke har brug for 3D |
390 |
<body> |
<body> |
391 |
|
|
392 |
<p> |
<p> |
393 |
Når det er glibc man betragter så er der eksisterer der ikke en 100% |
Når det er glibc man betragter så eksisterer der ikke en 100% |
394 |
statisk binær fil. Hvis du kompilerer den binær fil statisk med glibc, |
statisk binær fil. Hvis du kompilerer den binær fil statisk med glibc, |
395 |
så kan den stadig godt være afhængig af andre system filer. Nedenfor |
så kan den stadig godt være afhængig af andre system filer. Nedenfor |
396 |
er en forklaring af Dick Howell, |
er en forklaring af Dick Howell, |
400 |
"Jeg går ud fra at ideen er at alting vil være i den downloadede |
"Jeg går ud fra at ideen er at alting vil være i den downloadede |
401 |
fil, sådan at ingenting afhænger af lokale biblioteker på det system |
fil, sådan at ingenting afhænger af lokale biblioteker på det system |
402 |
der er målet. Uheldigvis er det sådan med Linux og alt andet der |
der er målet. Uheldigvis er det sådan med Linux og alt andet der |
403 |
bruger GLIBC, tror jeg, at dette stadig ikke er helt rigtigt. Der er |
bruger GLIBC, tror jeg, er at dette stadig ikke er helt rigtigt. Der er |
404 |
denne "libnss" (name service switch, nogle folk kalder det åbenbart |
denne "libnss" (name service switch, nogle folk kalder det åbenbart |
405 |
network security system) som giver funktioner til at få adgang til |
network security system) som giver funktioner til at få adgang til |
406 |
forskellige databaser til adgangskontrol, netværksinformation og andre |
forskellige databaser til adgangskontrol, netværksinformation og andre |