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 © 2001, 2002 Gustavo Noronha Silva
</copyrightsummary>
<copyrightsummary>
Copyright © 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 > 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 > 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: <Paket>
Pin: <Pin-Definition>
Pin-Priority: <Prioritt des Pins>
</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: <Paketname; wenn nicht angegeben: equivs-dummy>
Version: <Versionsnummer; wenn nicht angegeben: 1.0>
Maintainer: <Ihr Name mit E-Mail-Adresse; wenn nicht angegeben: Benutzername >
Pre-Depends: <Pakete>
Depends: <Pakete>
Recommends: <Pakete>
Suggests: <Pakete>
Provides: <(virtuelles) Paket>
Architecture: all
Copyright: <copyright Datei; normalerweise GPL2>
Changelog: <changelog file; normalerweise ein generisches Changelog>
Readme: <README.Debian file; wenn nicht angegeben, ebenfalls ein generisches>
Extra-Files: <Zustzliche Dateien fr das doc-Verzeichnis, kommasepariert>
Description: <kurze Beschreibung; Standard ist "some wise words">
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 <tom@trap.mtview.ca.us>
Architecture: i386
Version: 1.1-2
Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 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 <russell@coker.com.au>
Architecture: i386
Version: 1:21.7-3
Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
Suggests: lilo-doc
Conflicts: manpages (<<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 <vincent@debian.org>
Version: 1:21.4.3-2
Depends: libc6 (>= 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 <yooseong@debian.org>
<p>
Michael Bramer <grisu@debian.org>
<p>
Bryan Stillwell <bryan@bokeoa.com>
<p>
Pawel Tecza <pawel.tecza@poczta.fm>
<p>
Hugo Mora <h.mora@melix.com.mx>
<p>
Luca Monducci <luca.mo@tiscali.it>
<p>
Tomohiro Kubota <kubota@debian.org>
<p>
Pablo Lorenzzoni <spectra@debian.org>
<p>
Steve Langasek <vorlon@netexpress.net>
<p>
Arnaldo Carvalho de Melo <acme@conectiva.com.br>
<p>
Erik Rossen <rossen@freesurf.ch>
<p>
Ross Boylan <RossBoylan@stanfordalumni.org>
<p>
Matt Kraai <kraai@debian.org>
<p>
Aaron M. Ucko <ucko@debian.org>
<p>
Jon slund <d98-jas@nada.kth.se>
</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>
|