File: apt-howto.it.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 (1961 lines) | stat: -rw-r--r-- 75,478 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
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
<!doctype debiandoc system><debiandoc>
 <book>
  <titlepag>
   <title>
     APT HOWTO
   </title>
   <author>
     <name>Gustavo Noronha Silva</name><email>kov@debian.org</email>
   </author>
   <translator>
     <name>Traduzione di Luca Monducci</name>
   </translator>
   <version>
     1.8.10 - Novembre 2004
   </version>
   <abstract>
     Questo documento intende fornire una buona base sul funzionamento del 
     sistema per la gestione dei pacchetti fornito da Debian, APT. Il suo 
     scopo  facilitare la vita ai nuovi utenti Debian e aiutarli ad 
     approfondire le loro conoscenze su come si amministrano i 
     pacchetti. Questo HOWTO fa parte del progetto Debian e ha lo scopo di 
     migliorare il supporto disponibile agli utenti di questa distribuzione.
   </abstract>
   <copyright>
    <copyrightsummary>
      Copyright &copy; 2001, 2002, 2003, 2004 Gustavo Noronha Silva
    </copyrightsummary>
    <copyrightsummary>
      Traduzione italiana &copy; 2002 &ndash; 2005 Luca Monducci
    </copyrightsummary>
    <p>
      This manual is free software; you may redistribute it and/or modify it 
      under the terms of the GNU General Public License as published by the 
      Free Software Foundation; either version 2, or (at your option) any 
      later version.
    </p>
    <p>
      This is distributed in the hope that it will be useful, but without 
      any warranty; without even the implied warranty of merchantability or 
      fitness for a particular purpose. See the GNU General Public License 
      for more details.
    </p>
    <p>
      A copy of the GNU General Public License is available as 
      /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or 
      on the World Wide Web at the GNU General Public Licence. You can also 
      obtain it by writing to the Free Software Foundation, Inc., 59 Temple 
      Place - Suite 330, Boston, MA 02111-1307, USA.
    </p>
    <p>
      <em>L'unica licenza valida  quella originale in lingua inglese. Di
      seguito ne trovate una traduzione abbastanza fedele che per non ha
      alcun valore legale.</em>
    </p>
    <p>
      Questo documento  software libero;  lecito redistribuirlo o
      modificarlo secondo i termini della GNU General Public License come
       pubblicata dalla Free Software Foundation; o la versione 2 della
      licenza o (a propria scelta) una versione successiva.
    </p>
<!--La distribuzione e l'utilizzo di questo documento sono vincolati dai
termini indicati nella versione 2 (o da qualunque versione successiva) della
GNU General Public License pubblicata dalla Free Software Foundation.-->
    <p>
      Questo documento  distribuito con l'intento di essere utile, ma senza
      alcuna garanzia; senza neppure la garanzia implicita di negoziabilit o
      di applicabilit per un particolare scopo. Vedere la GNU General Public
      License per avere maggiori dettagli.
    </p>
    <p>
      Una copia della GNU General Public License  disponibile come
      /usr/share/common-licenses/GPL nella distribuzione Debian GNU/Linux
      oppure nel World Wide Web alla GNU General Public Licence. La si
      pu ottenere anche scrivendo alla Free Software Foundation, Inc.,
      59 Temple Place - Suite 330, Boston, MA 0211-1307, USA.
    </p>
   </copyright>
  </titlepag>
  <toc detail="sect">
 
 <chapt>
  <heading>
    Introduzione
  </heading>
  <p>
    In principio esistevano i .tar.gz. Gli utenti dovevano compilare ogni 
    programma che volevano usare sui loro sistemi GNU/Linux. Quando fu 
    creata Debian, fu ritenuto necessario che il sistema incorporasse un 
    metodo di gestione dei pacchetti installati sulla macchina. A questo 
    sistema fu dato il nome <prgn>dpkg</prgn>. Fu cos che nacque il famoso 
    "pacchetto" nel mondo GNU/Linux, poco prima che Red Hat decidesse di 
    creare il proprio "rpm".
  </p>
  <p>
    Rapidamente un nuovo dilemma si fece strada nelle menti degli 
    sviluppatori di GNU/Linux. A loro serviva un modo rapido, pratico ed 
    efficiente per installare i programmi, che gestisse automaticamente le 
    dipendenze e che avesse cura di mantenere i file di configurazione 
    esistenti mentre si effettuavano i vari aggiornamenti. Ancora una volta 
    Debian ha aperto la strada dando vita a APT (Advanced Packaging Tool), 
    che poi  stato adattato da Conectiva per usarlo insieme a rpm e in 
    seguito  stato adottato anche da altre distribuzioni.
  </p>
  <p>
    Questo HOWTO non tratta di apt-rpm, cos  chiamato l'adattamento fatto 
    da Conectiva di APT, ma eventuali patch a questo documento saranno ben 
    accolte.
  </p>
  <p>
    Questo manuale  basato sulla prossima release Debian, <tt>Sarge</tt>.
  </p>
 </chapt>
 <chapt id="basico">
  <heading>
    Configurazione di base
  </heading>
  <sect id="sources.list">
   <heading>
     Il file /etc/apt/sources.list
   </heading>
   <p>
     Nello svolgere le sue operazioni, APT usa un file che contiene la lista 
     delle "sorgenti" dalle quali pu attingere i pacchetti. Questo file  
     <tt>/etc/apt/sources.list</tt>.
   </p>
   <p>
     Il contenuto di questo file ha normalmente il seguente formato:
   </p>
   <p>
    <example>deb http://host/debian distribuzione sezione1 sezione2 sezione3
deb-src http://host/debian distribuzione sezione1 sezione2 sezione3</example>
         </p>
   <p>
     &Egrave; da osservare che l'esempio sopra  fittizio e non dovrebbe 
     essere usato. La prima parola di ogni riga, <tt>deb</tt> o 
     <tt>deb-src</tt>, indica il tipo di archivio: se contiene pacchetti 
     binari (<tt>deb</tt>), che sono i pacchetti gi compilati che 
     normalmente usiamo, o se l'archivio contiene i pacchetti sorgente 
     (<tt>deb-src</tt>), che sono il codice originale del programma con 
     l'aggiunta del file di controllo (<tt>.dsc</tt>) e del file 
     <tt>diff.gz</tt> che contiene i cambiamenti necessari per 
     "debianizzare" il programma.
   </p>
   <p>
     Generalmente questo  il contenuto predefinito di sources.list:
   </p>
   <p>
    <example># See sources.list(5) for more information, especially
# 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>
   <p>
     Queste righe sono quelle necessarie per un'installazione base. La prima 
     delle righe che iniziano con <tt>deb</tt> punta all'archivio ufficiale, 
     la seconda all'archivio non-US e la terza all'archivio degli 
     aggiornamenti di sicurezza Debian.
   </p>
   <p>
     Le ultime due righe sono commentate (con un "#" all'inizio), cos 
     verranno ignorate da apt-get. Queste iniziano con <tt>deb-src</tt> e 
     puntano agli archivi che contengono i pacchetti sorgente. Se si 
     scaricano spesso i sorgenti di un programma per fare dei test o per 
     ricompilarlo,  necessario togliere il "#" all'inizio delle righe.
   </p>
   <p>
     In <tt>/etc/apt/sources.list</tt> si possono specificare diversi tipi 
     di righe. APT sa come trattare i seguenti tipi di archivio 
     <tt>http</tt>, <tt>ftp</tt>, <tt>file</tt> (file locali, per esempio 
     una directory su cui  montato un CD-ROM) e <tt>ssh</tt>.
   </p>
   <p>
     Non scordarsi di lanciare <tt>apt-get update</tt> ogni volta che si 
     modifica il file <tt>/etc/apt/source.list</tt>. Questa operazione forza 
     APT ad aggiornare la lista dei pacchetti che pu reperire dalle 
     sorgenti specificate nel file stesso.
   </p>
  </sect>
  <sect id="dpkg-scanpackages">
   <heading>
     Come usare APT localmente
   </heading>
   <p>
     Pu capitare di avere dei pacchetti .deb da installare e lo si vuole 
     fare usando APT cos che le dipendenze siano risolte automaticamente.
   </p>
   <p>
     Per farlo bisogna creare una directory e metterci dentro i .deb da 
     trattare. Per esempio:
   </p>
   <p>
    <example># mkdir /root/debs</example>
   </p>
   <p>
     &Egrave; possibile modificare le opzioni nel file di controllo dei 
     pacchetti contenuti nell'archivio locale usando il file di 
     <tt>override</tt>. Dentro questo file si possono definire alcune 
     opzioni che hanno precedenza su quelle predefinite nei pacchetti. Il 
     suo formato dovrebbe assomigliare a quello che segue:
   </p>
   <p>
    <example>pacchetto priorit sezione</example>
   </p>
   <p>
     dove "pacchetto"  il nome del pacchetto, "priorit" pu essere low, 
     medium o high e "sezione"  la sezione alla quale appartiene. Il nome 
     di questo file non  importante, successivamente dovr essere passato 
     come argomento a <prgn>dpkg-scanpackages</prgn>. Se non si vuole 
     scrivere o usare un file di <tt>override</tt>,  sufficiente usare 
     <file>/dev/null</file> quando si richiama 
     <prgn>dpkg-scanpackages</prgn>.
   </p>
   <p>
     Rimanendo nella directory <tt>/root</tt> eseguire:
   </p>
   <p>
    <example># dpkg-scanpackages debs <var>file</var> | gzip &gt; debs/Packages.gz</example>
   </p>
   <p>
     Nella riga sopra, dove <var>file</var>  il file di <tt>override</tt>, 
     il comando genera il file <file>Packages.gz</file>, questo contiene 
     delle informazioni sui pacchetti che saranno usate da APT in 
     seguito. Infine, per usare i nostri pacchetti, aggiungere questa riga a 
     <tt>/etc/apt/source.list</tt>:
   </p>
   <p>
    <example>deb file:/root debs/</example>
   </p>
   <p>
     Adesso si pu usare APT normalmente. Anche per i pacchetti sorgente si 
     pu generare un archivio locale. Per farlo si segue la stessa 
     procedura, ma bisogna ricordarsi di avere i file <tt>.orig.tar.gz</tt>, 
     <tt>.dsc</tt> e <tt>.diff.gz</tt> nella directory di lavoro e bisogna 
     usare <tt>Sources.gz</tt> al posto di <tt>Packages.gz</tt>. Anche il 
     programma da usare  diverso: per questa operazione va utilizzato 
     <tt>dpkg-scansources</tt>. La riga di comando sar simile a questa:
   </p>
   <p>
    <example># dpkg-scansources debs | gzip &gt; debs/Sources.gz</example>
   </p>
   <p>
     Notare che <tt>dpkg-scansources</tt> non necessita del file di 
     <tt>override</tt>. Infine aggiungere a <tt>/etc/apt/source.list</tt>:
   </p>
   <p>
    <example>deb-src file:/root debs/</example>
   </p>
  </sect>
  <sect id="netselect">
   <heading>
     Scegliere il miglior mirror da inserire in sources.list: netselect, 
     netselect-apt
   </heading>
   <p>
     Un dubbio molto frequente, in particolare per nuovi utenti, : "quale 
     mirror inserire in <tt>sources.list</tt>?". Ci sono molti modi per 
     deciderlo. Gli utenti esperti probabilmente hanno uno script che misura 
     il tempo di ping verso svariati mirror. Ma c' un programma che fa 
     questo per noi: <package>netselect</package>.
   </p>
   <p>
     Per installare netselect, generalmente si esegue:
   </p>
   <p>
    <example># apt-get install netselect</example>
   </p>
   <p>
     Eseguendo netselect senza alcun argomento viene mostrato un breve 
     elenco delle opzioni. Eseguendolo con una lista di host separati da uno 
     spazio come argomento visualizzer un punteggio e il nome di uno degli 
     host. Il punteggio prende in considerazione il tempo di ping e gli hop 
     (numero di nodi della rete che si deve attraversare per raggiungere la 
     destinazione) ed  inversamente proporzionale alla velocit di download 
     stimata (il pi basso  il migliore). Il nome mostrato  quello 
     dell'host che ha il punteggio pi basso (la lista completa dei punteggi 
     si ottiene usando l'opzione -vv). Osservare questo esempio:
   </p>
   <p>
    <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>
   <p>
     Significa che, fra i mirror indicati nella riga di comando, 
     <tt>ftp.debian.org.br</tt> era il migliore, con un punteggio di 
     365. (Attenzione!! Questo risultato  stato ottenuto su un certo 
     computer e per un certo tipo d'accesso alla rete, quindi questo valore 
     non  assolutamente di validit generale).
   </p>
   <p>
     Ora  necessario aggiungere il mirror pi veloce nel file 
     <tt>/etc/apt/sources.list</tt> (vedere <ref id="sources.list">) e 
     seguire i suggerimenti in <ref id="apt-get">.
   </p>
   <p>
     <strong>Nota:</strong> la lista completa dei mirror Debian si pu 
     trovare a questo indirizzo <url 
     id="http://www.debian.org/mirror/mirrors_full" 
     name="http://www.debian.org/mirror/mirrors_full">.
   </p>
   <p>
     Dalla versione 0.3.ds1 il pacchetto sorgente netselect include il 
     pacchetto binario <strong>netselect-apt</strong> che esegue 
     automaticamente il processo descritto sopra. &Egrave; sufficiente 
     passare come parametro il ramo della distribuzione (stable  il valore 
     predefinito) e verr generato un nuovo <tt>sources.list</tt> con i 
     mirror migliori per main e per non-US nella directory attuale. Il 
     prossimo esempio genera un <tt>sources.list</tt> per la distribuzione 
     stable:
   </p>
   <p>
    <example># ls sources.list
ls: sources.list: File or directory not found
# netselect-apt stable
(...)
# ls -l sources.list
sources.list
#</example>
   </p>
   <p>
     <strong>Da ricordare:</strong> il file <tt>sources.list</tt>  creato 
     nella directory attuale e deve essere spostato nella directory 
     <tt>/etc/apt</tt>.
   </p>
   <p>
     Infine, seguite i suggerimenti in <ref id="apt-get">.
   </p>
  </sect>
  <sect id="cdrom">
   <heading>
     Aggiungere un CD-ROM al file sources.list
   </heading>
   <p>
     Se si vuole usare un CD-ROM per installare i pacchetti o per aggiornare 
     il sistema automaticamente con APT, va inserito nel file 
     <tt>sources.list</tt>. Per farlo si pu usare il programma 
     <prgn>apt-cdrom</prgn> in questo modo:
   </p>
   <p>
    <example># apt-cdrom add</example>
         </p>
   <p>
     con un CD-ROM di Debian nel lettore. Questa istruzione eseguir il 
     mount del CD-ROM e, se il CD  valido, verranno cercate le informazioni 
     sui pacchetti che sono sul disco. Se la configurazione del CD-ROM  un 
     po' inusuale, si possono usare le seguenti opzioni:
   </p>
   <p>
    <example>-h           - Questo aiuto
-d directory - Mount point del CDROM
-r           - Rinomina un CDROM gi riconosciuto
-m           - Nessun montaggio
-f           - Modalit veloce, non controlla i file dei pacchetti
-a           - Scansione in modalit accurata</example>
         </p>
   <p>
     Per esempio:
   </p>
   <p>
    <example># apt-cdrom -d /home/kov/mycdrom add</example>
         </p>
   <p>
     Si pu controllare l'identit di un CD-ROM, senza inserirlo nella 
     lista:
   </p>
   <p>
    <example># apt-cdrom ident</example>
         </p>
   <p>
     Notare che questo programma funziona solo se il CD-ROM  correttamente 
     configurato in <tt>/etc/fstab</tt>.
   </p>
  </sect>
 </chapt>
 <chapt id="apt-get">
  <heading>
    Gestione dei pacchetti
  </heading>
  <sect id="update">
   <heading>
     Aggiornare la lista dei pacchetti disponibili
   </heading>
   <p>
     Il sistema di gestione dei pacchetti usa un suo database per tenere 
     traccia di quali pacchetti sono installati, quali non lo sono e quali 
     sono disponibili per l'installazione. Il programma <prgn>apt-get</prgn> 
     usa questo database per capire come installare i pacchetti richiesti 
     dall'utente e per scoprire quali ulteriori pacchetti sono necessari per 
     farli funzionare correttamente.
   </p>
   <p>
     Per aggiornare questo elenco, va usato il comando <prgn>apt-get 
     update</prgn>. Questo comando controlla le liste dei pacchetti presenti 
     negli archivi elencati in <tt>/etc/apt/sources.list</tt>; vedere <ref 
     id="sources.list"> ulteriori informazioni su questo file.
   </p>
   <p>
     &Egrave; una buona idea eseguire questo comando regolarmente per avere 
     un sistema informato su possibili aggiornamenti dei pacchetti, in 
     particolare sugli aggiornamenti di sicurezza.
   </p>
  </sect>
  <sect id="install">
   <heading>
     Installazione dei pacchetti
   </heading>
   <p>
     Con il file sources.list pronto e l'elenco dei pacchetti disponibili 
     aggiornato, tutto quello che  necessario fare per installare un 
     pacchetto  eseguire <tt>apt-get</tt>. Per esempio, si pu lanciare:
   </p>
   <p>
    <example># apt-get install xchat</example>
         </p>
   <p>
     APT cercher nel suo database la versione pi recente del pacchetto e 
     lo recuperer, come specificato in <tt>sources.list</tt>, dal 
     corrispondente archivio. Nel caso che il pacchetto dipenda da altri, 
     come nel caso dell'esempio, APT controller le dipendenze e installer 
     i pacchetti necessari, come nell'esempio successivo:
   </p>
   <p>
    <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>
   <p>
     Il pacchetto <package>nautilus</package> dipende dalle librerie citate 
     sopra, quindi per prima cosa APT prelever queste dall'archivio. Se si 
     era specificato sulla riga di comando di <tt>apt-get</tt> il nome di 
     queste librerie, APT non avrebbe chiesto conferma per continuare, 
     infatti avrebbe installato esattamente ci che viene chiesto 
     dall'utente.
   </p>
   <p>
     Questo significa che APT chiede la conferma solo quando  necessario 
     installare pacchetti che non sono specificati sulla riga di comando.
   </p>
   <p>
     Le seguenti opzioni di apt-get possono essere utili:
   </p>
   <p>
    <example>-h  Questo aiuto
-d  Solamente download - NON installa o decomprime gli archivi
-f  Tenta di continuare se il controllo di integrit fallisce
-s  Nessuna azione. Simula i passi
-y  Assume s a tutte le domande e non chiede conferma
-u  Mostra anche una lista dei pacchetti da aggiornare</example>
         </p>
   <p>
     Sulla riga di comando si possono specificare pi pacchetti. I file 
     scaricati dalla rete sono riposti nella directory 
     <tt>/var/cache/apt/archives</tt> per la successiva installazione.
   </p>
   <p>
     Sulla medesima riga di comando si possono specificare anche i pacchetti 
     da rimuovere,  sufficiente mettere "-" immediatamente dopo il nome del 
     pacchetto che dev'essere rimosso, come in quest'esempio:
   </p>
   <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>
   <p>
     Fare riferimento a <ref id="remove"> per altri dettagli sulla rimozione 
     dei pacchetti.
   </p>
   <p>
     Se in qualche modo si danneggia un pacchetto gi installato, o 
     semplicemente si vuole che i file di un pacchetto siano rimpiazzati da 
     quelli della versione pi recente che  disponibile, si pu usare 
     l'opzione <tt>--reinstall</tt>, in questo modo:
   </p>
   <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>
  </sect>
  <sect id="remove">
   <heading>
     Rimozione dei pacchetti
   </heading>
   <p>
     Se non si vuole pi usare un pacchetto, lo si pu rimuovere dal sistema 
     usando APT. Per farlo eseguire: <tt>apt-get remove package</tt>. Per 
     esempio:
   </p>
   <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>
   <p>
     Come si pu vedere nell'esempio sopra, APT si occupa di rimuovere anche 
     i pacchetti che dipendono da quello che si  chiesto di rimuovere. Non 
     c' modo, usando APT, di rimuovere un pacchetto senza che siano rimossi 
     anche i pacchetti che dipendono da questo.
   </p>
   <p>
     Eseguendo <prgn>apt-get</prgn> come sopra, saranno rimossi i pacchetti 
     ma i loro file di configurazione, se ci sono, rimarranno intatti sul 
     sistema. Per una rimozione completa del pacchetto, eseguire:
   </p>
   <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>
   <p>
     Notare gli "*" dopo i nomi. Indicano che anche i file di configurazione 
     di questi pacchetti saranno rimossi.
   </p>
   <p>
     Come nel caso del metodo <tt>install</tt>, si pu usare un simbolo per 
     invertire il significato del metodo per un particolare pacchetto. Nel 
     caso di <tt>remove</tt> se si aggiunge "+" alla fine del nome del 
     pacchetto, il pacchetto sar installato anzich essere rimosso.
   </p>
   <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>
   <p>
     Notare che <prgn>apt-get</prgn> elenca i pacchetti extra che saranno 
     installati (cio i pacchetti di cui  necessaria l'installazione per il 
     corretto funzionamento dei pacchetti richiesti), i pacchetti che 
     saranno rimossi e i nuovi pacchetti che saranno installati (compresi, 
     ancora una volta, i pacchetti extra).
   </p>
  </sect>
  <sect id="upgrade">
   <heading>
     Aggiornamento dei pacchetti
   </heading>
   <p>
     Gli aggiornamenti dei pacchetti sono un grande successo di APT. Possono 
     essere realizzati con un singolo comando: <tt>apt-get upgrade</tt>. Si 
     pu usare questo comando sia per aggiornare i pacchetti della stessa 
     distribuzione, sia per aggiornare a una nuova distribuzione, bench per 
     questo scopo si consiglia: <tt>apt-get dist-upgrade</tt>; vedere <ref 
     id="dist-upgrade"> per ulteriori dettagli.
   </p>
   <p>
     &Egrave; utile eseguire questo comando con l'opzione 
     <tt>-u</tt>. Questa opzione forza APT a mostrare la lista completa dei 
     pacchetti che saranno aggiornati, senza l'aggiornamento avverr senza 
     mostrare nulla. APT scaricher la versione pi recente di ogni 
     pacchetto e li installer nel giusto ordine. &Egrave; importante 
     eseguire sempre <tt>apt-get update</tt> prima di provare 
     l'aggiornamento. A questo proposito consultare <ref 
     id="update">. Osservare questo esempio:
   </p>
   <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>
   <p>
     Il procedimento  molto semplice. Notare che nelle prime righe, 
     <tt>apt-get</tt> informa che alcuni pacchetti saranno trattenuti 
     (<tt>kept back</tt>). Questo significa che esistono nuove versioni di 
     questi pacchetti ma che non saranno installate per qualche 
     ragione. Motivi possibili sono la presenza di dipendenze che non 
     possono essere soddisfatte (uno dei pacchetti da cui dipende non  
     disponibile per il download) o nuove dipendenze (il pacchetto ha 
     aggiunto una nuova dipendenza nell'ultima versione).
   </p>
   <p>
     Non c' una soluzione semplice nel primo caso. Nel secondo caso  
     sufficiente lanciare <tt>apt-get install</tt> per il pacchetto in 
     questione e le dipendenze saranno risolte. Una soluzione altrettanto 
     valida  usare <tt>dist-upgrade</tt>. Controllare in <ref 
     id="dist-upgrade">.
   </p>
  </sect>
  <sect id="dist-upgrade">
   <heading>
     Aggiornare a una nuova release
   </heading>
   <p>
     Questa caratteristica di APT permette di aggiornare l'intero sistema in 
     una volta sola, sia attraverso internet che attraverso un CD 
     (acquistato o scaricato come immagine ISO).
   </p>
   <p>
     &Egrave; usata anche quando ci sono delle modifiche alle relazioni fra 
     i pacchetti installati. Con <tt>apt-get upgrade</tt>, questi pacchetti 
     saranno lasciati intoccati (<tt>kept back</tt>).
   </p>
   <p>
     Per esempio, supponiamo che si stia usando la release 0 della versione 
     stable di Debian e che abbiamo comprato un CD con la release 3. Si pu 
     usare APT per aggiornare il sistema da questo nuovo CD. Si usa 
     <prgn>apt-cdrom</prgn> (guardare <ref id="cdrom">) per aggiungere il CD 
     al file <tt>/etc/apt/sources.list</tt> e poi si esegue <tt>apt-get 
     dist-upgrade</tt>.
   </p>
   <p>
     &Egrave; importante notare che APT cerca sempre la versione pi recente 
     dei pacchetti. Quindi, se nel file <tt>/etc/apt/sources.list</tt>  
     elencato un archivio che contiene una versione di un pacchetto pi 
     recente di quella sul CD, APT vorr scaricare il pacchetto da 
     quell'archivio.
   </p>
   <p>
     Nell'esempio mostrato in <ref id="upgrade">, abbiamo visto che alcuni 
     pacchetti possono essere trattenuti (<tt>kept back</tt>). Adesso questo 
     problema verr risolto con il metodo <tt>dist-upgrade</tt>:
   </p>
   <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>
   <p>
     Adesso va osservato che alcuni pacchetti saranno aggiornati e altri 
     nuovi saranno installati (le nuove dipendenze dei pacchetti gi 
     installati). Notare che <package>lilo</package> continua a essere 
     trattenuto, probabilmente ha qualche altro problema che  pi serio di 
     una nuova dipendenza. Lo si pu scoprire eseguendo:
   </p>
   <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>
   <p>
     Come si pu notare sopra, la nuova versione di <package>lilo</package> 
      in conflitto con <package>debconf-tiny</package>, questo significa 
     che non pu essere installato (o aggiornato) senza rimuovere 
     <package>debconf-tiny</package>.
   </p>
   <p>
     Per sapere quali pacchetti saranno rimossi o non-aggiornati si pu 
     usare:
   </p>
   <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>
         </p>
   <p>
     In questo modo  facile vedere che il pacchetto python1.5-dev non pu 
     essere installato perch c' una dipendenza non soddisfatta: python1.5.
   </p>
  </sect>
  <sect id="clean">
   <heading>
     Rimozione dei file dei pacchetti: apt-get clean e autoclean
   </heading>
   <p>
     Quando si installa un pacchetto APT recupera tutti i file necessari 
     delle sorgenti specificate in /etc/apt/sources.list, gli immagazzina in 
     un archivio locale (<file>/var/cache/apt/archives/</file>) e poi 
     procede con l'installazione. Vedere <ref id="install">.
   </p>
   <p>
     Con il tempo l'archivio locale cresce e pu occupare molto spazio sul 
     disco. Fortunatamente APT fornisce gli strumenti per la gestione di 
     questo archivio: i metodi <tt>clean</tt> e <tt>autoclean</tt> di 
     <prgn>apt-get</prgn>.
   </p>
   <p>
     <prgn>apt-get clean</prgn> elimina qualunque cosa, tranne i file lock, 
     dalle directory <file>/var/cache/apt/archives/</file> e 
     <file>/var/cache/apt/archives/partial/</file>. Di conseguenza, se si 
     volesse reinstallare un pacchetto APT dovr nuovamente scaricarlo.
   </p>
   <p>
     <prgn>apt-get autoclean</prgn> cancella solo i file dei pacchetti che 
     non possono pi essere scaricati.
   </p>
   <p>
     Il prossimo esempio mostra come lavora apt-get autoclean:
   </p>
   <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>
   <p>
     Nella directory /var/cache/apt/archives ci sono due file che forniscono 
     il pacchetto <package>logrotate</package> e uno che fornisce il 
     pacchetto <package>gpm</package>.
   </p>
   <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>
   <p>
     <prgn>apt-show-versions</prgn> mostra che 
     <file>logrotate_3.5.9-8_i386.deb</file> fornisce la versione aggiornata 
     di <package>logrotate</package>, quindi il file 
     <file>logrotate_3.5.9-7_i386.deb</file>  inutile. Anche il file 
     <file>gpm_1.19.6-11_i386.deb</file>  inutile perch  disponibile una 
     versione pi recente.
   </p>
   <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>
   <p>
     Infine, <tt>apt-get autoclean</tt>, rimuove solo i file inutili. Vedere 
     <ref id="apt-show-versions"> per ulteriori informazioni su 
     apt-show-versions.
   </p>
  </sect>
  <sect id="dselect-upgrade">
   <heading>
     Usare APT insieme a dselect
   </heading>
   <p>
     <prgn>dselect</prgn>  un programma che aiuta gli utenti a scegliere 
     quali pacchetti installare. &Egrave; ritenuto piuttosto complicato e 
     abbastanza noioso, ma con la pratica si pu acquisire familiarit con 
     la sua interfaccia basata su ncurses.
   </p>
   <p>
     Una caratteristica di dselect  che sa usare la capacit che hanno i 
     pacchetti Debian di "raccomandare" e "consigliare" l'installazione di 
     altri pacchetti. Per avviare il programma, usare <tt>dselect</tt> da 
     root, scegliere "apt" come metodo di accesso (non  obbligatorio, ma se 
     non si sta usando un CD-ROM e si vuole scaricare i pacchetti da 
     internet,  il miglior modo d'usare dselect).
   </p>
   <p>
     Per approfondire l'uso di dselect, leggere la documentazione sul sito 
     Debian <url id="http://www.debian.org/doc/ddp" 
     name="http://www.debian.org/doc/ddp">.
   </p>
   <p>
     Dopo aver fatto le scelte con dselect, usare:
   </p>
   <p>
    <example># apt-get -u dselect-upgrade</example>
         </p>
   <p>
     come nell'esempio sotto:
   </p>
   <p>
    <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>
   <p>
     Questo  quello che si ottiene esguendo <tt>apt-get dist-upgrade</tt> 
     sullo stesso sistema:
   </p>
   <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>
   <p>
     Notare che molti dei pacchetti elencati sopra sono installati perch 
     sono "consigliati" o "raccomandati" da altri pacchetti. Altri sono 
     installati o rimossi (nell'esempio lbxproxy) per le scelte che sono 
     state fatte nella lista dei pacchetti con dselect. Dselect pu essere 
     uno strumento davvero potente se usato insieme ad APT.
   </p>
  </sect>
  <sect id="default-version">
   <heading>
     Come mantenere un sistema misto
   </heading>
   <p>
     Alcune volte le persone vogliono usare una delle versioni Debian come 
     distribuzione per il sistema principale e uno o pi pacchetti di un 
     altro ramo.
   </p>
   <p>
     Per impostare qual  la versione di Debian principale  necessario 
     modificare la seguente riga del file <file>/etc/apt/apt.conf</file>:
   </p>
   <p>
    <example>APT::Default-Release "<var>versione</var>";</example>
   </p>
   <p>
     Dove <var>versione</var>  la versione di Debian che si desidera usare 
     come distribuzione principale. Le versioni che si possono usare sono 
     <tt>stable</tt>, <tt>testing</tt> e <tt>unstable</tt>. Poi, per 
     installare pacchetti di un'altra versione, si dovr usare APT nel 
     seguente modo:
   </p>
   <p>
    <example># apt-get -t <var>distribuzione</var> install <var>pacchetto</var></example>
   </p>
   <p>
     Per funzionare  necessario specificare nel file 
     <file>/etc/apt/sources.list</file> fra le sorgenti per APT almeno una 
     riga per la distribuzione da cui si vuole prelevare il pacchetto e che 
     il pacchetto sia disponibile tramite quella fonte.
   </p>
   <p>
     &Egrave; anche possibile richiedere l'installazione di una specifica 
     versione di un pacchetto usando la seguente sintassi:
    <example># apt-get install <var>pacchetto</var>=<var>versione</var></example>
     Per esempio, con la prossima riga  possibile installare la versione 
     <tt>2.2.4-1</tt> del pacchetto <package>nautilus</package>:
    <example># apt-get install nautilus=2.2.4-1</example>
         </p>
   <p>
     <em>IMPORTANTE</em>: la versione "unstable"  la versione di Debian che 
     contiene i nuovi pacchetti e i pi recenti aggiornamenti. Questa 
     distribuzione segue tutti i cambiamenti dei pacchetti, dai pi piccoli 
     ai pi drastici che possono influenzare molti altri pacchetti o 
     l'intero sistema. Per questo motivo, questa versione della 
     distribuzione <em>non</em> dovrebbe essere usata da utenti inesperti o 
     da chi necessita di una collaudata stabilit.
   </p>
   <p>
     La distribuzione "testing" non  necessariamente migliore di 
     "unstable", dato che non riceve rapidamente gli aggiornamenti di 
     sicurezza. Per i server e per i sistemi di produzione si dovrebbe usare 
     sempre la distribuzione "stable".
   </p>
  </sect>
  <sect id="apt-show-versions">
   <heading>
     Come aggiornare i pacchetti di una specifica distribuzione Debian
   </heading>
   <p>
     <prgn>apt-show-versions</prgn> fornisce agli utenti delle distribuzioni 
     miste un modo sicuro per aggiornare i loro sistemi senza ottenere poi 
     una distribuzione meno stabile di quella che hanno in mente. Per 
     esempio,  possibile aggiornare solo i pacchetti di unstable eseguendo 
     dopo aver installato il pacchetto <package>apt-show-versions</package>:
   </p>
   <p>
    <example># apt-get install `apt-show-versions -u -b | grep unstable | cut -d ' ' -f 1`</example>
   </p>
  </sect>
  <sect id="pin">
   <heading>
     Come bloccare una specifica versione di un pacchetto installata (i pin)
   </heading>
   <p>
     Pu capitare di modificare qualcosa in un pacchetto e che non si abbia 
     voglia o tempo, di apportare questi cambiamenti a una nuova versione 
     del programma. Oppure, per esempio, si vuole aggiornare la 
     distribuzione alla 3.0, ma si vuole continuare a usare alcuni pacchetti 
     nella versione presente nella Debian 2.2. Per far questo si pu 
     "fissare" questi pacchetti nella versione installata in modo che non 
     saranno aggiornati.
   </p>
   <p>
     Usare questo mezzo  semplice. Basta solo modificare il file 
     <tt>/etc/apt/preferences</tt>.
   </p>
   <p>
     Il formato  semplice:
   </p>
   <p>
    <example>Package: &lt;pacchetto&gt;
Pin: &lt;definizione del pin&gt;
Pin-Priority: &lt;priorit del pin&gt;</example>
   </p>
   <p>
     Per esempio, per mantenere il pacchetto <package>sylpheed</package> che 
     si  modificato per usare "reply-to-list" nella versione 0.4.99 si 
     aggiunge:
   </p>
   <p>
    <example>Package: sylpheed
Pin: version 0.4.99*</example>
   </p>
   <p>
     Notare che si  usato un <tt>*</tt> (asterisco). Questo  un "carattere 
     jolly"; indica che questo "pin"  valido per tutte le versioni che 
     iniziano con 0.4.99. Questo perch Debian numera i suoi pacchetti 
     usando un "numero di revisione" e non si vuole impedire l'installazione 
     delle revisioni successive. Cos, per esempio, le revisioni 0.4.99-1 e 
     0.4.99-10 saranno installate non appena sono disponibili. Notare che se 
     si  modificato il pacchetto non si vuole che questo accada.
   </p>
   <p>
     La priorit del pin determina se un pacchetto che verifica le righe 
     "Packages:" e "Pin:" verr installato; pi  alta la priorit e 
     maggiori sono le possibilit che il pacchetto sia installato. Si pu 
     leggere <manref section="7" name="apt_preferences"> per una profonda 
     discussione sulle priorit, ma alcuni esempi possono rendere l'idea. Di 
     seguito sono descritti gli effetti di diversi valori del campo priorit 
     per l'esempio precedente.
   </p>
   <p>
    <taglist>
     <tag>
       1001
     </tag>
     <item>
      <p>
        La versione 0.4.99 di sylpheed non sar mai sostituita da apt. Se 
        disponibile apt installer la versione 0.4.99 anche sostituendo una 
        versione successiva del pacchetto gi installata. Solo i pacchetti 
        con priorit superiore a 1000 possono far retrocedere un pacchetto 
        gi installato.
      </p>
     </item>
     <tag>
       1000
     </tag>
     <item>
      <p>
        L'effetto  lo stesso della priorit con l'eccezione che apt si 
        rifiuta di retrocedere la versione installata alla versione 0.4.99.
      </p>
     </item>
     <tag>
       990
     </tag>
     <item>
      <p>
        La versione 0.4.99 verr sostituita solo da una versione successiva 
        disponibile per la release impostata come preferita tramite la 
        variabile "APT::Default-Release" (vedere <ref 
        id="default-version">).
      </p>
     </item>
     <tag>
       500
     </tag>
     <item>
      <p>
        Qualsiasi versione successiva alla 0.4.99 di sylpheed disponibile da 
        una qualunque release avr precedenza sulla versione 0.4.99, ma la 
        0.4.99 ha comunque la precedenza su tutte le versioni precedenti.
      </p>
     </item>
     <tag>
       100
     </tag>
     <item>
      <p>
        Le versioni successive di sylpheed disponibili da qualsiasi release 
        hanno precedenza sulla versione 0.4.99 di conseguenza verr 
        installata qualsiasi versione successiva di sylpheed, la versione 
        0.4.99 verr installata solo se non c' una versine gi 
        installata. Questa  la priorit dei pacchetti una volta che sono 
        installati.
      </p>
     </item>
     <tag>
       -1
     </tag>
     <item>
      <p>
        Sono consentiti anche valori negativi per la priorit, impediscono 
        che 0.4.99 sia installato.
      </p>
     </item>
    </taglist>
   </p>
   <p>
     Un pin pu specificare la versione (<tt>version</tt>), la release 
     (<tt>release</tt>) o l'origine (<tt>origin</tt>) di un pacchetto.
   </p>
   <p>
     Il pin su <tt>version</tt>, come abbiamo visto, ammette sia cifre che 
     caratteri jolly per specificare pi versioni contemporaneamente.
   </p>
   <p>
     L'opzione <tt>release</tt> dipende dal file Release nell'archivio usato 
     da APT o nel CD. Questa opzione non pu essere usata se l'archivio che 
     si usa non fornisce questo file. Si pu controllare il contenuto dei 
     file Release in <tt>/var/lib/apt/lists/</tt>. I parametri per release 
     sono: <tt>a</tt> (archive), <tt>c</tt> (components), <tt>v</tt> 
     (version), <tt>o</tt> (origin) e <tt>l</tt> (label).
   </p>
   <p>
     Un esempio:
   </p>
   <p>
    <example>Package: *
Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
Pin-Priority: 1001</example>
   </p>
   <p>
     In questo esempio abbiamo scelto la versione 2.2* (che pu essere 
     2.2r2, 2.2r3; questi sono i "point release" che tipicamente includono 
     le fix di sicurezza e altri importanti aggiornamenti), la versione 
     <tt>stable</tt>, la sezione <tt>main</tt> (al posto di <tt>contrib</tt> 
     o <tt>non-free</tt>) e come origine e etichetta Debian. Origine (o) 
     definisce il nome della distribuzione: Debian per la Debian e Progeny 
     per Progeny, per esempio. Un esempio del file Release:
   </p>
   <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>
   </p>
  </sect>
 </chapt>
 <chapt id="helpers">
  <heading>
    Aiuti molto utili
  </heading>
  <sect id="equivs">
   <heading>
     Come installare i pacchetti compilati in proprio: equivs
   </heading>
   <p>
     Qualche volta si vuole usare una specifica versione di un programma 
     disponibile solo tramite i sorgenti, senza alcun pacchetto Debian. Ma 
     per il sistema di gestione dei pacchetti questo pu essere un 
     problema. Supponiamo che si voglia compilare una nuova versione del 
     server e-mail. Non ci sarebbero problemi, ma molti pacchetti di Debian 
     dipendono da un MTA (Mail Transport Agent) e, quando si installa 
     qualcosa che abbiamo compilato in proprio, il sistema di gestione dei 
     pacchetti non pu sapere nulla del nuovo software.
   </p>
   <p>
     Qui entra in scena <package>equivs</package>. Per usarlo installare il 
     pacchetto omonimo. Equivs crea un pacchetto vuoto che  capace di 
     soddisfare qualunque dipendenza, facendo credere al sistema di gestione 
     dei pacchetti che le dipendenze sono soddisfatte.
   </p>
   <p>
     Prima di iniziare  bene ricordare che esistono modi pi sicuri per 
     compilare un programma gi impacchettato per Debian con opzioni 
     differenti e che non si dovrebbe usare equivs per rimpiazzare le 
     dipendenze se non sa quali possono essere le conseguenze sul 
     sistema. Vedere <ref id="sourcehandling"> per ulteriori informazioni.
   </p>
   <p>
     Continuando con l'esempio del MTA: si  appena installato il 
     neo-compilato <prgn>postfix</prgn> e ora si vuole installare 
     <package>mutt</package>, per <package>mutt</package> richiede di 
     installare un altro MTA. Ma ce ne gi uno installato.
   </p>
   <p>
     Cambiare directory (<file>/tmp</file>, per esempio) ed eseguire:
   </p>
   <p>
    <example># equivs-control <var>nome</var></example>
         </p>
   <p>
     Mettere al posto di <var>name</var> il nome del file di controllo da 
     creare. Il file che sar creato  come quello che segue:
   </p>
   <p>
    <example>Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: &lt;enter package name; defaults to equivs-dummy&gt;
Version: &lt;enter version here; defaults to 1.0&gt;
Maintainer: &lt;your name and email address; defaults to username&gt;
Pre-Depends: &lt;packages&gt;
Depends: &lt;packages&gt;
Recommends: &lt;packages&gt;
Suggests: &lt;package&gt;
Provides: &lt;(virtual)package&gt;
Architecture: all
Copyright: &lt;copyright file; defaults to GPL2&gt;
Changelog: &lt;changelog file; defaults to a generic changelog&gt;
Readme: &lt;README.Debian file; defaults to a generic one&gt;
Extra-Files: &lt;additional files for the doc directory, comma-seperated&gt;
Description: &lt;short description; defaults to some wise words&gt;
 long description and info
 .
 second paragraph</example>
         </p>
   <p>
     Ora  necessario modificarlo in modo che faccia quello che si 
     vuole. Qui verr mostrato il formato dei soli campi necessari:
   </p>
   <p>
    <example>Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: mta-local
Provides: mail-transport-agent</example>
         </p>
   <p>
     <package>mutt</package> dipende da 
     <package>mail-transport-agent</package>, che  un pacchetto virtuale 
     fornito da tutti i MTA, si potrebbe semplicemente nominare il pacchetto 
     <package>mail-transport-agent</package>, ma  preferibile usare lo 
     schema dei pacchetti virtuali tramite "Provides".
   </p>
   <p>
     Ora serve solo creare il pacchetto:
   </p>
   <p>
    <example># equivs-build <var>name</var>
dh_tstdir
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>
   <p>
     e installare il <tt>.deb</tt> finale.
   </p>
   <p>
     Come si pu vedere ci sono molti usi di <prgn>equivs</prgn>. Per 
     esempio, si pu creare un pacchetto <tt>my-fovorites</tt>, che dipende 
     dai programmi che abitualmente si installano, per esempio. Si ha la pi 
     completa libert di scelta, ma si deve valutare attentamente quello che 
     si ha intenzione di fare.
   </p>
   <p>
     Infine notare che ci sono vari esempi di file di controllo in 
     <file>/usr/share/doc/equivs/example</file>.
   </p>
  </sect>
  <sect id="localepurge">
   <heading>
     Rimuovere i file di localizzazione inutilizzati: localepurge
   </heading>
   <p>
     Molti utenti Debian usano una sola impostazione internazionale. Un 
     utente brasiliano, per esempio, generalmente usa <em>locale</em> 
     settato come <tt>pt_BR</tt> tutto il tempo e non gli interessa avere a 
     disposizione anche <tt>es</tt>.
   </p>
   <p>
     <package>localepurge</package>  uno strumento molto utile per questi 
     utenti, infatti possono liberare molto spazio mantenendo solo i file di 
     localizzazione che realmente usano. Per installare localepurge: 
     <tt>apt-get install localepurge</tt>.
   </p>
   <p>
     Questo pacchetto  veramente semplice da configurare dato che debconf 
     guida l'utente passo dopo passo nella sua configurazione. Tuttavia si 
     deve porre attenzione alle risposte delle prime domande, che, se non 
     corrette, potrebbero causare la rimozione di tutti i file di 
     localizzazione, compresi quelli che si indendeva mantenere. In questo 
     caso, l'unico modo per ripristinare questi file  reinstallare i 
     pacchetti che li forniscono.
   </p>
  </sect>
  <sect id="helper-show-versions">
   <heading>
     Come sapere quali pacchetti potrebbero essere aggiornati
   </heading>
   <p>
     <prgn>apt-show-versions</prgn>  un programma che mostra quali 
     pacchetti del sistema potrebbero essere aggiornati e altre utili 
     informazioni. L'opzione <tt>-u</tt> visualizza un elenco dei pacchetti 
     aggiornabili:
   </p>
   <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>
   </p>
  </sect>
 </chapt>
 <chapt id="search">
  <heading>
    Ottenere informazioni sui pacchetti
  </heading>
  <p>
    Ci sono vari front-end per APT che rendono pi semplice avere la lista 
    dei pacchetti disponibili per l'installazione o di quelli gi 
    installati, cos come scoprire a quale sezione appartiene un pacchetto, 
    qual  la sua priorit, qual  la sua descrizione, ecc.
  </p>
  <p>
    Ma lo scopo  imparare ad usare APT. Come si pu conoscere il nome di un 
    pacchetto che si desidera installare?
  </p>
  <p>
    Sono disponibili alcuni programmi ognuno con il suo specifico 
    compito. Inizieremo con <tt>apt-cache</tt>. Questo programma  usato da 
    APT per gestire il suo database. Faremo un breve riassunto sulle sue 
    applicazioni pi comuni.
  </p>
  <sect id="cache">
   <heading>
     Avere informazioni sui nomi dei pacchetti
   </heading>
   <p>
     Per esempio, supponiamo che si voglia ricordare i bei vecchi tempi 
     dell'Atari 2600. Si vuole usare APT per installare un emulatore 
     dell'Atari e per scaricare qualche gioco. Si pu fare cos:
   </p>
   <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>
   <p>
     Sono presenti parecchi pacchetti che riguardano quello che si stava 
     cercando, e tutti hanno una breve descrizione. Per avere pi 
     informazioni su un pacchetto, si pu usare:
   </p>
   <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>
   <p>
     Questo  l'output con molti pi dettagli sul pacchetto che si desidera 
     (o non si desidera) installare. Se il pacchetto  gi installato sul 
     sistema e ne esiste una nuova versione saranno mostrate le informazioni 
     su entrambe le versioni. Per esempio:
   </p>
   <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>
   <p>
     Notare che il primo pacchetto nella lista dell'esempio precedente  la 
     versione disponibile per l'installazione e il secondo  quello gi 
     installato. Per avere delle informazioni generali su un pacchetto si 
     pu usare:
   </p>
   <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>
   <p>
     E per sapere solo quali sono le dipendenze:
   </p>
   <p>
    <example># apt-cache depends penguin-command
penguin-command
  Depends: libc6
  Depends: libpng2
  Depends: libsdl-mixer1.1
  Depends: libsdl1.1
  Depends: zlib1g</example>
         </p>
   <p>
     Ricapitolando, abbiamo un'ampia gamma di strumenti che possiamo usare 
     per trovare il nome dei pacchetti che vogliamo.
   </p>
  </sect>
  <sect id="dpkg-search">
   <heading>
     Usare dpkg per avere informazioni sui pacchetti
   </heading>
   <p>
     Un modo per individuare un pacchetto  conoscere il nome di un file che 
     pu essere trovato al suo interno. Per esempio, per trovare il 
     pacchetto che fornisce un particolare ".h" necessario per compilare un 
     programma si pu eseguire:
   </p>
   <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>
   <p>
     oppure:
   </p>
   <p>
    <example># dpkg -S /usr/include/stdio.h
libc6-dev: /usr/include/stdio.h</example>
         </p>
   <p>
     Per avere i nomi dei pacchetti installati nel sistema, utile in 
     previsione di "pulizia" dei dischi, si pu lanciare:
   </p>
   <p>
    <example># dpkg -l | grep mozilla
ii  mozilla-browse 0.9.6-7        Mozilla Web Browser</example>
   </p>
   <p>
     Il problema di questo commando  che pu "spezzare" il nome del 
     pacchetto. Nell'esempio sopra il nome intero del pacchetto  
     <tt>mozilla-browser</tt>, per sistemare questo inconveniente si pu 
     usare la variabile d'ambiente <tt>COLUMNS</tt> in questo modo:
   </p>
   <p>
    <example>$ COLUMNS=132 dpkg -l | grep mozilla
ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser - core and browser</example>
         </p>
   <p>
     o fare una ricerca sulla descrizione o su parte di essa:
   </p>
   <p>
    <example># apt-cache search "Mozilla Web Browser"
mozilla-browser - Mozilla Web Browser</example>
   </p>
  </sect>
  <sect id="auto-apt">
   <heading>
     Come installare pacchetti "on demand"
   </heading>
   <p>
     Si sta compilando un programma e, a un certo punto, boom! C' un errore 
     perch  necessario un file <tt>.h</tt> che non  installato. Il 
     programma <prgn>auto-apt</prgn> pu essere utile in questa 
     situazione. Questo programma ferma l'esecuzione del processo 
     principale, chiede di installare i pacchetti necessari e, una volta 
     installati, prosegue nell'esecuzione del processo principale.
   </p>
   <p>
     Quello che si deve fare  lanciare:
   </p>
   <p>
    <example># auto-apt run command</example>
         </p>
   <p>
     Dove "command"  il comando che deve essere eseguito a cui potrebbero 
     mancare alcuni file. Per esempio:
   </p>
   <p>
    <example># auto-apt run ./configure</example>
         </p>
   <p>
     Questo chieder di installare i pacchetti necessari e, se li vogliamo 
     installare, chiama automaticamente apt-get. Gli utenti che usano X 
     possono usare anche un'interfaccia grafica anzich la normale 
     interfaccia testuale.
   </p>
   <p>
     Per funzionare correttamente auto-apt usa un database che deve essere 
     tenuto aggiornato. Questo pu essere fatto usando i commandi 
     <tt>auto-apt update</tt>, <tt>auto-apt updatedb</tt> e <tt>auto-apt 
     update-local</tt>.
   </p>
  </sect>
  <sect id="apt-file">
   <heading>
     Come scoprire a quale pacchetto appartiene un file
   </heading>
   <p>
     Se si vuole installare un pacchetto, di cui non si riesce a scoprire il 
     nome usando <prgn>apt-cache</prgn>, ma di cui si conosce il nome del 
     programma o di un file che  contenuto nel pacchetto, si pu usare 
     <prgn>apt-file</prgn> per trovare il nome del pacchetto in questo modo:
   </p>
   <p>
    <example>$ apt-file search <var>file</var></example>
         </p>
   <p>
     Funziona come <tt>dpkg -S</tt>, con la differenza che la ricerca  
     effettuata anche nei pacchetti non installati. Pu anche essere usato 
     per scoprire quali pacchetti contengono i file mancanti quando si 
     compilano dei programmi, anche se <prgn>auto-apt</prgn> sia un metodo 
     molto migliore per risolvere questo genere di problemi, vedere <ref 
     id="auto-apt">.
   </p>
   <p>
     &Egrave; anche possibile vedere contenuto di un pacchetto eseguendo:
   </p>
   <p>
    <example>$ apt-file list <var>pacchetto</var></example>
         </p>
   <p>
     <prgn>apt-file</prgn> tiene un database del contenuto di tutti i 
     pacchetti, come fa auto-apt, e questo dev'essere tenuto aggiornato. Lo 
     si fa eseguendo:
   </p>
   <p>
    <example># apt-file update</example>
         </p>
   <p>
     <prgn>apt-file</prgn> usa lo stesso database di <prgn>auto-apt</prgn>, 
     controllare <ref id="auto-apt">.
   </p>
  </sect>
  <sect id="apt-listchanges">
   <heading>
     Come essere informato sui cambiamenti nei pacchetti
   </heading>
   <p>
     Ogni pacchetto installa, nella sua directory dedicata alla 
     documentazione (<tt>/usr/share/doc/pacchetto</tt>), un file chiamato 
     <tt>changelog.Debian.gz</tt> che contiene l'elenco dei cambiamenti 
     fatti al pacchetto sino all'ultima versione. &Egrave; possibile leggere 
     questo file usando, per esempio, <tt>zless</tt> per non  semplice, 
     dopo un aggiornamento completo del sistema, cercare i changelog di ogni 
     pacchetto che  stato aggiornato.
   </p>
   <p>
     C' un modo per automatizzare questo lavoro tramite l'uso di 
     <prgn>apt-listchanges</prgn>. Per prima cosa si deve installare il 
     pacchetto <package>apt-listchanges</package>. Durante l'installazione, 
     debconf chieder come lo si vuole configurare, anche se alcune domande, 
     in base al livello di priorit impostato in Debconf, potrebbero non 
     essere visualizzate, si consiglia di ricordare i seguenti suggerimenti 
     mentre si risponde.
   </p>
   <p>
     la prima domanda chiede come apt-listchanges deve essere mostrare le 
     modifiche,  possibile che siano inviate per posta (ideale per gli 
     aggiornamenti automatici) o che siano mostrate in un impaginatore come 
     <prgn>less</prgn> (in modo da consultarli prima di completare 
     l'aggiornamento). Se non si vuole che <prgn>apt-listchanges</prgn> sia 
     eseguito automaticamente durante gli aggiornamenti si pu rispondere 
     <tt>nessuno</tt>.
   </p>
   <p>
     Dopo aver installato apt-listchanges, appena i pacchetti sono 
     disponibili per l'installazione (scaricati, presi da un CD, ecc.) apt 
     mostrer i changelog di questi pacchetti prima di installarli.
   </p>
  </sect>
 </chapt>
 <chapt id="sourcehandling">
  <heading>
    Lavorare con i pacchetti sorgente
  </heading>
  <sect id="source">
   <heading>
     Scaricare i pacchetti sorgente
   </heading>
   <p>
     Spesso nel mondo del software libero si fanno correzioni ai programmi 
     che contengono dei bug. Per fare questo  necessario scaricare il 
     sorgente del programma: APT fornisce un modo semplice per scaricare i 
     sorgenti di un programma, compresi i file necessari per creare il 
     pacchetto .deb.
   </p>
   <p>
     Un altro uso comune dei sorgenti  compilare su una distribuzione 
     stable i pacchetti di testing o di unstable dato che, quelli presenti 
     in quest'ultime, sono pi recenti. Infatti, compilando un pacchetto su 
     stable, sar creato un .deb le cui dipendenze sono automaticamente 
     aggiustate per operare in questa distribuzione.
   </p>
   <p>
     Per poter fare questo dev'essere specificata almeno una riga 
     <tt>deb-src</tt> in <tt>/etc/apt/sources.list</tt> che punti ai 
     pacchetti di testing o di unstable. Vedere <ref id="sources.list">.
   </p>
   <p>
     Per scaricare un pacchetto sorgente, si pu usare il seguente comando:
   </p>
   <p>
    <example>$ apt-get source packagename</example>
   </p>
   <p>
     Questo scaricher tre file: un <tt>.orig.tar.gz</tt>, un <tt>.dsc</tt> 
     e un <tt>.diff.gz</tt>. Se un pacchetto  fatto specificamente per 
     Debian, l'ultimo fra quelli elencati non  scaricato e al primo della 
     lista mancher <tt>orig</tt> nel nome.
   </p>
   <p>
     Il file <tt>.dsc</tt>  usato da dpkg-source per decomprimere il 
     pacchetto sorgente nella directory 
     <var>nomepacchetto-versione</var>. Dentro tutti i pacchetti sorgente, 
     una volta scompattati, c' dentro una directory <tt>debian/</tt> che 
     contiene i file necessari per la costruzione del pacchetto .deb.
   </p>
   <p>
     Per automatizzare la costruzione del pacchetto, dopo aver scaricato i 
     sorgenti,  sufficiente aggiungere l'opzione <tt>-b</tt> nella riga di 
     comando:
   </p>
   <p>
    <example>$ apt-get -b source packagename</example>
         </p>
   <p>
     Se invece non si vuole creare il .deb al termine del download, lo si 
     pu creare successivamente lanciando:
   </p>
   <p>
    <example>$ dpkg-buildpackage -rfakeroot -uc -b</example>
         </p>
   <p>
     dopo essersi assicurati che nella directory corrente sia quella creata 
     per il pacchetto al termine del download. Per installare il pacchetto 
     creato con i precedenti comandi si deve usare direttamente il gestore 
     di pacchetti in questo modo:
   </p>
   <p>
    <example># dpkg -i <var>file.deb</var></example>
         </p>
   <p>
     C' una differenza fra il metodo <tt>source</tt> e gli altri messi a 
     disposizione da <prgn>apt-get</prgn>: tale metodo pu essere usato da 
     tutti gli utenti senza che questi abbiano i privilegi di root. I file 
     sono scaricati nella directory dalla quale  stato lanciato il comando 
     <tt>apt-get source package</tt>.
   </p>
  </sect>
  <sect id="build-dep">
   <heading>
     Soddisfare le dipendenze per compilare un pacchetto sorgente
   </heading>
   <p>
     Normalmente per compilare un pacchetto sorgente  necessario aver 
     installato header e librerie appropriate. Tutti i pacchetti sorgente 
     hanno nei loro file di controllo un campo chiamato "Build-Depends:" che 
     indica quali pacchetti devono essere installati per poter costruire il 
     pacchetto dai sorgenti.
   </p>
   <p>
     APT possiede un metodo veramente semplice per scaricare questi 
     pacchetti. &Egrave; sufficiente lanciare <tt>apt-get build-dep 
     pacchetto</tt>, dove "pacchetto"  il nome del pacchetto che si vuole 
     compilare. Per esempio:
   </p>
   <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>
   <p>
     Saranno installati i pacchetti necessari per la corretta compilazione 
     del pacchetto <package>gmc</package>. &Egrave; importante notare che 
     questo comando non recupera i file sorgente del pacchetto che si vuole 
     compilare, per scaricarlo va lanciato prima <tt>apt-get source</tt>.
   </p>
   <p>
     Se invece si  interessati solo a controllare quali pacchetti sono 
     necessari per compilare un certo pacchetto c' una variante del comando 
     <tt>apt-cache show</tt> (vedere <ref id="search">), che vi mostrer fra 
     le varie informazioni la riga <tt>Build-Depends</tt> in cui sono 
     elencati questi pacchetti.
   </p>
   <p>
    <example># apt-cache showsrc <var>pacchetto</var></example>
         </p>
  </sect>
 </chapt>
 <chapt id="erros">
  <heading>
    Come trattare gli errori
  </heading>
  <sect id="erros-comuns">
   <heading>
     Errori banali
   </heading>
   <p>
     Gli errori sono sempre accaduti, molti di questi sono causati da utenti 
     che non prestano attenzione. Quella che segue  una breve lista degli 
     errori pi frequenti e di come si possono risolvere.
   </p>
   <p>
     Se viene visualizzato un messaggio d'errore che assomiglia a questo 
     quando si sta provando a installare un pacchetto con <tt>apt-get 
     install package</tt>...
   </p>
   <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_&percnt;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>
   <p>
     vuol dire che non si  lanciato <tt>apt-get update</tt> dopo l'ultima 
     modifica al file <tt>/etc/apt/sources.list</tt>.
   </p>
   <p>
     Se l'errore assomiglia a questo:
   </p>
   <p>
    <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>
   <p>
     quando si tenta di usare <prgn>apt-get</prgn> con qualunque metodo 
     (tranne <tt>source</tt>), significa che non si hanno i permessi 
     dell'utente root, cio si sta eseguendo <prgn>apt-get</prgn> come un 
     normale utente.
   </p>
   <p>
     C' anche un errore simile al precedente che avviene quando si tenta di 
     avviare pi di un processo <prgn>apt-get</prgn> o quando 
     <prgn>apt-get</prgn>  lanciato mentre  gi attivo un processo 
     <prgn>dpkg</prgn>. L'unico modo possibile per avere pi processi 
     <prgn>apt-get</prgn> attivi  usare il metodo <tt>source</tt>.
   </p>
   <p>
     Se un'installazione si blocca e non  pi possibile n installare n 
     rimuovere il pacchetto, provare con questi due comandi:
   </p>
   <p>
    <example># apt-get -f install
# dpkg --configure -a</example>
         </p>
   <p>
     E poi tentare di nuovo. Potrebbe essere necessario ripetere pi volte i 
     comandi precedenti. Questa  una lezione importante per gli 
     avventurieri che usano "unstable".
   </p>
   <p>
     Se si riceve l'errore "E: Dynamic MMap ran out of room" durante 
     l'esecuzione di <tt>apt-get update</tt>, aggiungete la seguente riga a 
     <file>/etc/apt/apt.conf</file>:
    <example>APT::Cache-Limit 10000000;</example>
         </p>
  </sect>
  <sect id="help">
   <heading>
     Dove posso trovare aiuto?
   </heading>
   <p>
     In caso di dubbi, consultare la vasta documentazione disponibile per il 
     sistema di gestione dei pacchetti Debian. <tt>--help</tt> e le pagine 
     di manuale possono essere d'aiuto, inoltre si pu leggere la 
     documentazione contenuta nelle directory <tt>/usr/share/doc</tt> e in 
     particolare <tt>/usr/share/doc/apt</tt>.
   </p>
   <p>
     Se questa documentazione non  sufficiente, si pu provare a cercare la 
     risposta nell'archivio delle mailing list. Altre informazioni sulle 
     mailing list si possono trovare sul sito web di Debian: <url 
     id="http://www.debian.org" name="http://www.debian.org">.
   </p>
   <p>
     Tuttavia, queste mailing list dovrebbero essere usate solo dagli utenti 
     Debian; gli utenti di altri sistemi troveranno un miglior supporto 
     dalle communit che si occupano della propria distribuzione.
   </p>
  </sect>
 </chapt>
 <chapt id="distros">
  <heading>
    Quali distribuzioni supportano APT?
  </heading>
  <p>
    Di seguito sono elencati i nomi di alcune distribuzioni che usano APT:
  </p>
  <p>
    Debian GNU/Linux (<url id="http://www.debian.org" 
    name="http://www.debian.org">) - la distribuzione per la quale  stato 
    sviluppato APT
  </p>
  <p>
    Conectiva (<url id="http://www.conectiva.com.br" 
    name="http://www.conectiva.com.br">) -  stata la prima distribuzione a 
    fondere insieme APT con rpm
  </p>
  <p>
    Libranet (<url id="http://www.libranet.com" 
    name="http://www.libranet.com">)
  </p>
  <p>
    Mandrake (<url id="http://www.mandrake.com" 
    name="http://www.mandrake.com">)
  </p>
  <p>
    PLD (<url id="http://www.pld.org.pl" name="http://www.pld.org.pl">)
  </p>
  <p>
    Vine (<url id="http://www.vinelinux.org" 
    name="http://www.vinelinux.org">)
  </p>
  <p>
    APT4RPM (<url id="http://apt4rpm.sf.net" name="http://apt4rpm.sf.net">)
  </p>
  <p>
    Alt Linux (<url id="http://www.altlinux.ru/" 
    name="http://www.altlinux.ru/">)
  </p>
  <p>
    Red Hat (<url id="http://www.redhat.com/" 
    name="http://www.redhat.com/">)
  </p>
  <p>
    Sun Solaris (<url id="http://www.sun.com/" name="http://www.sun.com/">)
  </p>
  <p>
    SuSE (<url id="http://www.suse.de/" name="http://www.suse.de/">)
  </p>
  <p>
    Yellow Dog Linux (<url id="http://www.yellowdoglinux.com/" 
    name="http://www.yellowdoglinux.com/">)
  </p>
 </chapt>
 <chapt id="agradecimentos">
  <heading>
    Ringraziamenti
  </heading>
  <p>
    Un grande grazie va ai miei amici del progetto Debian-BR e a Debian in 
    s, che sono un aiuto costante per me e che sempre mi danno la forza per 
    continuare a lavorare per il miglioramento dell'umanit, cos come mi 
    aiutano nel mio scopo di salvare il mondo. :)
  </p>
  <p>
    Voglio ringraziare il CIPSGA per l'enorme aiuto che ha dato al nostro 
    progetto e a tutti i progetti liberi che nascono da grandi idee.
  </p>
  <p>
    E speciali ringraziamenti vanno a:
  </p>
  <p>
    Yooseong Yang &lt;yooseong@debian.org&gt;
  </p>
  <p>
    Michael Bramer &lt;grisu@debian.org&gt;
  </p>
  <p>
    Bryan Stillwell &lt;bryan@bokeoa.com&gt;
  </p>
  <p>
    Pawel Tecza &lt;pawel.tecza@poczta.fm&gt;
  </p>
  <p>
    Hugo Mora &lt;h.mora@melix.com.mx&gt;
  </p>
  <p>
    Luca Monducci &lt;luca.mo@tiscali.it&gt;
  </p>
  <p>
    Tomohiro KUBOTA &lt;kubota@debian.org&gt;
  </p>
  <p>
    Pablo Lorenzzoni &lt;spectra@debian.org&gt;
  </p>
  <p>
    Steve Langasek &lt;vorlon@netexpress.net&gt;
  </p>
  <p>
    Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
  </p>
  <p>
    Erik Rossen &lt;rossen@freesurf.ch&gt;
  </p>
  <p>
    Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt;
  </p>
  <p>
    Matt Kraai &lt;kraai@debian.org&gt;
  </p>
  <p>
    Aaron M. Ucko &lt;ucko@debian.org&gt;
  </p>
  <p>
    Jon &Aring;slund &lt;d98-jas@nada.kth.se&gt;
  </p>
 </chapt>
 <chapt id="novas">
  <heading>
    Nuove versioni di questo tutorial
  </heading>
  <p>
    Questo manuale  stato creato dal progetto <url 
    id="http://www.debian-br.org" name="Debian-BR">, con lo scopo di 
    agevolare l'uso quotidiano di Debian.
  </p>
  <p>
    Nuove versioni di questo documento saranno disponibili alla pagina del 
    Progetto di Documentazione Debian <url 
    id="http://www.debian.org/doc/ddp" 
    name="http://www.debian.org/doc/ddp">.
  </p>
  <p>
    Commenti e critiche possono essere inviati per email all'autore 
    <email>kov@debian.org</email>.
  </p>
 </chapt>
</book>
</debiandoc>