File: apt-howto.de.sgml

package info (click to toggle)
apt-howto 1.8.10.3-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,040 kB
  • ctags: 36
  • sloc: sh: 939; makefile: 304; perl: 133; sed: 4
file content (1846 lines) | stat: -rw-r--r-- 67,685 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
<!doctype debiandoc system>
<debiandoc>

<book>

<title>APT HOWTO</title>

<author>
<name>Gustavo Noronha Silva</name> <email>kov@debian.org</email>
</author>
<author>
<name>Deutsche bersetzung: David Spreen</name> <email>netzwurm@debian.org</email>
</author>

<version>1.8.4 - April 2003</version>

<abstract>
Dieses Dokument soll dem Benutzer ein gutes Verstndnis fr die
Arbeitsweise des Debian-Paketmanagement-Werkzeugs APT liefern.
Ziel ist es, das Leben fr neue Debian Benutzer zu erleichtern und
denen zu helfen, die ihr Verstndnis fr die Administration dieses
Systems vertiefen wollen. Es wurde fr das Debian-Projekt geschaffen,
um den verfgbaren Support fr Benutzer dieser Distribution zu erweitern.
</abstract>

<copyright>
<copyrightsummary>
Copyright &copy; 2001, 2002 Gustavo Noronha Silva
</copyrightsummary>
<copyrightsummary>
Copyright &copy; Deutsche bersetzung 2002 David Spreen
</copyrightsummary>
<p>
Diese Anleitung ist lizenziert durch die Richtlinien der GNU FDL (Free 
Documentation License). Sie wurde geschrieben in der Hoffnung, da es 
fr die Community von Nutzen ist, aber kommt ohne Garantie; die Benutzung
erfolgt auf eigenes Risiko.
</copyright> 

<toc>

<chapt id=trans>Zur Deutschen bersetzung

<sect id=vorwort>Vorwort
<p>
Der Text dieser bersetzung hat das Ziel, sich mglichst eng an der 
englischen bersetzung zu orientieren. Leider lassen sich einige Fachbegriffe
schlecht bersetzen. Diese Begriffe habe ich versucht, entweder sinnvoll
einzudeutschen oder als englisches Wort zu bernehmen. Alle diese Begriffe 
werden im untenstehenden Glossar kurz erlutert.
</sect>

<sect id=glossar>Glossar
<p>
Die Begriffe sind hier in der Reihenfolge aufgelistet, in der sie 
im Text auftauchen.
<list>
<item><em>Kompilieren</em> (eingedeutscht): Das bersetzen des 
Programmquelltextes in ein fr den Computer ausfhrbares Programm.

<item><em>Paket</em> (eingedeutscht): Hier Sammlung von Dateien,
die meist ein vorkompiliertes und konfiguriertes Programm enthlt,
welches sich mit einem Paketverwaltungsprogramm installieren
lsst.

<item><em>Portieren</em> (eingedeutscht): Das Verndern eines Programms,
um es auf einem anderen System oder einer anderen Architektur benutzen
zu knnen.

<item><em>Update</em>: Aktualisieren von Informationen oder Software,
um sie auf dem neusten Stand zu halten, wobei Paket-Updates bei APT
"Upgrade" heien. Verwirrenderweise heien Paketupgrades aufgrund von
Sicherheitslcken bei Debian allerdings "Sicherheits-Updates".

<item><em>Mirror</em>: Eine exakte Kopie eines Web- oder FTP-Servers,
die dazu dient, den Originalserver zu entlasten. Die Liste der
Debian-Mirrors gibt es auf http://www.debian.org/distrib/ftplist.

<item><em>Upgrade</em>: Sehen Sie Update. Hierbei handelt es sich um
das Aktualisieren von Paketen.

<item><em>Ncurses</em>: Programmbibliothek, um auf der Konsole
Fenster, Mens usw. darzustellen.

<item><em>MTA</em>: Mail Transport Agent - Programm zum Transportieren von
E-Mails, oft auch Mailserver.

<item><em>Manpage</em>: Anleitung fr ein Programm, welche auf der 
Kommandozeile per "man Programmname" verfgbar ist.

<item><em>Lock-Datei</em>: Datei, deren Existenz anzeigt, da eine Ressource (z.B. die
APT-Datenbank) zur Zeit genutzt wird.
</list>
</sect>
</chapt> 

<chapt>Einfhrung
<p>
Am Anfang war das .tar.gz. Benutzer muten jedes Programm, welches sie
auf ihren GNU/Linux-Systemen benutzen wollten, selbst kompilieren. 
Zu Beginn der Entwicklung des Debian-Projekts erachtete man es fr notwendig,
da das System eine Methode zum Verwalten der Pakete, die auf dem System 
installiert sind, enthlt. Man gab dieser Methode den Namen <prgn>dpkg</prgn>.
Dadurch war das erste 'Paket' auf GNU/Linux geboren, bevor Red Hat sich 
entschied, ihr eigenes RPM-System zu erschaffen.
<p>
Schnell standen die Macher von GNU/Linux vor einem neuen Problem.
Sie brauchten ein schnelles, praktisches und effizientes Mittel, um 
Pakete zu installieren, das Abhngigkeiten automatisch behandeln und 
ihre Konfigurationsdateien whrend des Aktualisierens bercksichtigen wrde.
Und wieder war es das Debian-Projekt, das den Weg machte und APT, das "Advanced 
Packaging Tool", welches seitdem von Connectiva auf RPM portiert und von 
einigen anderen Distributionen bernommen wurde, das 
Licht der Welt erblicken lie. 
<p>
Diese Anleitung versucht nicht, apt-rpm (den Connectiva-Port von APT) 
zu behandeln, aber Patches fr dieses Dokument, welche es tun,
sind willkommen.
<p>
Diese Dokumentation basiert auf der nchsten Debian-Version: <tt>Sarge</tt>.
</chapt>

<chapt id="basico">Basis-Konfiguration

<sect id="sources.list">Die Datei /etc/apt/sources.list
<p>
Als Teil seiner Arbeit benutzt APT eine Datei, die die 'Quellen', von 
denen man Pakete beziehen kann, auflistet. Diese Datei heit 
<tt>/etc/apt/sources.list</tt>.
<p>
Die Eintrge in dieser Datei sind von folgendem Format:

<p>
<example>
deb http://host/debian distribution sektion1 sektion2 sektion3
deb-src http://host/debian distribution sektion1 sektion2 sektion3
</example>

<p>
Natrlich sind obige Eintrge erfunden und sollten nicht benutzt werden.
Das erste Wort jeder Zeile, <tt>deb</tt> oder <tt>deb-src</tt> zeigt den
Typ des Archivs: entweder es enthlt Binr-Pakete (<tt>deb</tt>), das sind
die vorkompilierten Pakete, die wir normalerweise benutzen, oder Quellpakete
(<tt>deb-src</tt>), welche die originalen Programmquellen und die
Debian-Kontrolldatei (<tt>.dsc</tt>) und das <tt>diff.gz</tt>, welches die nderungen
enthlt, die fr das 'Debianisieren' des Programms von Nten sind.
<p>
Normalerweise finden wir folgendes in der Standard-Debian-sources.list:
<p>
<example>
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free

# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
</example>

<p>
Dieses sind die Zeilen, die eine Debian-Basis-Installation bentigt.  
Die erste <tt>deb</tt> Zeile zeigt auf das offizielle Archiv, die 
zweite auf das Archiv non-US und die dritte auf das Archiv der Debian
Sicherheits-Updates.
<p>
Die letzten beiden Zeilen sind auskommentiert (mit einem `#' am Anfang). 
Deshalb wird apt-get sie ignorieren. Sie sind <tt>deb-src</tt>-Zeilen, das 
bedeutet, sie fhren uns zu Debian-Quellpaketen. Wenn Sie fters 
Programm-Quellen herunterladen, um sie zu testen oder neu zu kompilieren, 
sollten Sie die Kommentarzeichen entfernen. 
<p>
Die <tt>/etc/apt/sources.list</tt> Datei kann verschiedene Typen von
Zeilen enthalten. APT kann mit Archiven der Typen <tt>http</tt>, <tt>ftp</tt>,
<tt>file</tt> (lokale Dateien, z.B. ein Verzeichnis, mit einem gemounteten 
ISO9660-Dateisystem) und <tt>ssh</tt>, soweit ich wei.
<p>
Vergessen Sie nicht, <tt>apt-get update</tt> auszufhren, nachdem
die <tt>/etc/apt-/sources.list</tt> editiert wurde. Dies ist notwendig,
damit APT die Paketlisten der spezifizierten Quellen bezieht.
</sect>

<sect id="dpkg-scanpackages">Wie man APT lokal benutzt
<p>
Manchmal haben Sie vielleicht einige .deb, bei denen Sie APT fr die 
Installation benutzen wollen, so da Abhngigkeiten automatisch 
aufgelst werden.
<p>
Um das zu tun, erstellen Sie ein Verzeichnis und legen die .debs,
die Sie sie indizieren wollen, dort hinein. Zum Beispiel:
<p>
<example>
# mkdir /root/debs/
</example>
<p>
Es ist mglich, die Definitionen der paketeigenen Kontrolldatei (debian/control)
fr das Repository mit Hilfe einer <tt>override</tt>-Datei zu bergehen. 
In dieser Datei knnen Sie einige Optionen definieren, die die 
paketeigenen Optionen berschreiben. 
Das Format sieht folgendermaen aus:
<p>
<example>
Paket Prioritt Sektion
</example>
<p>
Paket ist der Name des Pakets, die Prioritt ist "low" (niedrig),
"medium" (mittel) oder "high" (hoch) und die Sektion ist die 
Sektion, zu der das Paket gehrt. Der Dateiname spielt keine Rolle,
er mu als Argument an <prgn>dpkg-scanpackages</prgn> bergeben werden.
Wenn keine <tt>override</tt>-Datei gebraucht wird, kann man <prgn>dpkg-scanpackages</prgn>
auch <file>/dev/null</file> bergeben.
<p>
Immer noch im Verzeichnis /root fhren Sie folgendes aus:
<p>
<example>
# dpkg-scanpackages debs <var>Datei</var> | gzip &gt; debs/Packages.gz
</example>
<p>
In der obenstehenden Zeile ist <file>Datei</file> die <tt>override</tt>-Datei,
das Kommando generiert eine Datei <file>Packages.gz</file>, welche 
verschiedene Informationen ber die Pakete enthlt, die APT
bentigt. Um die Pakete benutzen zu knnen, fgen Sie folgendes der
<tt>/etc/sources.list</tt> hinzu:
<p>
<example>
deb file:/root debs/
</example>
<p>
Nachdem Sie das getan haben, knnen sie einfach die gewhnlichen
APT-Kommandos benutzen. Sie knnen ebenfalls ein Quellarchiv
erstellen. Die Prozedur ist dieselbe, aber die Dateien
<tt>.orig.tar.gz</tt>, <tt>.dsc</tt> und <tt>.diff.gz</tt> mssen sich
in dem Verzeichnis befinden und statt <tt>Packages.gz</tt> heit es hier 
<tt>Sources.gz</tt>. Auerdem mssen Sie ein anderes Programm benutzen. Es heit 
<prgn>dpkg-scansources</prgn>. Das Kommando sieht folgendermaen aus:
<p>
<example>
# dpkg-scansources debs | gzip &gt; debs/Sources.gz
</example>
<p>
<prgn>dpkg-scansources</prgn> braucht keine <tt>override</tt>-Datei.
Die Zeile in der sources.list lautet:
<p>
<example>
deb-src file:/root debs/
</example>
</sect>

<sect id="netselect">Entscheidung - Welcher Mirror ist der beste fr die sources.list: netselect, netselect-apt <p>
Eine hufige Frage, der meist neuen Benutzer ist: "Welchen Debian-Mirror
soll ich in die <tt>sources.list</tt> eintragen?". Es gibt
viele Wege, sich fr einen Mirror zu entscheiden. Die fortgeschritteneren
Benutzer haben
mglicherweise ein Skript, welches den Ping mehrerer Mirrors vergleicht.
Aber es gibt so ein Programm inzwischen auch fr weniger erfahrene Benutzer: 
<strong>netselect</strong>.
<p>
Installieren tut man netselect wie blich:
<p>
<example>
# apt-get install netselect
</example>
<p>
Wenn man es ohne Parameter ausfhrt, zeigt es seinen Hilfetext an. Fhrt man es
mit einer durch Leerzeichen separierten Liste von Hostnamen (Mirrors)
aus, gibt es uns einen Hostnamen zusammen mit der einer Punktzahl 
zurck. Diese Punktzahl bercksichtigt die erwarteten Pingzeit und 
die Zahl der Hops (Rechner, die eine Netzwerkanfrage passiert, um ihren
Zielort zu erreichen) und ist antiproportional zur erwarteten 
Downloadgeschwindigkeit (also je niedriger, desto besser). 
Angezeigt wird nur der Host mit der niedrigsten Punktzahl (Die ganze Liste der
Mirrors kann mit der Option -vv angesehen werden). Zum Beispiel: <example>
# netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
  365 ftp.debian.org.br
#
</example>
<p>
Das bedeutet, da von den Mirrors die als Parameter an netselect 
bergeben wurden, <tt>ftp.debian.org.br</tt> der beste war mit einer
Punktzahl von 365. (Achtung! Weil es auf meinem Computer ausgefhrt wurde
und die Netzwerktopographie extrem unterschiedlich und abhngig vom 
Standort des Computers ist, ist dieser Wert nicht notwendigerweise 
die richtige Geschwindigkeit fr andere Computer.
<p>
Jetzt tragen Sie einfach den schnellsten Mirror in die 
<tt>/etc/apt/sources.list</tt> ein (sehen Sie <ref id="sources.list">)
und befolgen Sie die Tips in <ref id="apt-get">.
<p> <strong>Hinweis:</strong> Die Liste der Mirrors ist immer auf
<url id="http://www.debian.org/mirror/mirrors_full"
name="http://www.debian.org/mirror/mirrors_full"> zu finden. <p>
Ab Version 0.3 enthlt das netselect-Paket das 
<strong>netselect-apt</strong>-Script, das obigen Proze automatisiert.
bergeben Sie einfach die Distribution als Parameter (Der Defaultwert ist
stable) und die <tt>sources.list</tt> wird mit den besten "main"- und
"non-US"-Mirrors generiert und im aktuellen Verzeichnis gespeichert. Das folgende 
Beispiel generiert eine sources.list fr die stabile Distribution:
<p>
<example>
# ls sources.list
ls: sources.list: File or directory not found
# netselect-apt stable
(...)
# ls -l sources.list
sources.list
#
</example>
<p>
<strong>Hinweis:</strong> Die <tt>sources.list</tt> wird im aktuellen
Verzeichnis erzeugt und mu nach <tt>/etc/apt</tt> verschoben werden.
<p>
Danach befolgen Sie die Tips in <ref id="apt-get">.
</sect>

<sect id="cdrom">Hinzufgen einer CD-ROM in die sources.list
<p>
Wenn Sie lieber eine CD-ROM zum Installieren von Paketen oder Updaten
Ihres Systems durch APT verwenden mchten, knnen Sie sie in Ihre
<tt>sources.list</tt> eintragen.
Um dieses zu tun, knnen Sie das Programm <prgn>apt-cdrom</prgn>,
wie im folgenden beschrieben, benutzen:

<p>
<example>
# apt-cdrom add
</example>

<p>
Hierfr mu die Debian CD-ROM im Laufwerk liegen. Die CD-ROM wird
gemountet, und wenn sie eine gltige Debian-CD ist, wird nach 
Paketinformationen gesucht. Wenn Ihre CD-ROM-Konfiguration ein
wenig ungewhnlich ist, knnen Sie die folgenden Optionen benutzen: 

<p>
<example>
-h           - program help
-d directory - CD-ROM mount point
-r           - Rename a recognized CD-ROM
-m           - No mounting
-f           - Fast mode, don't check package files
-a           - Thorough scan mode
</example>

<p>
Zum Beispiel:

<p>
<example>
# apt-cdrom -d /home/kov/mycdrom add
</example>

<p>
Eine CD kann auch identifiziert werden ohne sie zur sources.list hinzuzufgen:

<p>
<example>
# apt-cdrom ident
</example>

<p>
Obiges funktioniert nur, wenn das CD-ROM Laufwerk in der
<tt>/etc/fstab</tt> korrekt konfiguriert ist. 
</sect>

</chapt>


<chapt id="apt-get">Paketverwaltung
<sect id="update">Update der Liste der verfgbaren Pakete
<p>
Das Paketsystem benutzt eine private Datenbank mit Informationen
ber installierte, nicht installierte und fr eine Installation verfgbare
Pakete.
Das Programm <prgn>apt-get</prgn> benutzt diese Datenbank, um herauszufinden,
wie es die vom Benutzer angeforderten Pakete installieren soll und
welche zustzlichen Pakete bentigt werden, damit die ausgewhlten
Pakete ordentlich funktionieren.
<p>
Um diese Liste zu updaten, benutzt man das Kommando <prgn>apt-get update</prgn>.
<prgn>apt-get</prgn> sucht dann nach den Paketlisten in den Archiven aus der 
<tt>/etc/apt/sources.list</tt>; In <ref id="sources.list"> finden Sie 
weitere Information ber diese Datei. 
<p>
Es ist eine gute Idee, dieses Kommando regelmig auszufhren, um sich 
selbst und sein System auf dem neusten Stand ber mgliche Paket- bzw.
Sicherheitsupdates zu halten.
</sect>

<sect id="install">Installieren von Paketen
<p>
Endlich kommt das, worauf Sie alle gewartet haben! Mit der fertigen 
sources.list und der Liste der verfgbaren Pakete auf dem neusten Stand ist
alles, was Sie zu tun haben <tt>apt-get</tt> auszufhren, um das
gewnschte Paket zu installieren. Zum Beispiel:

<p>
<example>
# apt-get install xchat
</example>

<p>
APT durchsucht seine Datenbank nach der aktuellsten Version dieses Paketes und
holt es aus dem entsprechenden Archiv, welches in der <tt>sources.list</tt>
spezifiziert ist.
Wenn es eintritt, da das Paket von einem anderen abhngt -- wie es hier
der Fall ist -- berprft APT die Abhngigkeiten und installiert die bentigten
Pakete. Sehen Sie folgendes Beispiel:

<example>
# apt-get install nautilus
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0 
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus 
0 packages upgraded, 4 newly installed, 0 to remove and 1  not upgraded.
Need to get 8329kB of archives. After unpacking 17.2MB will be used.
Do you want to continue? [Y/n] 
</example>

<p>
Das Paket <package>nautilus</package> bentigt die genannten Bibliotheken 
(bonobo libmedusa0 libnautilus0), deshalb holt APT sie aus dem Archiv.
bergibt man <tt>apt-get</tt> die Namen der Bibliotheken beim Aufruf mit, fragt
es nicht, ob es fortfahren soll, es akzeptiert automatisch, da die genannten Pakete
installiert werden sollen.
<p>
Das bedeutet, da APT nur um Besttigung bittet, wenn es Pakete 
installieren mu, die man nicht auf der Kommandozeile bergeben hat.
<p>
Die folgenden Optionen von apt-get knnen hilfreich sein:

<p>
<example>
-h  Dieser Hilfetext
-d  Nur herunterladen - Nicht installieren oder entpacken
-f  Versuche fortzufahren wenn der integrity check fehlschlgt
-s  Nichts wirklich tun. Simulation durchfhren.
-y  Beantworte alle Fragen mit Ja anstatt sie zu stellen.
-u  Zeige eine Liste der Pakete die geupgraded werden.
</example>

<p>
Es knnen mehrere Pakete in einer Zeile zur Installation
ausgewhlt werden.
Pakete, die ber das Netzwerk oder Internet heruntergeladen
wurden, werden im Verzeichnis <tt>/var/cache/apt/archives</tt>
fr sptere Installationen gespeichert. 
<p>
Ebenfalls kann man Pakete zum Entfernen auf derselben Zeile angeben,
indem man ein '-' direkt hinter den Paketnamen hngt wie im folgenden:

<p>
<example>
# apt-get install nautilus gnome-panel-       
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0 
The following packages will be REMOVED:
  gnome-applets gnome-panel gnome-panel-data gnome-session 
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus 
0 packages upgraded, 4 newly installed, 4 to remove and 1  not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n] 
</example>

<p>
Im Abschnitt <ref id="remove"> finden Sie weitere Details zum Entfernen von Paketen.
<p>
Wenn Sie ein installiertes Paket irgendwie beschdigt haben oder einfach
die Dateien eines Paketes mit der aktuellsten verfgbaren Version neu 
installieren mchten, knnen Sie die Option <tt>--reinstall</tt> 
wie im folgenden nutzen: 

<p>
<example>
# apt-get --reinstall install gdm
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1  not upgraded.
Need to get 0B/182kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n]
</example>

<p>
Die Version des APT, die zur Erstellung dieser Anleitung benutzt wurde, ist
Version 0.5.3, die aktuelle Version in Debian `unstable' (<tt>sid</tt>)
zur Zeit als sie geschrieben wurde.
Wenn diese Version installiert ist, kann APT auf Ihren Wunsch noch mehr:
Sie knnen ein Kommando der Form <tt>apt-get install paket/distribution</tt>
benutzen, um ein Paket einer anderen Distribution zu installieren, oder 
<tt>apt-get install package=version</tt>. Zum Beispiel:

<p>
<example>
# apt-get install nautilus/unstable
</example>

<p>
Dies installiert nautilus aus der Distribution `unstable', auch wenn
die aktuell laufende Distribution `stable' ist.
Mgliche Werte fr 'distribution' sind 
<tt>stable</tt>, <tt>testing</tt>, und <tt>unstable</tt>.
<p>
Meistens ist es besser, die Option <tt>-t</tt> zu benutzen, um eine 
Distribution zu whlen, was dazu fhrt, da <prgn>apt-get</prgn>
diese Distribution beim Auflsen von Abhngigkeiten bevorzugt.
<p>
<em>WICHTIG</em>: Die `unstable'-Version von Debian ist die Version,
in welcher neue Versionen von Debian-Paketen zuerst erscheinen. Diese
Distribution sieht alle nderungen, die an Paketen vorgenommen werden,
kleinere und grere, welche mehrere Pakete oder das ganze System 
betreffen knnen. Aus diesem Grund sollte sie <em>nicht</em> von unerfahrenen 
Benutzern oder solchen, die geprfte Stabilitt brauchen, verwendet 
werden. 

<p>
Die `testing'-Distribution ist ein wenig besser als `unstable' was Stabilitt 
angeht, jedoch sollte fr Produktionssysteme die Distribution `stable' 
benutzt werden.
</sect>

<sect id="remove">Pakete entfernen
<p>
Wenn ein Paket nicht mehr gebraucht wird, kann es mit APT 
vom System entfernt werden.
Geben Sie einfach <tt>apt-get remove package</tt> ein.
Zum Beispiel:

<p>
<example>
# apt-get remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  gnome-applets gnome-panel gnome-panel-data gnome-session 
0 packages upgraded, 0 newly installed, 4 to remove and 1  not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n] 
</example>

<p>
Wie im obigen Beispiel zu sehen ist, kmmert sich APT ebenfalls um das 
Entfernen der Pakete, die das Paket, das Sie entfernen wollen, bentigen.
Es gibt keine Mglichkeit, Pakete mit APT zu entfernen, ohne
gleichzeitig die Pakete zu entfernen, die von dem entfernten Paket abhngen.
<p>
Wenn man <prgn>apt-get</prgn> ausfhrt wie oben angegeben, werden die Pakete
entfernt, aber die Konfigurationsdateien, falls es welche gibt, bleiben auf
dem System.
Fr eine komplette Entfernung der Pakete, sehen Sie folgendes Beispiel:

<p>
<example>
# apt-get --purge remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 
0 packages upgraded, 0 newly installed, 4 to remove and 1  not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n] 
</example>

<p>
Der '*' hinter den Namen der Pakete, die vom zu entfernenden Paket
abhngen, bedeutet, da deren Konfigurationsdateien ebenso 
entfernt werden.
<p>
Genau wie bei der Methode <tt>install</tt> kann man auch bei 
<tt>remove</tt> ein Symbol benutzen, um die Wirkung fr ein einzelnes
Paket umzukehren. Hier fgt man einem Paket ein <tt>'+'</tt> zu und
das Paket wird installiert, anstatt entfernt zu werden. 

<p>
<example>
# apt-get --purge remove gnome-panel nautilus+
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus 
The following packages will be REMOVED:
  gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus 
0 packages upgraded, 4 newly installed, 4 to remove and 1  not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n] 
</example>

<p>
<prgn>apt-get</prgn> listet die Pakete auf, die extra installiert werden
(die gebraucht werden, damit das Programm einwandfrei funktionieren kann),
die entfernt werden und die installiert werden (hier werden die extra-Pakete
noch einmal mit aufgelistet).
</sect>

<sect id="upgrade">Upgrade von Paketen
<p>
Das Aktualisieren von Paketen ist eine tolle Sache mit APT.  Es braucht 
dafr nur einen einzigen Befehl: <tt>apt-get upgrade</tt>. Man kann
dieses benutzen, um Pakete aus der gleichen Distribution zu aktualisieren,
oder aus einer neuen Distribution, obwohl fr letzteres 
<tt>apt-get dist-upgrade</tt> empfehlenswerter ist; Siehe
<ref id="dist-upgrade"> fr weitere Einzelheiten.
<p>
Es ist sinnvoll, diesen Befehl mit der Option <tt>-u</tt> auszufhren.
Diese Option lt APT die komplette Liste der Pakete anzeigen,
die aktualisiert werden sollen. Ohne diese Option aktualisiert man quasi 
blind. APT ldt die aktuellsten Versionen aller Pakete herunter und
installiert sie in der richtigen Reihenfolge. Es ist wichtig, da vor
jedem Aktualisieren der Pakete <tt>apt-get update</tt> ausgefhrt wird.
Siehe Abschnitt <ref id="update">. Zum Beispiel:

<p>
<example>
# apt-get -u upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back
  cpp gcc lilo 
The following packages will be upgraded
  adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
  ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
  libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
  libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc 
29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
Do you want to continue? [Y/n] 
</example>

<p>
Das ganze ist extrem einfach. Die ersten paar Zeilen sagen, da einige
Pakete zurckgehalten werden (have been <tt>kept back</tt>). Das bedeutet, 
da es neuere Versionen dieser Pakete gibt, die aus irgendeinem Grund
nicht installiert werden. Mgliche Grnde sind unerfllbare Abhngigkeiten
(z.B. wenn ein Paket, von dem das neue Paket abhngt, nicht im Archiv
verfgbar ist) oder neue Abhngigkeiten (das Paket hngt nun von
neuen Paketen ab). 
<p>
Es gibt keine "saubere" Lsung fr das erste Problem. Fr den zweiten
Fall kann man <tt>apt-get install</tt> fr das spezielle Paket 
ausfhren, das zurckgehalten wurde, da dann auch die Abhngigkeiten 
aufgelst werden. Eine noch sauberere Lsung ist es, <tt>dist-upgrade</tt>
zu benutzen. Siehe Abschnitt <ref id="dist-upgrade">.
</sect>

<sect id="dist-upgrade">Upgrade einer Debian-Version
<p>
Diese Funktion erlaubt es, ein ganzes Debian-System entweder ber das
Internet oder von einer neuen CD (die Sie kaufen oder aus dem Internet
herunterladen knnen) auf einmal zu aktualisieren.
<p>
Auerdem ist es sinnvoll, wenn an den Abhngigkeiten zwischen den Paketen 
nderungen vorgenommen wurden. Mit <tt>apt-get upgrade</tt> werden solche
Pakete nicht installiert (sie werden auf dem derzeitigen Stand gehalten 
<tt>kept back</tt>).
<p>
Wenn auf Ihrem System z.B. Revision 0 der stabilen Debian-Version luft
und Sie sich Revision 3 auf CD kaufen, knnen Sie APT benutzen, um ein Upgrade
auf die neue Version von CD durchzufhren.
Dafr benutzen Sie <prgn>apt-cdrom</prgn> (Siehe Abschnitt <ref id="cdrom">),
um die CD zu Ihrer <tt>/etc/apt/sources.list</tt> hinzuzufgen und fhren
Sie <tt>apt-get dist-upgrade</tt> aus.
<p>
Es ist wichtig zu wissen, da APT immer nach der aktuellsten Version 
eines Pakets sucht. Wenn also Ihre <tt>/etc/apt/sources.list</tt> auf ein
Archiv zeigt, das eine neuere Version eines Pakets enthlt als sich
auf der CD befindet, ldt APT das Paket aus diesem herunter.
<p>
In dem Beispiel aus Abschnitt <ref id="upgrade"> sehen wir, da manche Pakete 
nicht aktualisiert wurden (<tt>kept back</tt>). Wir werden dieses Problem nun 
mit der Funktion <tt>dist-upgrade</tt> lsen:

<p>
<example>
# apt-get -u dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following NEW packages will be installed:
  cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
  libpcre2 logrotate mailx 
The following packages have been kept back
  lilo 
The following packages will be upgraded
  adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
  indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
  libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
  liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
  procps psmisc 
31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
Do you want to continue? [Y/n]
</example>

<p>
Hier ist zu bemerken, da die Pakete aktualisiert werden, aber neue Pakete
(neue Abhngigkeiten der aktualisierten Pakete) zustzlich installiert werden.
Weiterhin wird lilo immer noch nicht aktualisiert, es gibt mglicherweise 
schwerwiegendere Probleme mit diesem Paket. Wir knnen das prfen, in dem wir
folgendes ausfhren:

<p>
<example>
# apt-get -u install lilo
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
  logrotate mailx 
The following packages will be REMOVED:
  debconf-tiny 
The following NEW packages will be installed:
  cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
  logrotate mailx 
The following packages will be upgraded
  lilo 
1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
Do you want to continue? [Y/n]
</example>

<p>
Hier erfahren wir, da das neue lilo einen Konflikt mit dem Paket 
<package>debconf-tiny</package> hat, was bedeutet, da wir es nicht
installieren (oder aktualisieren) knnen, ohne debconf-tiny zu
entfernen.
<p>
Um herauszufinden, wovon ein Paket zurckgehalten oder entfernt wird, 
knnen Sie folgendes tun:

<p>
<example>
# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Starting
Starting 2
Investigating python1.5
Package python1.5 has broken dep on python1.5-base
  Considering python1.5-base 0 as a solution to python1.5 0
  Holding Back python1.5 rather than change python1.5-base
Investigating python1.5-dev
Package python1.5-dev has broken dep on python1.5
  Considering python1.5 0 as a solution to python1.5-dev 0
  Holding Back python1.5-dev rather than change python1.5
 Try to Re-Instate python1.5-dev
Done
Done
The following packages have been kept back
  gs python1.5-dev 
0 packages upgraded, 0 newly installed, 0 to remove and 2  not upgraded.
</example>

Auf diesem Wege ist es einfach festzustellen, da das python1.5-dev Paket 
wegen einer ungelsten Abhngigkeit zu python1.5 nicht installiert werden 
kann.

</sect>

<sect id="clean">Ungenutzte Pakete entfernen: apt-get clean and autoclean    
<p>   
Wenn ein Paket installiert werden soll, bezieht APT von den Quellen,
die in der /etc/apt/sources.list aufgelistet sind, die ntigen Dateien,
legt sie in ein lokales Archiv (<file>/var/cache/apt/archives/</file>) und
fhrt mit der Installation fort. (sehen Sie <ref id="install">).
<p>
Nach und nach kann dieses lokale Archiv immer grer werden und eine Menge
Platz auf der Festplatte belegen. Auch fr diesen Fall bietet APT Werkzeuge an,
um sein lokales Archiv zu warten:
<prgn>apt-get</prgn>s <tt>clean</tt> und <tt>autoclean</tt> Methoden.
<p>
<prgn>apt-get clean</prgn> entfernt alles bis auf Lock-Dateien (sehen Sie <ref id="glossar">)
aus <file>/var/cache/apt/archives/</file> und <file>/var/cache/apt/archives/partial/</file>.
In der Folge mu APT ein Paket, das Sie erneut installieren wollen auch erneut herunterladen.
<p>
<prgn>apt-get autoclean</prgn> entfernt nur Pakete, die nicht mehr heruntergeladen
werden knnen.
<p>
Das folgende Beispiel sollte zeigen, wie apt-get autoclean arbeitet:

<p>
<example>
# ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
logrotate_3.5.9-7_i386.deb
logrotate_3.5.9-8_i386.deb
gpm_1.19.6-11_i386.deb
</example>

<p>
In /var/cache/apt/archives liegen zwei Versionen des Pakets
<package>logrotate</package> und eine Version des Pakets 
<package>gpm</package>.

<p>
<example>
# apt-show-versions -p logrotate
logrotate/stable uptodate 3.5.9-8
# apt-show-versions -p gpm
gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12
</example>

<p>
<prgn>apt-show-versions</prgn> shows that
<file>logrotate_3.5.9-8_i386.deb</file> provides the up to date version
of <package>logrotate</package>, so
<file>logrotate_3.5.9-7_i386.deb</file> is useless. Also
<file>gpm_1.19.6-11_i386.deb</file> is useless because a more recent
version of the package can be retrieved.

<p>
<example>
# apt-get autoclean
Reading Package Lists... Done
Building Dependency Tree... Done
Del gpm 1.19.6-11 [145kB]
Del logrotate 3.5.9-7 [26.5kB]
</example>

<p>
<tt>apt-get autoclean</tt> entfernt also nur die alten Pakete.
Fr weitere Informationen ber apt-show-versions sehen Sie 
<ref id="apt-show-versions">.
</sect>

<sect id="dselect-upgrade">APT unter dselect verwenden...
<p>
<prgn>dselect</prgn> ist ein Programm, da Debian-Benutzern hilft, zu installierende
Pakete auszuwhlen. Viele halten es fr zu kompliziert und vielmehr langweilig, aber
mit ein wenig bung kann man durchaus Gefallen an seiner konsolen-basierten 
ncurses-Oberflche finden.
<p>
Eine Strke von dselect ist es, da es mit den Mglichkeiten umgehen kann,
die Debian-Pakete haben, um andere Pakete zu empfehlen ("suggesting") oder 
vorzustellen ("recommending").
Um es zu benutzen, rufen Sie <tt>`dselect'</tt> als root auf.
Whlen Sie 'apt' als Zugriffsmethode. Das ist zwar nicht dringend
notwendig, aber wenn Sie keine CD-ROM benutzen und Pakete aus dem
Internet herunterladen mchten, ist es der beste Weg.
<p>
Um ein besseres Verstndnis ber die Benutzung von dselect zu
erhalten, lesen Sie die Dokumentation auf der Debian-Homepage
<url id="http://www.debian.org/doc/ddp" name="http://www.debian.org/doc/ddp">.
<p>
Nachdem Sie Ihre Auswahl mit deselect getroffen haben, benutzen Sie folgendes
Kommando

<p>
<example>
# apt-get -u dselect-upgrade
</example>

<p>
wie im folgenden Beispiel:

<example>
# apt-get -u dselect-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  lbxproxy 
The following NEW packages will be installed:
  bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
  gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
  libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
  libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
  util-linux-locales vacation xbill xplanet-images 
The following packages will be upgraded
  debian-policy 
1 packages upgraded, 30 newly installed, 1 to remove and 0  not upgraded.
Need to get 7140kB of archives. After unpacking 16.3MB will be used.
Do you want to continue? [Y/n]
</example>

<p>
Im Vergleich: apt-get dist-upgrade auf demselben System:

<p>
<example>
# apt-get -u dist-upgrade   
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages will be upgraded
  debian-policy 
1 packages upgraded, 0 newly installed, 0 to remove and 0  not upgraded.
Need to get 421kB of archives. After unpacking 25.6kB will be freed.
Do you want to continue? [Y/n]
</example>

<p>
Viele der Pakete im oberen Beispiel werden installiert, weil andere Pakete
sie "empfehlen ("suggest" or "recommend"). Andere werden aufgrund unserer 
Auswahl, die wir beim Navigieren durch die Paketlisten von dselect
getroffen haben, installiert oder entfernt (Im Falle von lbxproxy z.B.).
Dselect kann in Verbindung mit APT ein ntzliches Werkzeug sein. 
</sect>

<sect id="default-version">Wartung eines "gemischten" Systems
<p>
Viele benutzen die "testing"-Distribution, da sie stabiler ist als
"unstable" und aktueller als "stable" ist. Benutzer, die
aktuelle Versionen von Paketen wollen, sich aber nicht trauen, ihr ganzes
System auf "unstable" umzustellen haben die Mglichkeit 
"testing" und "unstable" zu mischen. Auf der anderen Seite mchten 
konservativere
Benutzer vielleicht "stable" und "testing" mischen.
<p>
Fr diesen Zweck mu die folgende Zeile in die <file>/etc/apt/apt.conf</file>
eingefgt werden:

<p>
<example>
APT::Default-Release "testing";
</example>

<p>
Um nun Pakete aus unstable zu installieren, mu die 
Option <tt>-t</tt> benutzt werden:

<p>
<example>
# apt-get -t unstable install <var>Paketname</var>
</example>

<p>
Vergessen Sie aber nicht, da Sie, um ein Paket aus einer
anderen Debian Version zu installieren, eine Quellzeile
in die <file>/etc/apt/sources.list</file> einfgen 
mssen. In unserem Beispiel brauchen wir Quellzeilen
fr die "unstable"-Distribution neben denen fr "testing".

</sect>

<sect id="apt-show-versions">Upgrade von Paketen spezieller Debian-Versionen
<p>
<prgn>apt-show-versions</prgn> bietet einen sicheren Weg fr Benutzer 
gemischter Systeme, um ihre Systeme zu aktualisieren, ohne mehr aus der 
weniger stabilen Distribution zu installieren als sie im Sinn haben.
Zum Beispiel ist es mglich, nur die "unstable"-Pakete zu aktualisieren, in 
dem man folgendes ausfhrt:
<p>
<example>
# apt-get install `apt-show-versions -u -b | grep unstable`
</example>
</sect>

<sect id="pin">Wie man bestimmte Versionen eines Paketes behlt (komplex)
<p>
Manchmal gibt es Grnde, etwas in einem Paket zu verndern, und es fehlt
die Zeit oder die Lust, diese Dinge auf neue Versionen des Paketes 
zu bertragen. Vielleicht haben Sie auch gerade Ihre Debian-Version auf
3.0 aktualisiert, aber mchten trotzdem ein Paket aus Version 2.2 behalten.
Es ist mglich, die installierte Version zu markieren (pin), so da sie
nicht aktualisiert wird.
<p>
Diese Mglichkeit einzusetzen ist einfach. Editieren Sie einfach die Datei
<tt>/etc/apt/preferences</tt>.
<p>
Das Format ist trivial:
<p>
<example>
Package: &lt;Paket&gt;
Pin: &lt;Pin-Definition&gt;
Pin-Priority: &lt;Prioritt des Pins&gt;
</example>
<p>
Um zum Beispiel das Paket <package>sylpheed</package> zu behalten, welches 
ich dazu gebracht habe "reply-to-list" in Version 0.4.99 zu benutzen,
fge ich folgendes hinzu:
<p>
<example>
Package: sylpheed
Pin: version 0.4.99*
</example>
<p>
Bemerken Sie das <tt>*</tt> (Sternchen/Asterisk). Es funktioniert als 
Platzhalter; das bedeutet, da dieser "Pin" fr alle Versionen die mit
0.4.99 beginnen gltig sein soll. Das ist ntig, da Pakete in Debian
eine Nummer fr die "Debian-Revision" enthalten und ich nicht verhindern
mchte, da diese Revisionen installiert werden. Folglich werden 
die Versionen 0.4.99-1 und 0.4.99-10 installiert, sobald sie verfgbar
sind. Bemerken Sie, da Sie das vermutlich nicht mchten, wenn Sie
das Paket modifiziert haben, da diese nderungen dann verloren gehen.
<p>
Das <tt>Pin-Priority</tt> Feld ist optional; wenn nicht anders spezifiziert
hat der "Pin" die Prioritt 989.
<p>
Lassen Sie uns einen Blick darauf werfen, wie die Pin-Prioritt funktioniert.
Eine niedrigere Prioritt als Null bewirkt, da das Paket nie installiert 
wird. Prioritten von 0 bis 100 bezeichnen Pakete, die nicht installiert sind
und keine verfgbare Version haben. Solche Pakete werden in der Auswahl 
verfgbarer Versionen nicht bercksichtigt. Die Prioritt 100 bezeichnet
ein installiertes Paket. Damit eine installierte Version von einer 
anderen ersetzt wird, mu die Prioritt ber 100 liegen.
<p>
Prioritten ber 100 sagen aus, da ein Paket installiert werden soll.
Normalerweise wird ein installiertes Paket nur durch neuere Versionen
bersetzt. Alle Prioritten zwischen 100 und 1000 (inklusive) fhren
zu diesem Normalverhalten. Ein Paket mit solcher Prioritt wird nicht
durch eine niedrigere Version ersetzt. Wenn ich also zum Beispiel 
sylpheed 0.5.3 installiert habe und einen Pin auf sylpheed 0.4.99
mit der Prioritt 999 definiert habe, wird Version 0.4.99 <em>nicht</em>
installiert werden, um den Pin zu erfllen. Um Pakete deaktualisieren
zu knnen, um einen Pin zu erfllen, braucht der Pin eine Prioritt von 
ber 1000. 
<p>
Ein Pin kann fr die <tt>version</tt>, das <tt>release</tt> oder die
Herkunft (<tt>origin</tt>) definiert werden. 
<p>
Fr einen Pin auf die <tt>version</tt>, wie oben beschrieben,
kann man sowohl Versionsnummern als auch Platzhalter (Sternchen)
verwenden. Letzteres spezifiziert mehrere Versionen in einem Pin.
<!-- what's available?  standard shell globs?  ?*[]   or more? -->
<p>
Die Option <tt>release</tt> benutzt die Release-Datei aus den
APT-Archiven oder von den CDs. Die Brauchbarkeit dieser Version
verfllt, wenn Sie APT-Archive benutzen, die diese Datei nicht
zur Verfgung stellen. Sie knnen den Inhalt der Release-Dateien, 
die Sie haben in <tt>/var/lib/apt/lists/</tt> nachlesen.
Die Parameter fr ein Release sind:
<tt>a</tt> (Archiv(Archive)), <tt>c</tt> (Sektion(Component)), <tt>v</tt> (Version(Version)),
<tt>o</tt> (Herkunft(Origin)) und <tt>l</tt> (Label(Label)).
<p>
Beispiel:
<p>
<example>
Package: *
Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
Pin-Priority: 1001
</example>
<p>
In diesem Beispiel whlen wir die Debian-Version 2.2* (was 2.2r2,
2.2r3 sein kann -- r* bezeichnet so genannte "point releases", welche
normalerweise Sicherheitsupdates und andere extrem wichtige Updates 
enthalten), das <tt>stable</tt> Archiv, die Sektion <tt>main</tt> (im
Gegensatz zu <tt>contrib</tt> oder <tt>non-free</tt>) und Herkunft und
Label Debian. Herkunft (o=) bezeichnet, wer die Release-Datei erstellt hat,
das Label (l=) definiert den Namen des Debian-Distribution: Debian fr
Debian selbst und Progeny fr Progeny Linux zum Beispiel. Ein Beispiel
einer Release-Datei:
<p>
<example>
$ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release
Archive: stable
Version: 2.2r3
Component: main
Origin: Debian
Label: Debian
Architecture: i386
</example>
</sect>
</chapt>

<chapt id="helpers">Sehr ntzliche Helfer
<sect id="equivs">Installieren selbstkompilierter Pakete: equivs
<p>
Manchmal will man spezielle Versionen eines Programms benutzen,
die nur als Quellcode verfgbar sind und nicht als Debian-Paket.
Hier kann es allerdings Probleme mit dem Paket-System geben.
Angenommen Sie wollen eine neue Version Ihres Mailservers 
kompilieren und alles klappt, aber viele Pakete in Debian
hngen von einem MTA (Mail Transfer Agent) ab. 
Da etwas installiert wurde, was 
Sie selbst kompiliert haben, wei das Paketsystem darber
nicht Bescheid.
<p>
Hier kommt das <package>equivs</package> ins Spiel. Um es zu
benutzen, installieren Sie das Paket mit diesem Namen. Es 
erstellt ein leeres Paket, das die Abhngigkeiten erfllt und
dem Paketsystem mitteilt, so da es keine Probleme mit 
Abhngigkeiten gibt.
<p>
Bevor wir nher darauf eingehen, ist es wichtig, Sie darauf hinzuweisen,
da es sicherere Mglichkeiten gibt, Programme, fr die in Debian
schon Pakete existieren, mit anderen Optionen zu kompilieren und
man equivs nicht benutzen sollte, um Abhngigkeiten zu entfernen,
ohne genau zu wissen, was man tut. 
Siehe <ref id="sourcehandling"> fr nhere Informationen.
<p>
Lassen Sie uns mit dem MTA-Beispiel fortfahren. Sie haben also
gerade Ihren frisch kompilierten <prgn>postfix</prgn> installiert
und wollen nun <package>mutt</package> (ein Mailprogramm) installieren.
Pltzlich stellen Sie fest, da <package>mutt</package> einen anderen
MTA installieren mchte, obwohl Sie schon Ihren selbstkompilierten
laufen haben.
<p>
Wechseln Sie in irgendein Verzeichnis (z.B. <file>/tmp</file>), und fhren
Sie folgendes aus:

<p>
<example>
# equivs-control <var>name</var>
</example>

<p>
Ersetzen Sie  <var>name</var> durch den Namen der Kontrolldatei, die Sie 
erstellen wollen. Die Datei wird wie folgt erstellt:

<p>
<example>
Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: &lt;Paketname; wenn nicht angegeben: equivs-dummy&gt;
Version: &lt;Versionsnummer; wenn nicht angegeben: 1.0&gt;
Maintainer: &lt;Ihr Name mit E-Mail-Adresse; wenn nicht angegeben: Benutzername &gt;
Pre-Depends: &lt;Pakete&gt;
Depends: &lt;Pakete&gt;
Recommends: &lt;Pakete&gt;
Suggests: &lt;Pakete&gt;
Provides: &lt;(virtuelles) Paket&gt;
Architecture: all
Copyright: &lt;copyright Datei; normalerweise GPL2&gt;
Changelog: &lt;changelog file; normalerweise ein generisches Changelog&gt;
Readme: &lt;README.Debian file; wenn nicht angegeben, ebenfalls ein generisches&gt;
Extra-Files: &lt;Zustzliche Dateien fr das doc-Verzeichnis, kommasepariert&gt;
Description: &lt;kurze Beschreibung; Standard ist "some wise words"&gt;
 Lange Beschreibung und Info
 .
 Zweiter Paragraph
</example>

<p>
Nun mu das so angepat werden, da es tut, was wir wollen. Gucken
Sie sich die Felder und ihre Beschreibungen an, es ist nicht ntig,
jedes einzelne hier zu erklren, lassen Sie uns das Ntigste tun: 

<p>
<example>
Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: mta-local
Provides: mail-transport-agent
</example>

<p>
Das war es schon. <package>mutt</package> hngt von
<package>mail-transport-agent</package> ab, was ein
virtuelles Paket ist, was alle MTAs liefern. Ich 
htte das Paket einfach <package>mail-transport-agent</package>
nennen knnen, aber ich bevorzugte das Schema fr virtuelle
Pakete, welches das Feld "Provides" benutzt.
<p>
Nun mu das Paket nur noch gebaut werden:

<p>
<example>
# equivs-build <var>name</var>
dh_testdir
touch build-stamp
dh_testdir
dh_testroot
dh_clean -k
# Add here commands to install the package into debian/tmp.
touch install-stamp
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package `<var>name</var>' in `../<var>name</var>_1.0_all.deb'.

The package has been created.
Attention, the package has been created in the current directory,
</example>
<p>
Und installieren Sie das erzeugte <tt>.deb</tt>.
<p>
Wie man unschwer erkennen kann, gibt es verschiedene Anwendungen fr
<prgn>equivs</prgn>. Man knnte sogar ein <tt>Favoriten</tt>-Paket 
erstellen, was von den Paketen abhngt, die Sie normalerweise installieren.
Lassen Sie Ihren Vorstellungen einfach freien Lauf, aber seien Sie vorsichtig.
<p>
Es ist wichtig zu erwhnen, da es in 
<file>/usr/share/doc/equivs/examples</file> einige Beispiel-Kontrolldateien
gibt. Werfen Sie mal einen Blick darauf.
</sect>

<sect id="localepurge">Entfernen von unbenutzten locale-Dateien: localepurge
<p>
Viele Debian-Benutzer verwenden nur ein locale (Spracheinstellung). 
Ein brasilianischer
Debian-Benutzer benutzt z.B. vermutlich immer das brasilianische 
<tt>pt_BR</tt>-locale
und interessiert sich nicht fr das spanische <tt>es</tt>-locale. 
<p>
<package>localepurge</package> ist ein sehr ntzliches Werkzeug fr diese
Art von Benutzern. Sie knnen eine Menge Festplattenplatz sparen, wenn
Sie nur die locales installiert haben, die Sie auch wirklich brauchen.
Installieren Sie einfach <tt>apt-get install localepurge</tt>.
<p>
Es ist wirklich einfach zu konfigurieren, Debconf-Fragen fhren den
Benutzer Schritt fr Schritt durch die Konfiguration. Seien Sie vorsichtig
beim Beantworten der ersten Frage, da falsche Antworten alle locales
entfernen knnen - selbst die, die Sie benutzen. Die einzige
Mglichkeit, sie wiederherzustellen, ist, alle Pakete neu zu
installieren, die sie enthalten.
</sect>

<sect id="helper-show-versions">Erfahren, welche Pakete aktualisiert werden knnen
<p>
<prgn>apt-show-versions</prgn> ist ein Programm, das zeigt, welche Pakete im 
System aktualisiert werden knnen und andere hilfreiche Informationen 
bietet.
Die Option <tt>-u</tt> zeigt eine Liste der Pakete, die aktualisiert werden 
knnen:

<p>
<example>
$ apt-show-versions -u    
libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
</example>
</sect>

</chapt>

<chapt id="search">Informationen ber Pakete
<p>
Es gibt einige Oberflchen fr das APT-System, die es 
signifikant einfacher machen, Listen ber verfgbare Pakete oder 
schon installierte Pakete zu bekommen oder auch herauszufinden, zu welcher 
Sektion ein Paket gehrt, welche Prioritt es hat, wie seine Beschreibung 
lautet, etc.
<p>
Unser Ziel aber hier ist, APT selbst benutzen zu lernen. Wie knnen wir
also den Namen eines Paketes herausfinden, welches wir installieren 
wollen?
<p>
Es gibt eine Reihe von Mglichkeiten fr eine solche Aufgabe. Fangen
wir mit <tt>apt-cache</tt> an. Dieses Programm wird vom APT-System zum 
Warten seiner Datenbank benutzt. Werfen wir nur einen kleinen Blick auf
einige seiner praktischeren Anwendungen.

<sect id="cache">Paketnamen entdecken
<p>
Angenommen, Sie wollen die alten Zeiten des Atari 2600 wieder aufleben 
lassen. Sie mchten APT benutzen, um einen Atari-Emulator zu installieren und
dann Spiele herunterladen. Sie haben folgende Mglichkeit: 

<p>
<example>
# apt-cache search atari
atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
circuslinux - The clowns are trying to pop balloons to score points!
madbomber - A Kaboom! clone
tcs - Character set translator.
atari800 - Atari emulator for svgalib/X/curses
stella - Atari 2600 Emulator for X windows
xmess-x - X binaries for Multi-Emulator Super System
</example>

<p>
Wir finden verschiedene Pakete mit kurzen Beschreibungen. Um weitere 
Informationen ber ein bestimmtes Paket zu erhalten, knnen wir folgendes 
machen:

<p>
<example>
# apt-cache show stella  
Package: stella
Priority: extra
Section: non-free/otherosfs
Installed-Size: 830
Maintainer: Tom Lear &lt;tom@trap.mtview.ca.us&gt;
Architecture: i386
Version: 1.1-2
Depends: libc6 (&gt;= 2.1), libstdc++2.10, xlib6g (&gt;= 3.3.5-1)
Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
Size: 483430
MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
Description: Atari 2600 Emulator for X windows
 Stella is a portable emulator of the old Atari 2600 video-game console
 written in C++.  You can play most Atari 2600 games with it.  The latest
 news, code and binaries for Stella can be found at:
 http://www4.ncsu.edu/~bwmott/2600
</example>

<p>
Mit dieser Ausgabe erhalten Sie eine Menge Details ber das Paket, das Sie
installieren wollen (oder nicht wollen) inklusive der vollstndigen
Beschreibung des Pakets. Wenn das Paket schon installiert ist und es 
eine neuere Version gibt, bekommen Sie Informationen ber beide Versionen.
Beispiel:

<p>
<example>
# apt-cache show lilo
Package: lilo
Priority: important
Section: base
Installed-Size: 271
Maintainer: Russell Coker &lt;russell@coker.com.au&gt;
Architecture: i386
Version: 1:21.7-3
Depends: libc6 (&gt;= 2.2.1-2), debconf (&gt;=0.2.26), logrotate
Suggests: lilo-doc
Conflicts: manpages (&lt;&lt;1.29-3)
Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
Size: 143052
MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
Description: LInux LOader - The Classic OS loader can load Linux and others
 This Package contains lilo (the installer) and boot-record-images to
 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
 .
 You can use Lilo to manage your Master Boot Record (with a simple text screen)
 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

Package: lilo
Status: install ok installed
Priority: important
Section: base
Installed-Size: 190
Maintainer: Vincent Renardias &lt;vincent@debian.org&gt;
Version: 1:21.4.3-2
Depends: libc6 (&gt;= 2.1.2)
Recommends: mbr
Suggests: lilo-doc
Description: LInux LOader - The Classic OS loader can load Linux and others
 This Package contains lilo (the installer) and boot-record-images to
 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
 .
 You can use Lilo to manage your Master Boot Record (with a simple text screen)
 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
</example>

<p>
Das erste in der Liste ist die neu verfgbare Version und das zweite die 
installierte Version. Fr generellere Informationen ber ein Paket knnen
Sie folgendes benutzen:

<p>
<example>
# apt-cache showpkg penguin-command
Package: penguin-command
Versions: 
1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)

Reverse Depends: 
Dependencies: 
1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3) 
Provides: 
1.4.5-1 - 
Reverse Provides: 
</example>

<p>
Und um nur herauszufinden, von welchen Paketen es abhngt:

<example>
# apt-cache depends penguin-command
penguin-command
  Depends: libc6
  Depends: libpng2
  Depends: libsdl-mixer1.1
  Depends: libsdl1.1
  Depends: zlib1g
</example>

<p>
Zusammengefat haben wir eine handvoll Waffen, die wir benutzen knnen, um
den Namen des Paketes herauszufinden, das wir installieren wollen.
</sect>

<sect id="dpkg-search">Paketnamen mit dpkg finden
<p>
Ein Weg, den Namen eines Pakets zu finden, ist, den Namen einer wichtigen 
Datei zu kennen, die sich in dem Paket befindet. Um zum Beispiel das
Paket zu finden, welches eine bestimmte <tt>".h"</tt> Datei enthlt, das
fr das Kompilieren eines Programms bentigt wird, ist folgendes auszufhren: 

<p>
<example>
# dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
</example>

<p>
oder:

<p>
<example>
# dpkg -S /usr/include/stdio.h
libc6-dev: /usr/include/stdio.h
</example>

<p>
Um den Namen installierter Pakete herauszufinden, was zum Beispiel zum
Aufrumen der Festplatte ntzlich sein kann, benutzen Sie:

<p>
<example>
# dpkg -l | grep mozilla
ii  mozilla-browse 0.9.6-7        Mozilla Web Browser
</example>

<p>
Das Problem mit diesem Befehl ist, da er Paketnamen "brechen" kann. Im
obigen Beispiel ist der ganze Name des Pakets <tt>mozilla-browser</tt>.
Um das Problem zu beheben, knnen Sie die Umgebungsvariable 
<tt>COLUMNS</tt> folgendermaen benutzen: 

<p>
<example>
[kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser - core and browser
</example>

<p>
oder die Beschreibung bzw. einen Teil dieser wie im folgenden:

<p>
<example>
# apt-cache search "Mozilla Web Browser"
mozilla-browser - Mozilla Web Browser
</example>
</sect>

<sect id="auto-apt">Pakete nach Bedarf installieren
<p>
Sie kompilieren gerade ein Programm, und wie aus heiterem Himmel - Boom!
Es gibt einen Fehler, da eine <tt>.h</tt> Datei gebraucht wird, die Sie
nicht haben. Das Programm <prgn>auto-apt</prgn> kann Sie for solchen 
Szenarios bewahren. Es fragt, ob es die bentigten Pakete installieren soll,
nachdem es den betroffenden Proze gestoppt hat und fhrt ihn fort, wenn
die relevanten Pakete installiert sind. 
<p>
Der Befehl sieht folgendermaen aus:

<p>
<example>
# auto-apt run Kommando
</example>

<p>
Wobei `Kommando' das Kommando ist, was ausgefhrt werden soll und evtl.
nicht vorhandene Dateien bentigt. Beispiel:

<p>
<example>
# auto-apt run ./configure
</example>

Es wird fragen, ob die bentigten Pakete installiert werden sollen,
und apt-get automatisch aufrufen. Wenn X luft, ersetzt eine grafische
Oberflche die bliche Text-Oberflche.
<p>
Auto-apt funktioniert mit einer Datenbank welche aktuell gehalten werden
mu, um effektiv zu funktionieren. Das erreicht man mit den Kommandos
<tt>auto-apt update</tt>, <tt>auto-apt updatedb</tt> und
<tt>auto-apt update-local</tt>.
</sect>

<sect id="apt-file">Herausfinden, zu welchem Paket eine Datei gehrt
<p>
Wenn ein Paket installiert werden soll und Sie nicht herausfinden knnen,
wie es heit, indem Sie mit <prgn>apt-cache</prgn> suchen, aber den Dateinamen
des Programms oder einer Datei, die zu dem Paket gehrt kennen, knnen
Sie <prgn>apt-file</prgn> benutzen, um den Dateinamen zu finden. Das wird
folgendermaen gemacht:

<p>
<example>
$ apt-file search <var>Dateinamen</var>
</example>

<p>
Es funktioniert genau wie <tt>dpkg -S</tt>, es zeigt Ihnen aber auch 
nicht installierte Pakete, die die Datei enthalten. Man kann es auch dazu 
benutzen, bentigte include-Dateien, die beim Kompilieren von Programmen
fehlen, zu installieren, allerdings ist <prgn>auto-apt</prgn> eine
wesentlich bessere Methode solche Flle zu lsen, siehe 
<ref id="auto-apt">.
<p>
Man kann auch den Inhalt von Paketen auflisten:

<p>
<example>
$ apt-file list <var>Paketname</var>
</example>

<p>
<prgn>apt-file</prgn> hat genau wie auto-apt eine Datenbank ber die 
Dateien aller Pakete und diese mu aktuell gehalten werden:

<p>
<example>
# apt-file update
</example>

<p>
Normalerweise benutzt <prgn>apt-file</prgn> die gleiche Datenbank
wie <prgn>auto-apt</prgn>, sehen Sie <ref id="auto-apt">.

</sect>

<sect id="apt-listchanges">ber nderungen in Paketen informiert bleiben
<p>
Jedes Paket installiert in sein Dokumentationsverzeichnis (<tt>/usr/share/doc/Paketname</tt>) eine Datei mit Namen <tt>changelog.Debian.gz</tt>, welche die 
Liste der nderungen gegenber der letzten Version enthlt. Sie knnen diese
Dateien z.B. mit Hilfe von <tt>zless</tt> lesen, aber es ist nicht wirklich
leicht, nach einem System-Upgrade nach dem changelog jedes aktualisierten
Paketes zu suchen.  
<p>
Es gibt aber eine Mglichkeit, diese Aufgabe zu automatisieren mit
Hilfe eines Werkzeugs mit Namen <prgn>apt-listchanges</prgn>.
Hierfr mu das Paket <package>apt-listchanges</package> erst einmal
installiert werden. Whrend der Installation bernimmt Debconf die
Installation. Beantworten Sie die Fragen nach Ihren Bedrfnissen.
<p>
Die Option "Soll apt-listchanges nach dem Anzeigen der Changelogs um 
eine Besttigung bitten?" ist sehr ntzlich, da es eine Liste der nderungen
jedes Paketes, das whrend eines Upgrades installiert wird, anzeigt und
Ihnen die Mglichkeit bietet, diese vor dem Fortfahren einzusehen.
Wenn Sie hier sagen, da Sie nicht fortfahren mchten, gibt apt-listchanges
einen Fehlercode zurck und APT bricht die Installation ab.
<p>
Nachdem apt-listchanges installiert wurde, zeigt es die Liste der nderungen
installierter Pakete an, wenn Pakete aus dem Netz (oder von
einer CD oder gemounteten Partition) heruntergeladen werden, bevor Sie 
installiert werden.
</sect>
</chapt>

<chapt id="sourcehandling">Das Arbeiten mit Quellpaketen
<sect id="source">Herunterladen von Quellpaketen
<p>
In der Welt der freien Software ist es blich, den Quellcode zu studieren
oder auch Korrekturen an fehlerhaftem Code vorzunehmen. Um dieses zu tun,
mu der Quellcode des Programms heruntergeladen werden. Das APT-System
bietet eine einfache Mglichkeit, den Quellcode der vielen Programme
der Distribution einschlielich aller fr das Erstellen eines .deb des 
Programms ntigen Dateien zu beziehen.
<p>
Eine andere bliche Anwendung fr Debian-Quellen ist es eine aktuellere
Version eines Programms aus der Distribution "unstable" zum Beispiel 
in "stable" zu benutzen. Das Paket "gegen" "stable" zu kompilieren erzeugt
ein Paket mit Abhngigkeiten, die auf die Pakete aus "stable" ausgerichtet
sind.
<p>
Hierfr sollte der <tt>deb-src</tt>-Eintrag in Ihrer 
<tt>/etc/apt/sources.list</tt> auf "unstable" zeigen. Es sollte auerdem
aktiviert sein, d.h. eventuelle Kommentarzeichen vor der Zeile mssen
entfernt werden (Siehe Abschnitt <ref id="sources.list">).
<p>
Um ein Quellpaket herunterzuladen, benutzen Sie folgendes Kommando:

<p>
<example>
$ apt-get source Paketname
</example>
<p>
Drei Dateien werden daraufhin heruntergeladen: ein <tt>.orig.tar.gz</tt>,
ein <tt>.dsc</tt> und ein <tt>.diff.gz</tt>. Im Falle von Paketen, die
speziell fr Debian erzeugt wurden, fllt das letzte weg und das erste
hat kein <tt>"orig"</tt> im Namen.
<p>
Die Datei <tt>.dsc</tt> wird von dpkg-source benutzt, um das Quellpaket
in das Verzeichnis <var>Paketname-Version</var> zu entpacken. In jedem
heruntergeladenen Quellpaket befindet sich ein Verzeichnis <tt>debian/</tt>,
welches die fr das Bauen des .deb-Paketes ntigen Dateien enthlt.
<p>
Um das Paket beim Herunterladen automatisch zu erzeugen, fgen Sie einfach
<tt>-b</tt> zur Kommandozeile hinzu:

<p>
<example>
$ apt-get -b source Paketname
</example>

<p>
Wenn Sie sich dazu entscheiden, das Paket noch nicht beim Herunterladen
zu erzeugen, knnen Sie dieses spter nachholen mittels

<p>
<example>
$ dpkg-buildpackage -rfakeroot -uc -b
</example>

<p>
in dem Verzeichnis, welches fr das Paket nach dem Herunterladen erstellt 
wurde. Um das zuvor erzeugte Paket zu installieren, mu man den
Paketmanager direkt einsetzen:

<p>
<example>
# dpkg -i <var>Datei.deb</var>
</example>

<p>
Es besteht ein Unterschied zwischen der Methode "<prgn>apt-get</prgn>
<tt>source</tt>" und den anderen Methoden von <prgn>apt-get</prgn>.
Die <tt>source</tt>- Methode kann von normalen Benutzern ohne
Root-Rechten benutzt werden. Die Dateien werden in das Verzeichnis
heruntergeladen, aus dem das <tt>apt-get source Paket</tt> aufgerufen
wurde.
</sect>

<sect id="build-dep">Fr das Kompilieren eines Quellpaketes ntige Pakete
<p>
Normalerweise mssen sich spezielle Bibliotheken auf dem System befinden,
um ein Quellpaket zu kompilieren. Alle Quellpakete haben ein Feld mit 
Namen "Build-Depends" in ihrer Kontrolldatei, welches die Namen der
zustzlichen Pakete enthlt, die fr das Erzeugen des Paketes aus
dem Quellcode ntig sind. 
<p>
APT bietet eine einfache Mglichkeit diese Pakete herunterzuladen.
Fhren Sie einfach <tt>apt-get build-dep Paket</tt> aus, wobei 
`Paket' fr den Namen des Pakets, welches Sie erzeugen wollen steht.
Beispiel:

<p>
<example>
# apt-get build-dep gmc
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
  libgpmg1-dev 
0 packages upgraded, 7 newly installed, 0 to remove and 1  not upgraded.
Need to get 1069kB of archives. After unpacking 3514kB will be used.
Do you want to continue? [Y/n]
</example>

<p>
Die Pakete, die hier installiert werden, werden gebraucht, um 
<package>gmc</package> korrekt zu erzeugen. Beachten Sie jedoch, da
dieses Kommando sich nicht um das Quellpaket selbst kmmert, welches
Sie bauen mchten. Sie mssen hierfr zustzlich <tt>apt-get source</tt>
ausfhren.

<p>
Falls Sie nur feststellen mchten, welche Pakete zum Bau eines
bestimmten Paketes bentigt werden, ist eine Variante des Kommandos
<tt>apt-cache show</tt> (Siehe <ref id="search"> hilfreich, die neben
anderer Information die Zeile <tt>Build-Depends</tt> auffhrt, die
ihrerseits die erforderlichen Pakete auflistet.

<p>
<example>
# apt-cache showscrc <var>Paket</var>
</example>

</sect>
</chapt>

<chapt id="erros">Der Umgang mit Fehlern
<sect id="erros-comuns">Hufige Fehler
<p>
Fehler wird es immer geben. Viele werden durch unachtsame Benutzer verursacht.
Im folgenden finden Sie eine Liste mit hufig gemeldeten Fehlern und wie
Sie mit ihnen umgehen sollten.
<p>
Wenn Sie eine Nachricht erhalten, die aussieht wie die im unteren Beispiel,
bei dem Versuch <tt>apt-get install Paket</tt> auszufhren ...

<p>
<example>
Reading Package Lists... Done
Building Dependency Tree... Done
W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 No such file or directory)
W: You may want to run apt-get update to correct these missing files
E: Couldn't find package penguineyes
</example>

<p>
haben Sie vergessen <tt>apt-get update</tt> nach Ihrer letzten nderung in der
<tt>/etc/apt/sources.list</tt> auszufhren.
<p>
Wenn folgender Fehler auftritt ...

<example>
E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
</example>

<p>
nach dem Versuch, irgend eine andere <prgn>apt-get</prgn>-Methode auszufhren
als <tt>source</tt>, haben Sie keine Root-Rechte, d.h. Sie haben sie als
normaler Benutzer ausgefhrt.
<p>
Der gleiche Fehler wie oben tritt auf, wenn versucht wird, zweimal 
<prgn>apt-get</prgn> gleichzeitig auszufhren oder auch, wenn versucht
wird <prgn>apt-get</prgn> auszufhren whrend ein <prgn>dpkg</prgn>
Proze luft. Die einzige Methode, die simultan zu anderen ausgefhrt
werden darf, ist die <tt>source</tt>-Methode.
<p>
Wenn eine Installation mitten im Proze abbricht und Sie merken,
da es nicht lnger mglich ist, Pakete zu installieren oder zu entfernen,
versuchen Sie diese zwei Befehle auszufhren:

<p>
<example>
# apt-get -f install
# dpkg --configure -a
</example>

<p>
Danach versuchen Sie es erneut. Es kann ntig sein, den zweiten der beiden
Befehle mehr als einmal auszufhren. Dies ist eine wichtige Information fr 
die Abenteurer, die `unstable' benutzen.

<p>
Tritt "E: Dynamic MMap ran out of room" beim Ausfhren von
<tt>apt-get update</tt> auf, sollte die folgende Zeile der 
<file>/etc/apt/apt.conf</file> hinzugefgt werden:

<example>
APT::Cache-Limit 10000000;
</example> 

</sect>

<sect id="help">Wo gibt es Hilfe?
<p>
Wenn Sie sich von Zweifeln geplagt fhlen, ziehen Sie die umfangreiche
Dokumentation des Debian-Paketsystems zu Rate. <tt>--help</tt> und 
Manpages knnen eine enorme Hilfe sein, genau wie die Dokumentation
in den Verzeichnissen in <tt>/usr/share/doc</tt> ebenso wie in 
<tt>/usr/share/doc/apt</tt>.
<p>
Wenn diese Dokumentation nicht ausreicht, um Ihre Probleme zu beseitigen,
versuchen Sie es auf den Debian-Mailinglisten. Mehr Informationen
ber die speziellen Benutzer-Listen gibt es auf der Debian-Webseite:
<url id="http://www.debian.org" name="http://www.debian.org">.
<p>
Natrlich sind diese Listen und Hilfen nur fr Debian-Benutzer; Benutzer
anderer Systeme werden von der Gemeinschaft Ihrer Distribution bessere
Hilfe erlangen.
</sect>
</chapt>

<chapt id="distros">Welche Distributionen untersttzen APT?
<p>
Hier finden Sie die Namen einiger Distributionen, die APT untersttzen:
<p>
Debian GNU/Linux (<url id="http://www.debian.org" name="http://www.debian.org">) 
- Fr diese Distribution wurde APT entwickelt
<p>
Conectiva (<url id="http://www.conectiva.com.br" name="http://www.conectiva.com.br">) 
- Die erste Distribution, die APT mit RPM benutzt
<p>
Mandrake (<url id="http://www.mandrake.com" name="http://www.mandrake.com">)
<p>
PLD (<url id="http://www.pld.org.pl" name="http://www.pld.org.pl">)
<p>
Vine (<url id="http://www.vinelinux.org" name="http://www.vinelinux.org">)
<p>
APT4RPM (<url id="http://apt4rpm.sf.net" name="http://apt4rpm.sf.net">)
<p>
Alt Linux (<url id="http://www.altlinux.ru/" name="http://www.altlinux.ru/">)
<p>
Red Hat (<url id="http://www.redhat.com/" name="http://www.redhat.com/">)
<p>
Sun Solaris (<url id="http://www.sun.com/" name="http://www.sun.com/">)
<p>
SuSE (<url id="http://www.suse.de/" name="http://www.suse.de/">)
<p>
Yellow Dog Linux (<url id="http://www.yellowdoglinux.com/"
name="http://www.yellowdoglinux.com/">)

</chapt>

<chapt id="agradecimentos">Credits
<p>
Ein groes Dankeschn geht an meine Freunde aus dem Debian-BR-Projekt und
Debian selbst, die eine stndige Hilfe fr mich sind und mir immer
die Kraft geben, fr das Wohl der Menschheit zu arbeiten genauso wie
Sie mir bei meinem Ziel helfen, die Welt zu retten. :)
<p>
Auerdem mchte ich CIPSGA fr die enorme Hilfe danken, die es fr
unser Projekt und alle freien Projekte die aus groen Ideen entstehen
bedeutet.
<p>

Und spezieller Dank geht an:
<p>
Yooseong Yang &lt;yooseong@debian.org&gt;
<p>
Michael Bramer &lt;grisu@debian.org&gt;
<p>
Bryan Stillwell &lt;bryan@bokeoa.com&gt;
<p>
Pawel Tecza  &lt;pawel.tecza@poczta.fm&gt;
<p>
Hugo Mora &lt;h.mora@melix.com.mx&gt;
<p>
Luca Monducci &lt;luca.mo@tiscali.it&gt;
<p>
Tomohiro Kubota &lt;kubota@debian.org&gt;
<p>
Pablo Lorenzzoni &lt;spectra@debian.org&gt;
<p>
Steve Langasek &lt;vorlon@netexpress.net&gt;
<p>
Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
<p>
Erik Rossen &lt;rossen@freesurf.ch&gt;
<p>
Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt;
<p>
Matt Kraai &lt;kraai@debian.org&gt;
<p>
Aaron M. Ucko &lt;ucko@debian.org&gt;
<p>
Jon slund &lt;d98-jas@nada.kth.se&gt;
</chapt>

<chapt id="novas">Neue Versionen dieses Dokuments
<p>
Diese Anleitung wurde vom <url id="http://www.debian-br.org/"
name="Debian-BR">-Projekt mit dem Ziel geschrieben, den tglichen
Umgang mit Debian zu erleichtern. 
<p>
Neue Versionen dieses Dokuments werden auf der 
Webseite des Debian-Dokumentationsprojekts zur Verfgung gestellt
werden
<url id="http://www.debian.org/doc/ddp" 
name="http://www.debian.org/doc/ddp">. 
<p>
Kommentare und Kritik knnen direkt per Mail an mich gesandt werden
unter der Adresse <email>kov@debian.org</email>.
<p>
Kritik zur deutschen bersetzung geht an
David Spreen <email>netzwurm@debian.org</email>.
</chapt>

</book>

</debiandoc>