File: 05_packaging-system.po

package info (click to toggle)
debian-handbook 10.20200619
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 135,632 kB
  • sloc: xml: 29,579; sh: 227; makefile: 62; perl: 54
file content (1457 lines) | stat: -rw-r--r-- 96,461 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
#
# AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2020-05-17 17:54+0200\n"
"PO-Revision-Date: 2012-06-01T20:23:56\n"
"Last-Translator: Automatically generated\n"
"Language-Team: None\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: application/x-publican; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "Binary package"
msgstr ""

msgid "Source package"
msgstr ""

msgid "dpkg"
msgstr ""

msgid "deb"
msgstr ""

msgid "dependencies"
msgstr ""

msgid "conflict"
msgstr ""

msgid "Packaging System: Tools and Fundamental Principles"
msgstr ""

msgid "As a Debian system administrator, you will routinely handle <filename>.deb</filename> packages, since they contain consistent functional units (applications, documentation, etc.), whose installation and maintenance they facilitate. It is therefore a good idea to know what they are and how to use them."
msgstr ""

msgid "This chapter describes the structure and contents of “binary” and “source” packages. The former are files directly usable by <command>dpkg</command>, while the latter contain the source code, as well as instructions for building binary packages."
msgstr ""

msgid "Structure of a Binary Package"
msgstr ""

msgid "<primary>package</primary><secondary>binary package</secondary><seealso><filename>.deb</filename></seealso>"
msgstr ""

msgid "<primary><command>ar</command></primary>"
msgstr ""

msgid "<primary><command>dpkg</command></primary>"
msgstr ""

msgid "The Debian package format is designed so that its content may be extracted on any Unix system that has the classic commands <command>ar</command>, <command>tar</command>, and <command>xz</command> or sometimes <command>gzip</command> or <command>bzip2</command>. This seemingly trivial property is important for portability and disaster recovery."
msgstr ""

msgid "Imagine, for example, that you mistakenly deleted the <command>dpkg</command> program, and that you could thus no longer install Debian packages. <command>dpkg</command> being a Debian package itself, it would seem your system would be done for... Fortunately, you know the format of a package and can therefore <ulink url=\"https://www.debian.org/distrib/packages#search_packages\">download</ulink> the <filename>.deb</filename> file of the <emphasis role=\"pkg\">dpkg</emphasis> package and install it manually (see sidebar <xref linkend=\"sidebar.dpkg-apt-ar\" />). If by some misfortune one or more of the programs <command>ar</command>, <command>tar</command> or <command>gzip</command>/<command>xz</command>/<command>bzip2</command> have disappeared, you will only need to copy the missing program from another system (since each of these operates in a completely autonomous manner, without dependencies, a simple copy will suffice). If your system suffered some even more outrageous fortune, and even these don't work (maybe the deepest system libraries are missing?), you should try the static version of <command>busybox</command> (provided in the <emphasis role=\"pkg\">busybox-static</emphasis> package), which is even more self-contained, and provides subcommands such as <command>busybox ar</command>, <command>busybox tar</command> and <command>busybox xz</command>."
msgstr ""

msgid "<emphasis>In case of a misfortune you better also have a backup of your system (see <xref linkend=\"sect.backup\" />).</emphasis>"
msgstr ""

msgid "<emphasis>TOOLS</emphasis> <command>dpkg</command>, <command>APT</command> and <command>ar</command>"
msgstr ""

msgid "<primary>APT</primary><secondary><command>apt</command></secondary>"
msgstr ""

msgid "<primary>Advanced Packaging Tools</primary><seealso>APT</seealso>"
msgstr ""

msgid "<command>dpkg</command> is the program that handles <filename>.deb</filename> files (binary packages), notably extracting, analyzing, and unpacking them."
msgstr ""

msgid "<acronym>APT</acronym> (the abbreviation of \"Advanced Packaging Tool\") is a group of programs that allows the execution of higher-level modifications to the system: installing or removing a package (while keeping dependencies satisfied), updating and upgrading the system, listing the available packages, etc."
msgstr ""

msgid "As for the <command>ar</command> program, it allows handling files of the same name: <command>ar t <replaceable>archive</replaceable></command> displays the list of files contained in such an archive, <command>ar x <replaceable>archive</replaceable></command> extracts the files from the archive into the current working directory, <command>ar d <replaceable>archive</replaceable> <replaceable>file</replaceable></command> deletes a file from the archive, etc. Its man page (<citerefentry><refentrytitle>ar</refentrytitle><manvolnum>1</manvolnum></citerefentry>) documents all its other features. <command>ar</command> is a very rudimentary tool that a Unix administrator would only use on rare occasions, but admins routinely use <command>tar</command>, a more evolved archive and file management program. This is why it is easy to restore <command>dpkg</command> in the event of an erroneous deletion. You would only have to download the Debian package and extract the content from the <filename>data.tar.xz</filename> archive in the system's root (<filename>/</filename>):"
msgstr ""

msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>ar x dpkg_1.19.7_amd64.deb</userinput>\n"
"<computeroutput># </computeroutput><userinput>tar -C / -p -xJf data.tar.xz</userinput>"
msgstr ""

msgid "<emphasis>BACK TO BASICS</emphasis> Man page notation"
msgstr ""

msgid "It can be confusing for beginners to find references to “<citerefentry><refentrytitle>ar</refentrytitle><manvolnum>1</manvolnum></citerefentry>” in the literature. This is generally a convenient means of referring to the man page entitled <literal>ar</literal> in section 1."
msgstr ""

msgid "Sometimes this notation is also used to remove ambiguities, for example to distinguish between the <command>printf</command> command that can also be indicated by <citerefentry><refentrytitle>printf</refentrytitle><manvolnum>1</manvolnum></citerefentry> and the <function>printf</function> function in the C programming language, which can also be referred to as <citerefentry><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>."
msgstr ""

msgid "<xref linkend=\"solving-problems\" /> discusses manual pages in further detail (see <xref linkend=\"sect.manual-pages\" />)."
msgstr ""

msgid "Have a look at the content of a <filename>.deb</filename> file:"
msgstr ""

msgid ""
"<computeroutput>$ </computeroutput><userinput>ar t dpkg_1.19.7_amd64.deb</userinput>\n"
"<computeroutput>debian-binary\n"
"control.tar.gz\n"
"data.tar.xz\n"
"$ </computeroutput><userinput>ar x dpkg_1.19.7_amd64.deb</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>ls</userinput>\n"
"<computeroutput>control.tar.gz  data.tar.xz  debian-binary  dpkg_1.19.7_amd64.deb\n"
"$ </computeroutput><userinput>tar tJf data.tar.xz | head -n 16</userinput>\n"
"<computeroutput>./\n"
"./\n"
"./etc/\n"
"./etc/alternatives/\n"
"./etc/alternatives/README\n"
"./etc/cron.daily/\n"
"./etc/cron.daily/dpkg\n"
"./etc/dpkg/\n"
"./etc/dpkg/dpkg.cfg\n"
"./etc/dpkg/dpkg.cfg.d/\n"
"./etc/logrotate.d/\n"
"./etc/logrotate.d/alternatives\n"
"./etc/logrotate.d/dpkg\n"
"./sbin/\n"
"./sbin/start-stop-daemon\n"
"./usr/\n"
"./usr/bin/\n"
"$ </computeroutput><userinput>tar tJf control.tar.xz</userinput>\n"
"<computeroutput>./\n"
"./conffiles\n"
"./control\n"
"./md5sums\n"
"./postinst\n"
"./postrm\n"
"$ </computeroutput><userinput>cat debian-binary</userinput>\n"
"<computeroutput>2.0</computeroutput>"
msgstr ""

msgid "As you can see, the <command>ar</command> archive of a Debian package is comprised of three files:"
msgstr ""

msgid "<filename>debian-binary</filename>"
msgstr ""

msgid "This is a text file which simply indicates the version of the <filename>.deb</filename> file package format version. In Debian <emphasis role=\"distribution\">Buster</emphasis> it is still version 2.0."
msgstr ""

msgid "<filename>control.tar.xz</filename>"
msgstr ""

msgid "This archive file contains all of the available meta-information, like the name and version of the package as well as some scripts to run before, during or after (un-)installation of it. Some of the meta-information allows package management tools to determine if it is possible to install or uninstall it, for example according to the list of packages already on the machine, and if files shipped have been modified locally."
msgstr ""

msgid "<filename>data.tar.xz</filename>"
msgstr ""

msgid "<filename>data.tar.bz2</filename>"
msgstr ""

msgid "<filename>data.tar.gz</filename>"
msgstr ""

msgid "This archive contains all of the files to be extracted from the package; this is where the executable files, libraries, documentation, etc., are all stored. Packages may use different compression formats, in which case the file will be named differently for <command>xz</command>, <command>bzip2</command> or <command>gzip</command>."
msgstr ""

msgid "Package Meta-Information"
msgstr ""

msgid "<primary>package meta-information</primary><seealso>meta-information</seealso>"
msgstr ""

msgid "<primary>package</primary><secondary>meta-information</secondary>"
msgstr ""

msgid "<primary>package</primary><secondary>maintainer scripts</secondary>"
msgstr ""

msgid "<primary>package</primary><secondary>checksums</secondary>"
msgstr ""

msgid "The Debian package is not only an archive of files intended for installation. It is part of a larger whole and describes its relationship with other Debian packages (requisites, dependencies, conflicts, suggestions). It also provides scripts that enable the execution of commands at different stages in the package's lifecycle (installation, upgrade, removal). These data are used by the package management tools but are not part of the packaged software; they are, within the package, what is called its “meta-information” (information about other information)."
msgstr ""

msgid "Description: the <filename>control</filename> File"
msgstr ""

msgid "<primary>package meta-information</primary>"
msgstr ""

msgid "<primary>package</primary><secondary><filename>control</filename></secondary>"
msgstr ""

msgid "<primary><filename>control</filename></primary><seealso>package meta-information</seealso>"
msgstr ""

msgid "This file uses a structure similar to email headers (as defined by <link linkend=\"sidebar.rfc\">RFC 2822</link>) and is fully described in the Debian Policy and the manual pages <citerefentry><refentrytitle>deb-control</refentrytitle><manvolnum>5</manvolnum></citerefentry> and <citerefentry><refentrytitle>deb822</refentrytitle><manvolnum>5</manvolnum></citerefentry>. <ulink type=\"block\" url=\"https://www.debian.org/doc/debian-policy/ch-controlfields.html\" />"
msgstr ""

msgid "For example, for <emphasis role=\"pkg\">apt</emphasis>, the <filename>control</filename> file looks like the following:"
msgstr ""

msgid ""
"\n"
"<computeroutput>$ </computeroutput><userinput>apt-cache show apt</userinput>\n"
"<computeroutput><![CDATA[\n"
"Package: apt\n"
"Version: 1.8.2\n"
"Installed-Size: 4064\n"
"Maintainer: APT Development Team <deity@lists.debian.org>\n"
"Architecture: amd64\n"
"Replaces: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~)\n"
"Provides: apt-transport-https (= 1.8.2)\n"
"Depends: adduser, gpgv | gpgv2 | gpgv1, debian-archive-keyring, libapt-pkg5.0 (>= 1.7.0~alpha3~), libc6 (>= 2.15), libgcc1 (>= 1:3.0), libgnutls30 (>= 3.6.6), libseccomp2 (>= 1.0.1), libstdc++6 (>= 5.2)\n"
"Recommends: ca-certificates\n"
"Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), gnupg | gnupg2 | gnupg1, powermgmt-base\n"
"Breaks: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~), aptitude (<< 0.8.10)\n"
"Description-en: commandline package manager\n"
" This package provides commandline tools for searching and\n"
" managing as well as querying information about packages\n"
" as a low-level access to all features of the libapt-pkg library.\n"
" .\n"
" These include:\n"
"  * apt-get for retrieval of packages and information about them\n"
"    from authenticated sources and for installation, upgrade and\n"
"    removal of packages together with their dependencies\n"
"  * apt-cache for querying available information about installed\n"
"    as well as installable packages\n"
"  * apt-cdrom to use removable media as a source for packages\n"
"  * apt-config as an interface to the configuration settings\n"
"  * apt-key as an interface to manage authentication keys\n"
"Description-md5: 9fb97a88cb7383934ef963352b53b4a7\n"
"Tag: admin::package-management, devel::lang:ruby, hardware::storage,\n"
" hardware::storage:cd, implemented-in::c++, implemented-in::perl,\n"
" implemented-in::ruby, interface::commandline, network::client,\n"
" protocol::ftp, protocol::http, protocol::ipv6, role::program,\n"
" scope::application, scope::utility, suite::debian, use::downloading,\n"
" use::organizing, use::playing, use::searching, works-with-format::html,\n"
" works-with::audio, works-with::software:package, works-with::text\n"
"Section: admin\n"
"Priority: required\n"
"Filename: pool/main/a/apt/apt_1.8.2_amd64.deb\n"
"Size: 1418108\n"
"MD5sum: 0e80dedab6ec1e66a8f6c15f1925d2d3\n"
"SHA256: 80e9600822c4943106593ca5b0ec75d5aafa74c6130ba1071b013c42c507475e\n"
"]]></computeroutput>"
msgstr ""

msgid "<emphasis>BACK TO BASICS</emphasis> RFC — Internet standards"
msgstr ""

msgid "<primary>RFC</primary>"
msgstr ""

msgid "<primary>Request For Comments</primary><seealso>RFC</seealso>"
msgstr ""

msgid "<acronym>RFC</acronym> is the abbreviation of “Request For Comments”. An RFC is generally a technical document that describes what will become an Internet standard. Before becoming standardized and frozen, these standards are submitted for public review (hence their name). The <acronym>IETF</acronym> (Internet Engineering Task Force) decides on the evolution of the status of these documents (proposed standard, draft standard, or standard)."
msgstr ""

msgid "RFC 2026 defines the process for standardization of Internet protocols. <ulink type=\"block\" url=\"http://www.faqs.org/rfcs/rfc2026.html\" />"
msgstr ""

msgid "Dependencies: the <literal>Depends</literal> Field"
msgstr ""

msgid "<primary>dependency</primary>"
msgstr ""

msgid "<primary><literal>Depends</literal>, header field</primary><seealso>APT</seealso>"
msgstr ""

msgid "<primary><filename>control</filename></primary><secondary>Depends</secondary>"
msgstr ""

msgid "<primary>package</primary><secondary>dependency</secondary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Depends</literal></tertiary>"
msgstr ""

msgid "The dependencies are defined in the <literal>Depends</literal> field in the package header. It is a list of conditions to be met for the package to work correctly. This information is used by tools such as <command>apt</command> in order to install the required libraries, tools, drivers, etc. in appropriate versions fulfilling the dependencies of the package to be installed. For each dependency, it is possible to restrict the range of versions that meet that condition. In other words, it is possible to express the fact that we need the package <emphasis role=\"pkg\">libc6</emphasis> in a version equal to or greater than “2.15” (written “<command>libc6 (&gt;= 2.15)</command>”). Version comparison operators are as follows:"
msgstr ""

msgid "<command>&lt;&lt;</command>: less than;"
msgstr ""

msgid "<command>&lt;=</command>: less than or equal to;"
msgstr ""

msgid "<command>=</command>: equal to (note that “<literal>2.6.1</literal>” is not equal to “<literal>2.6.1-1</literal>”);"
msgstr ""

msgid "<command>&gt;=</command>: greater than or equal to;"
msgstr ""

msgid "<command>&gt;&gt;</command>: greater than."
msgstr ""

msgid "In a list of conditions to be met, the comma serves as a separator. It must be interpreted as a logical “and”. In conditions, the vertical bar (“|”) expresses a logical “or” (it is an inclusive “or”, not an exclusive “either/or”). Carrying greater priority than “and”, it can be used as many times as necessary. Thus, the dependency “(A or B) and C” is written <command>A | B, C</command>. In contrast, the expression “A or (B and C)” should be written as “(A or B) and (A or C)”, since the <literal>Depends</literal> field does not tolerate parentheses that change the order of priorities between the logical operators “or” and “and”. It would thus be written <command>A | B, A | C</command>. <ulink type=\"block\" url=\"https://www.debian.org/doc/debian-policy/#document-ch-relationships\" />"
msgstr ""

msgid "<primary>meta-package</primary>"
msgstr ""

msgid "The dependencies system is a good mechanism for guaranteeing the operation of a program, but it has another use with “meta-packages”. These are empty packages that only describe dependencies. They facilitate the installation of a consistent group of programs preselected by the meta-package maintainer; as such, <command>apt install <replaceable>meta-package</replaceable></command> will automatically install all of these programs using the meta-package's dependencies. The <emphasis role=\"pkg\">gnome</emphasis>, <emphasis role=\"pkg\">kde-full</emphasis> and <emphasis role=\"pkg\">linux-image-amd64</emphasis> packages are examples of meta-packages."
msgstr ""

msgid "<emphasis>DEBIAN POLICY</emphasis> <literal>Pre-Depends</literal>, a more demanding <literal>Depends</literal>"
msgstr ""

msgid "<primary><literal>Pre-Depends</literal>, header field</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>pre-dependency</secondary>"
msgstr ""

msgid "<primary>pre-dependency</primary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Pre-Depends</literal></tertiary>"
msgstr ""

msgid "“Pre-dependencies”, which are listed in the “<literal>Pre-Depends</literal>” field in the package headers, complete the normal dependencies; their syntax is identical. A normal dependency indicates that the package in question must be unpacked and configured before configuration of the package declaring the dependency. A pre-dependency stipulates that the package in question must be unpacked and configured before execution of the pre-installation script of the package declaring the pre-dependency, that is before its installation."
msgstr ""

msgid "A pre-dependency is very demanding for <command>apt</command>, because it adds a strict constraint on the ordering of the packages to install. As such, pre-dependencies are discouraged unless absolutely necessary. It is even recommended to consult other developers on <email>debian-devel@lists.debian.org</email> before adding a pre-dependency. It is generally possible to find another solution as a work-around."
msgstr ""

msgid "<emphasis>DEBIAN POLICY</emphasis> <literal>Recommends</literal>, <literal>Suggests</literal>, and <literal>Enhances</literal> fields"
msgstr ""

msgid "<primary><literal>Recommends</literal>, header field</primary>"
msgstr ""

msgid "<primary><literal>Suggests</literal>, header field</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>recommendations</secondary>"
msgstr ""

msgid "<primary>package</primary><secondary>suggestions</secondary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Recommends</literal></tertiary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Suggests</literal></tertiary>"
msgstr ""

msgid "The <literal>Recommends</literal> and <literal>Suggests</literal> fields describe dependencies that are not compulsory. The “recommended” dependencies, the most important, considerably improve the functionality offered by the package but are not indispensable to its operation. The “suggested” dependencies, of secondary importance, indicate that certain packages may complement and increase their respective utility, but it is perfectly reasonable to install one without the others."
msgstr ""

msgid "<primary>APT</primary><secondary><literal>APT::Install-Recommends</literal></secondary>"
msgstr ""

msgid "<primary>APT</primary><secondary><literal>APT::Install-Suggests</literal></secondary>"
msgstr ""

msgid "<primary>APT</primary><secondary><literal>Aptitude::Recommends-Important</literal></secondary>"
msgstr ""

msgid "You should always install the “recommended” packages, unless you know exactly why you do not need them. This is now also the default for APT unless configured otherwise. Conversely, it is not necessary to install “suggested” packages unless you know why you need them. The behavior of <command>apt</command> can be controlled by using the <literal>APT::Install-Recommends</literal> and <literal>APT::Install-Suggests</literal> configuration options or the corresponding command line options <literal>--[no-]install-recommends</literal> and <literal>--[no-]install-suggests</literal>."
msgstr ""

msgid "<primary><literal>Enhances</literal>, header field</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>enhancements</secondary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Enhances</literal></tertiary>"
msgstr ""

msgid "The <literal>Enhances</literal> field also describes a suggestion, but in a different context. It is indeed located in the suggested package, and not in the package that benefits from the suggestion. Its interest lies in that it is possible to add a suggestion without having to modify the package that is concerned. Thus, all add-ons, plug-ins, and other extensions of a program can then appear in the list of suggestions related to the software. Although it has existed for several years, this last field is still largely ignored by programs such as <command>apt</command> or <command>synaptic</command>. Its purpose is for a suggestion made by the <literal>Enhances</literal> field to appear to the user in addition to the traditional suggestions — found in the <literal>Suggests</literal> field."
msgstr ""

msgid "Conflicts: the <literal>Conflicts</literal> field"
msgstr ""

msgid "<primary>conflicts</primary>"
msgstr ""

msgid "<primary><literal>Conflicts</literal>, header field</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>conflict</secondary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Conflicts</literal></tertiary>"
msgstr ""

msgid "The <literal>Conflicts</literal> field indicates when a package cannot be installed simultaneously with another. The most common reasons for this are that both packages include a file of the same name and path, or provide the same service on the same TCP port, or would hinder each other's operation."
msgstr ""

msgid "<command>dpkg</command> will refuse to install a package if it triggers a conflict with an already installed package, except if the new package specifies that it will “replace” the installed package, in which case <command>dpkg</command> will choose to replace the old package with the new one. <command>apt</command> always follows your instructions: if you choose to install a new package, it will automatically offer to uninstall the package that poses a problem."
msgstr ""

msgid "Incompatibilities: the <literal>Breaks</literal> Field"
msgstr ""

msgid "<primary>incompatibilities</primary>"
msgstr ""

msgid "<primary><literal>Breaks</literal>, header field</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>incompatibility</secondary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Breaks</literal></tertiary>"
msgstr ""

msgid "The <literal>Breaks</literal> field has an effect similar to that of the <literal>Conflicts</literal> field, but with a special meaning. It signals that the installation of a package will “break” another package (or particular versions of it). In general, this incompatibility between two packages is transitory, and the <literal>Breaks</literal> relationship specifically refers to the incompatible versions."
msgstr ""

msgid "<command>dpkg</command> will refuse to install a package that breaks an already installed package, and <command>apt</command> will try to resolve the problem by updating the package that would be broken to a newer version (which is assumed to be fixed and, thus, compatible again)."
msgstr ""

msgid "This type of situation may occur in the case of updates without backwards compatibility: this is the case if the new version no longer functions with the older version, and causes a malfunction in another program without making special provisions. The <literal>Breaks</literal> field prevents the user from running into these problems."
msgstr ""

msgid "Provided Items: the <literal>Provides</literal> Field"
msgstr ""

msgid "<primary><literal>Provides</literal>, header field</primary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Provides</literal></tertiary>"
msgstr ""

msgid "This field introduces the very interesting concept of a “virtual package”. It has many roles, but two are of particular importance. The first role consists in using a virtual package to associate a generic service with it (the package “provides” the service). The second indicates that a package completely replaces another, and that for this purpose it can also satisfy the dependencies that the other would satisfy. It is thus possible to create a substitution package without having to use the same package name."
msgstr ""

msgid "<emphasis>VOCABULARY</emphasis> Meta-package and virtual package"
msgstr ""

msgid "<primary>package</primary><secondary>virtual package</secondary>"
msgstr ""

msgid "<primary>virtual package</primary>"
msgstr ""

msgid "It is essential to clearly distinguish meta-packages from virtual packages. The former are real packages (including real <filename>.deb</filename> files), whose only purpose is to express dependencies."
msgstr ""

msgid "Virtual packages, however, do not exist physically; they are only a means of identifying real packages based on common, logical criteria (service provided, compatibility with a standard program or a pre-existing package, etc.)."
msgstr ""

msgid "Providing a “Service”"
msgstr ""

msgid "Let us discuss the first case in greater detail with an example: all mail servers, such as <emphasis role=\"pkg\">postfix</emphasis> or <emphasis role=\"pkg\">sendmail</emphasis> are said to “provide” the <emphasis role=\"pkg\">mail-transport-agent</emphasis> virtual package. Thus, any package that needs this service to be functional (e.g. a mailing list manager, such as <emphasis role=\"pkg\">smartlist</emphasis> or <emphasis role=\"pkg\">sympa</emphasis>) simply states in its dependencies that it requires a <emphasis role=\"pkg\">mail-transport-agent</emphasis> instead of specifying a large yet incomplete list of possible solutions (e.g. <command>postfix | sendmail | exim4 | …</command>). Furthermore, it is useless to install two mail servers on the same machine, which is why each of these packages declares a conflict with the <emphasis role=\"pkg\">mail-transport-agent</emphasis> virtual package. A conflict between a package and itself is ignored by the system, but this technique will prohibit the installation of two mail servers side by side."
msgstr ""

msgid "<emphasis>DEBIAN POLICY</emphasis> List of virtual packages"
msgstr ""

msgid "For virtual packages to be useful, everyone must agree on their name. This is why they are standardized in the Debian Policy. The list includes among others <emphasis role=\"pkg\">mail-transport-agent</emphasis> for mail servers, <emphasis role=\"pkg\">c-compiler</emphasis> for C programming language compilers, <emphasis role=\"pkg\">www-browser</emphasis> for web browsers, <emphasis role=\"pkg\">httpd</emphasis> for web servers, <emphasis role=\"pkg\">ftp-server</emphasis> for FTP servers, <emphasis role=\"pkg\">x-terminal-emulator</emphasis> for terminal emulators in graphical mode (<command>xterm</command>), and <emphasis role=\"pkg\">x-window-manager</emphasis> for window managers."
msgstr ""

msgid "The full list can be found on the Web. <ulink type=\"block\" url=\"http://www.debian.org/doc/packaging-manuals/virtual-package-names-list.txt\" />"
msgstr ""

msgid "Interchangeability with Another Package"
msgstr ""

msgid "The <literal>Provides</literal> field is also interesting when the content of a package is included in a larger package. For example, the <emphasis role=\"pkg\">libdigest-md5-perl</emphasis> Perl module was an optional module in Perl 5.6, and has been integrated as standard in Perl 5.8 (and later versions, such as 5.28 present in <emphasis role=\"distribution\">Buster</emphasis>). As such, the package <emphasis role=\"pkg\">perl</emphasis> has since version 5.8 declared <literal>Provides: libdigest-md5-perl</literal> so that the dependencies on this package are met if the user has Perl 5.8 (or newer). The <emphasis role=\"pkg\">libdigest-md5-perl</emphasis> package itself has eventually been deleted, since it no longer had any purpose when old Perl versions were removed."
msgstr ""

msgid "Use of a <literal>Provides</literal> field in order to not break dependencies"
msgstr ""

msgid "This feature is very useful, since it is never possible to anticipate the vagaries of development, and it is necessary to be able to adjust to renaming, and other automatic replacement, of obsolete software."
msgstr ""

msgid "<emphasis>BACK TO BASICS</emphasis> Perl, a programming language"
msgstr ""

msgid "<primary>Perl</primary>"
msgstr ""

msgid "<primary>CPAN</primary><seealso>Comprehensive Perl Archive Network</seealso>"
msgstr ""

msgid "<primary>Comprehensive Perl Archive Network</primary>"
msgstr ""

msgid "Perl (Practical Extraction and Report Language) is a very popular programming language. It has many ready-to-use modules that cover a vast spectrum of applications, and that are distributed by the <acronym>CPAN</acronym> (Comprehensive Perl Archive Network) servers, an exhaustive network of Perl packages. <ulink type=\"block\" url=\"https://www.perl.org/\" /> <ulink type=\"block\" url=\"https://www.cpan.org/\" />"
msgstr ""

msgid "Since it is an interpreted language, a program written in Perl does not require compilation prior to execution. This is why they are called “Perl scripts”."
msgstr ""

msgid "Past Limitations"
msgstr ""

msgid "Virtual packages used to suffer from some limitations, the most significant of which was the absence of a version number. To return to the previous example, a dependency such as <literal>Depends: libdigest-md5-perl (&gt;= 1.6)</literal>, despite the presence of Perl 5.10, would never be considered as satisfied by the packaging system — while in fact it most likely is satisfied. Unaware of this, the package system chose the least risky option, assuming that the versions do not match."
msgstr ""

msgid "This limitation has been lifted in <emphasis role=\"pkg\">dpkg</emphasis> 1.17.11, and is no longer relevant. Packages can assign a version to the virtual packages they provide with a dependency such as <literal>Provides: libdigest-md5-perl (= 1.8)</literal>."
msgstr ""

msgid "Replacing Files: The <literal>Replaces</literal> Field"
msgstr ""

msgid "<primary>replacement</primary>"
msgstr ""

msgid "<primary><literal>Replaces</literal>, header field</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>replacement</secondary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Replaces</literal></tertiary>"
msgstr ""

msgid "The <literal>Replaces</literal> field indicates that the package contains files that are also present in another package, but that the package is legitimately entitled to replace them. Without this specification, <command>dpkg</command> fails, stating that it can not overwrite the files of another package (technically, it is possible to force it to do so with the <literal>--force-overwrite</literal> option, but that is not considered standard operation). This allows identification of potential problems and requires the maintainer to study the matter prior to choosing whether to add such a field."
msgstr ""

msgid "The use of this field is justified when package names change or when a package is included in another. This also happens when the maintainer decides to distribute files differently among various binary packages produced from the same source package: a replaced file no longer belongs to the old package, but only to the new one."
msgstr ""

msgid "If all of the files in an installed package have been replaced, the package is considered to be removed. Finally, this field also encourages <command>dpkg</command> to remove the replaced package where there is a conflict."
msgstr ""

msgid "<emphasis>GOING FURTHER</emphasis> The <literal>Tag</literal> field"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>control</filename></secondary><tertiary><literal>Tag</literal></tertiary>"
msgstr ""

msgid "<primary></primary>"
msgstr ""

msgid "In the <emphasis role=\"pkg\">apt</emphasis> example above, we can see the presence of a field that we have not yet described, the <literal>Tag</literal> field. This field does not describe a relationship between packages, but is simply a way of categorizing a package in a thematic taxonomy. This classification of packages according to several criteria (type of interface, programming language, domain of application, etc.) has been available for a long time. Despite this, not all packages have accurate tags and it is not yet integrated in all Debian tools; <command>aptitude</command> displays these tags, and allows them to be used as search criteria. For those who are repelled by <command>aptitude</command>'s search criteria, the following website allows navigation of the tag database: <ulink type=\"block\" url=\"https://wiki.debian.org/Debtags\" />"
msgstr ""

msgid "Configuration Scripts"
msgstr ""

msgid "<primary><filename>postinst</filename></primary>"
msgstr ""

msgid "<primary><filename>preinst</filename></primary>"
msgstr ""

msgid "<primary><filename>postrm</filename></primary>"
msgstr ""

msgid "<primary><filename>prerm</filename></primary>"
msgstr ""

msgid "<primary><filename>control.tar.gz</filename></primary>"
msgstr ""

msgid "In addition to the <filename>control</filename> file, the <filename>control.tar.gz</filename> archive for each Debian package may contain a number of scripts, called by <command>dpkg</command> at different stages in the processing of a package. The Debian Policy describes the possible cases <ulink url=\"https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html\">in detail</ulink>, specifying the scripts called and the arguments that they receive. These sequences may be complicated, since if one of the scripts fails, <command>dpkg</command> will try to return to a satisfactory state by canceling the installation or removal in progress (insofar as it is possible)."
msgstr ""

msgid "<emphasis>GOING FURTHER</emphasis> <command>dpkg</command>'s database"
msgstr ""

msgid "<primary><filename>/var/lib/dpkg/</filename></primary>"
msgstr ""

msgid "<primary>dpkg</primary><secondary>database</secondary>"
msgstr ""

msgid "All of the configuration scripts for installed packages are stored in the <filename>/var/lib/dpkg/info/</filename> directory, in the form of a file prefixed with the package's name. This directory also includes a file with the <filename>.list</filename> extension for each package, containing the list of files that belong to that package."
msgstr ""

msgid "The <filename>/var/lib/dpkg/status</filename> file contains a series of data blocks (in the format of the famous mail headers, RFC 2822) describing the status of each package. The information from the <filename>control</filename> file of the installed packages is also replicated there."
msgstr ""

msgid "In general, the <filename>preinst</filename> script is executed prior to installation of the package, while <filename>postinst</filename> follows it. Likewise, <filename>prerm</filename> is invoked before removal of a package and <filename>postrm</filename> afterwards. An update of a package is equivalent to removal of the previous version and installation of the new one. It is not possible to describe in detail all the possible scenarios here, but we will discuss the most common two: an installation/update and a removal."
msgstr ""

msgid "<emphasis>CAUTION</emphasis> Symbolic names of the scripts"
msgstr ""

msgid "The sequences described in this section call configuration scripts by specific names, such as <command>old-prerm</command> or <command>new-postinst</command>. They are, respectively, the <command>prerm</command> script contained in the old version of the package (installed before the update) and the <command>postinst</command> script contained in the new version (installed by the update)."
msgstr ""

msgid "<emphasis>TIP</emphasis> State diagrams"
msgstr ""

msgid "Manoj Srivastava and Margarita Manterola made the following diagrams explaining how the configuration scripts are called by <command>dpkg</command>. <ulink type=\"block\" url=\"https://people.debian.org/~srivasta/MaintainerScripts.html\" /> <ulink type=\"block\" url=\"https://www.debian.org/doc/debian-policy/ap-flowcharts.html\" />"
msgstr ""

msgid "Installation and Upgrade"
msgstr ""

msgid "<primary><command>dpkg</command></primary><secondary>internal operation</secondary>"
msgstr ""

msgid "<primary>package</primary><secondary>installation</secondary>"
msgstr ""

msgid "Here is what happens during an installation (or an update):"
msgstr ""

msgid "For an update, <command>dpkg</command> calls the <command>old-prerm upgrade <replaceable>new-version</replaceable></command>."
msgstr ""

msgid "Still for an update, <command>dpkg</command> then executes <command>new-preinst upgrade <replaceable>old-version</replaceable></command>; for a first installation, it executes <command>new-preinst install</command>. It may add the old version in the last parameter, if the package has already been installed and removed since (but not purged, the configuration files having been retained)."
msgstr ""

msgid "The new package files are then unpacked. If a file already exists, it is replaced, but a backup copy is temporarily made."
msgstr ""

msgid "For an update, <command>dpkg</command> executes <command>old-postrm upgrade <replaceable>new-version</replaceable></command>."
msgstr ""

msgid "<command>dpkg</command> updates all of the internal data (file list, configuration scripts, etc.) and removes the backups of the replaced files. This is the point of no return: <command>dpkg</command> no longer has access to all of the elements necessary to return to the previous state."
msgstr ""

msgid "<command>dpkg</command> will update the configuration files, asking the user to decide if it is unable to automatically manage this task. The details of this procedure are discussed in <xref linkend=\"sect.conffiles\" />."
msgstr ""

msgid "Finally, <command>dpkg</command> configures the package by executing <command>new-postinst configure <replaceable>last-version-configured</replaceable></command>."
msgstr ""

msgid "Package Removal"
msgstr ""

msgid "<primary>package</primary><secondary>removal</secondary>"
msgstr ""

msgid "Here is what happens during a package removal:"
msgstr ""

msgid "<command>dpkg</command> calls <command>prerm remove</command>."
msgstr ""

msgid "<command>dpkg</command> removes all of the package's files, with the exception of the configuration files and configuration scripts."
msgstr ""

msgid "<command>dpkg</command> executes <command>postrm remove</command>. All of the configuration scripts, except <filename>postrm</filename>, are removed. If the user has not used the “purge” option, the process stops here."
msgstr ""

msgid "For a complete purge of the package (command issued with <command>dpkg --purge</command> or <command>dpkg -P</command>), the configuration files are also deleted, as well as a certain number of copies (<filename>*.dpkg-tmp</filename>, <filename>*.dpkg-old</filename>, <filename>*.dpkg-new</filename>) and temporary files; <command>dpkg</command> then executes <command>postrm purge</command>."
msgstr ""

msgid "<emphasis>VOCABULARY</emphasis> Purge, a complete removal"
msgstr ""

msgid "<primary>purge of a package</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>purge</secondary>"
msgstr ""

msgid "When a Debian package is removed, the configuration files are retained in order to facilitate possible re-installation. Likewise, the data generated by a daemon (such as the content of an LDAP server directory, or the content of a database for an SQL server) are usually retained."
msgstr ""

msgid "To remove all data associated with a package, it is necessary to “purge” the package with the command, <command>dpkg -P <replaceable>package</replaceable></command>, <command>apt-get remove --purge <replaceable>package</replaceable></command> or <command>aptitude purge <replaceable>package</replaceable></command>."
msgstr ""

msgid "Given the definitive nature of such data removals, a purge should not be taken lightly."
msgstr ""

msgid "<primary><filename>config</filename>, <command>debconf</command> script</primary>"
msgstr ""

msgid "The four scripts detailed above are complemented by a <filename>config</filename> script, provided by packages using <command>debconf</command> to acquire information from the user for configuration. During installation, this script defines in detail the questions asked by <command>debconf</command>. The responses are recorded in the <command>debconf</command> database for future reference. The script is generally executed by <command>apt</command> prior to installing packages one by one in order to group all the questions and ask them all to the user at the beginning of the process. The pre- and post-installation scripts can then use this information to operate according to the user's wishes."
msgstr ""

msgid "<emphasis>TOOL</emphasis> <command>debconf</command>"
msgstr ""

msgid "<primary><command>debconf</command></primary>"
msgstr ""

msgid "<command>debconf</command> was created to resolve a recurring problem in Debian. All Debian packages unable to function without a minimum of configuration used to ask questions with calls to the <command>echo</command> and <command>read</command> commands in <filename>postinst</filename> shell scripts (and other similar scripts). But this also means that during a large installation or update the user must stay with their computer to respond to various questions that may arise at any time. These manual interactions have now been almost entirely dispensed with, thanks to the <command>debconf</command> tool."
msgstr ""

msgid "<command>debconf</command> has many interesting features: it requires the developer to specify user interaction; it allows localization of all the strings displayed to users (all translations are stored in the <filename>templates</filename> file describing the interactions); it has different frontends to display the questions to the user (text mode, graphical mode, non-interactive); and it allows creation of a central database of responses to share the same configuration with several computers... but the most important is that it is now possible to present all of the questions in a row to the user, prior to starting a long installation or update process. The user can go about their business while the system handles the installation on its own, without having to stay there staring at the screen waiting for questions."
msgstr ""

msgid "Checksums, List of Configuration Files"
msgstr ""

msgid "<primary><filename>md5sums</filename></primary>"
msgstr ""

msgid "<primary><filename>conffiles</filename></primary>"
msgstr ""

msgid "<primary>checksums</primary>"
msgstr ""

msgid "<primary>files</primary><secondary>configuration files</secondary>"
msgstr ""

msgid "<primary>configuration</primary><secondary>files</secondary>"
msgstr ""

msgid "In addition to the maintainer scripts and control data already mentioned in the previous sections, the <filename>control.tar.gz</filename> archive of a Debian package may contain other interesting files. The first, <filename>md5sums</filename>, contains the MD5 checksums for all of the package's files. Its main advantage is that it allows <command>dpkg --verify</command> (which we will study in <xref linkend=\"sect.dpkg-verify\" />) and <command>debsums</command> (from the package of the same name; see <xref linkend=\"sect.debsums\" />) to check if these files have been modified since their installation. Note that when this file doesn't exist, <command>dpkg</command> will generate it dynamically at installation time (and store it in the dpkg database just like other control files)."
msgstr ""

msgid "<filename>conffiles</filename> lists package files that must be handled as configuration files (see also <citerefentry><refentrytitle>deb-conffiles</refentrytitle><manvolnum>5</manvolnum></citerefentry>). Configuration files can be modified by the administrator, and <command>dpkg</command> will try to preserve those changes during a package update."
msgstr ""

msgid "In effect, in this situation, <command>dpkg</command> behaves as intelligently as possible: if the standard configuration file has not changed between the two versions, it does nothing. If, however, the file has changed, it will try to update this file. Two cases are possible: either the administrator has not touched this configuration file, in which case <command>dpkg</command> automatically installs the new version; or the file has been modified, in which case <command>dpkg</command> asks the administrator which version they wish to use (the old one with modifications, or the new one provided with the package). To assist in making this decision, <command>dpkg</command> offers to display a “<command>diff</command>” that shows the difference between the two versions. If the user chooses to retain the old version, the new one will be stored in the same location in a file with the <filename>.dpkg-dist</filename> suffix. If the user chooses the new version, the old one is retained in a file with the <filename>.dpkg-old</filename> suffix. Another available action consists of momentarily interrupting <command>dpkg</command> to edit the file and attempt to re-instate the relevant modifications (previously identified with <command>diff</command>)."
msgstr ""

msgid "<emphasis>GOING FURTHER</emphasis> Avoiding the configuration file questions"
msgstr ""

msgid "<primary><command>dpkg</command></primary><secondary><command>--force-confnew</command></secondary>"
msgstr ""

msgid "<primary><command>dpkg</command></primary><secondary><command>--force-confold</command></secondary>"
msgstr ""

msgid "<primary><command>dpkg</command></primary><secondary><command>--force-confdef</command></secondary>"
msgstr ""

msgid "<command>dpkg</command> handles configuration file updates, but, while doing so, regularly interrupts its work to ask for input from the administrator. This makes it less than enjoyable for those who wish to run updates in a non-interactive manner. This is why this program offers options that allow the system to respond automatically according to the same logic: <command>--force-confold</command> retains the old version of the file; <command>--force-confnew</command> will use the new version of the file (these choices are respected, even if the file has not been changed by the administrator, which only rarely has the desired effect). Adding the <command>--force-confdef</command> option tells <command>dpkg</command> to decide by itself when possible (in other words, when the original configuration file has not been touched), and only uses <command>--force-confnew</command> or <command>--force-confold</command> for other cases."
msgstr ""

msgid "<primary>APT</primary><secondary><literal>Dpkg::Options</literal></secondary>"
msgstr ""

msgid "These options apply to <command>dpkg</command> and are explained in detail in <citerefentry><refentrytitle>dpkg</refentrytitle><manvolnum>1</manvolnum></citerefentry> or <command>dpkg --force-help</command>, but most of the time the administrator will work directly with the <command>aptitude</command> or <command>apt</command> programs. It is, thus, necessary to know the syntax used to indicate the options to pass to the <command>dpkg</command> command (their command line interfaces are very similar)."
msgstr ""

msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>apt -o DPkg::options::=\"--force-confdef\" -o DPkg::options::=\"--force-confold\" full-upgrade</userinput>"
msgstr ""

msgid "These options can be stored directly in <command>apt</command>'s configuration. To do so, simply write the following line in the <filename>/etc/apt/apt.conf.d/local</filename> file:"
msgstr ""

msgid ""
"\n"
"DPkg::options { \"--force-confdef\"; \"--force-confold\"; }"
msgstr ""

msgid "Including this option in the configuration file means that it will also be used in a graphical interface such as <command>aptitude</command>."
msgstr ""

msgid "<emphasis>GOING FURTHER</emphasis> Force dpkg to ask configuration file questions"
msgstr ""

msgid "<primary><command>dpkg</command></primary><secondary><command>--force-confask</command></secondary>"
msgstr ""

msgid "The <command>--force-confask</command> option requires <command>dpkg</command> to display the questions about the configuration files, even in cases where they would not normally be necessary. Thus, when reinstalling a package with this option, <command>dpkg</command> will ask the questions again for all of the configuration files modified or deleted by the administrator. This is very convenient, especially for reinstalling the original configuration file if it has been deleted and no other copy is available: a normal re-installation won't work, because <command>dpkg</command> considers removal as a form of legitimate modification, and, thus, doesn't install the desired configuration file."
msgstr ""

msgid "Structure of a Source Package"
msgstr ""

msgid "<primary>package</primary><secondary>source package</secondary>"
msgstr ""

msgid "<primary>source</primary><secondary>package</secondary>"
msgstr ""

msgid "Format"
msgstr ""

msgid "<primary>DSC file</primary>"
msgstr ""

msgid "<primary><filename>dsc</filename> file</primary>"
msgstr ""

msgid "<primary><filename>diff.gz</filename> file</primary>"
msgstr ""

msgid "<primary><filename>debian.tar.gz</filename> file</primary>"
msgstr ""

msgid "<primary><filename>orig.tar.gz</filename> file</primary>"
msgstr ""

msgid "<primary><filename>.dsc</filename></primary>"
msgstr ""

msgid "<primary>Debian Source Control</primary><see><filename>.dsc</filename></see>"
msgstr ""

msgid "A source package is usually comprised of three files, a <filename>.dsc</filename>, a <filename>.orig.tar.gz</filename>, and a <filename>.debian.tar.xz</filename> (or <filename>.diff.gz</filename>). They allow creation of binary packages (<filename>.deb</filename> files described above) from the source code files of the program, which are written in a programming language."
msgstr ""

msgid "The <filename>.dsc</filename> (Debian Source Control) file is a short text file containing an RFC 2822 header (just like the <filename>control</filename> file studied in <xref linkend=\"sect.control\" />) which describes the source package and indicates which other files are part thereof. It is signed by its maintainer, which guarantees authenticity. See <xref linkend=\"sect.package-authentication\" /> for further details on this subject."
msgstr ""

msgid "A <filename>.dsc</filename> file"
msgstr ""

msgid ""
"<![CDATA[\n"
"-----BEGIN PGP SIGNED MESSAGE-----\n"
"Hash: SHA512\n"
"\n"
"Format: 3.0 (quilt)\n"
"Source: zim\n"
"Binary: zim\n"
"Architecture: all\n"
"Version: 0.68-1\n"
"Maintainer: Zim Package Maintainers <zim@packages.debian.org>\n"
"Uploaders: Raphaël Hertzog <hertzog@debian.org>\n"
"Homepage: http://zim-wiki.org\n"
"Standards-Version: 4.1.3\n"
"Vcs-Browser: https://salsa.debian.org/debian/zim\n"
"Vcs-Git: https://salsa.debian.org/debian/zim.git\n"
"Build-Depends: debhelper (>= 11), xdg-utils, python (>= 2.6.6-3~), libgtk2.0-0 (>= 2.6), python-gtk2, python-xdg, dh-python\n"
"Package-List:\n"
" zim deb x11 optional arch=all\n"
"Checksums-Sha1:\n"
" a3b50aa8e44126cc7edd2c1912adf9820f50ad58 2044224 zim_0.68.orig.tar.gz\n"
" 4e13b37625789334da2d95b93e51e41ffd3b6b01 9300 zim_0.68-1.debian.tar.xz\n"
"Checksums-Sha256:\n"
" d91518e010f6a6e951a75314138b5545a4c51151fc99f513aa7768a18858df15 2044224 zim_0.68.orig.tar.gz\n"
" 23f4ddc69af74509932acc3b5f0d4cd2af943016e4fd5740b9d98ec4d49fd8c2 9300 zim_0.68-1.debian.tar.xz\n"
"Files:\n"
" 336041a16687abb66fd9f604b98407e8 2044224 zim_0.68.orig.tar.gz\n"
" 1714f67b35ab69e709849ad707206ca8 9300 zim_0.68-1.debian.tar.xz\n"
"\n"
"-----BEGIN PGP SIGNATURE-----\n"
"Comment: Signed by Raphael Hertzog\n"
"\n"
"iQEzBAEBCgAdFiEE1823g1EQnhJ1LsbSA4gdq+vCmrkFAlqyOxkACgkQA4gdq+vC\n"
"mrnCqAf/Ww9wg97VragtVhSFvehoVoJ0ZhoqNaSuCP/W1Fuf+P0YklzL2BlkVRXW\n"
"X23c8Qs1v6VE2iRY3mEkdWwgBs1QwF0MX7H1jjQfPHCynGHKlH5dfo5fqLizgCeu\n"
"c9Pug3ZisjF90CgsseO7SVDqHVmO6QsfAaGWpHAw92HDz/xwjrS/4Ejntqjy0b+r\n"
"Gmw2AZuBdhp+7C6p7In/Gg6DHPBLQGMLCKypoZKQdl+L0fWjjeykOzMIbjry2sRH\n"
"H0J4FLVGAGumh3zIZlm/t3ehGfP9Dg8FvzMaCNsf8OtYCSAEutrQEDBaskcTSIpq\n"
"L0GQhKlViDuu8gzsqm7efPEhPcsF1A==\n"
"=6jGR\n"
"-----END PGP SIGNATURE-----\n"
"]]>"
msgstr ""

msgid "<primary><literal>Build-Depends</literal>, header field</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>build dependencies</secondary>"
msgstr ""

msgid "Note that the source package also has dependencies (<literal>Build-Depends</literal>) completely distinct from those of binary packages, since they indicate tools required to compile the software in question and construct its binary package."
msgstr ""

msgid "<emphasis>CAUTION</emphasis> Distinct namespaces"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>.dsc</filename></secondary><tertiary><literal>Source</literal></tertiary>"
msgstr ""

msgid "<primary>APT</primary><secondary><filename>.dsc</filename></secondary><tertiary><literal>Binary</literal></tertiary>"
msgstr ""

msgid "It is important to note here that there is no required correspondence between the name of the source package and that of the binary package(s) that it generates. It is easy enough to understand if you know that each source package may generate several binary packages. This is why the <filename>.dsc</filename> file has the <literal>Source</literal> and <literal>Binary</literal> fields to explicitly name the source package and store the list of binary packages that it generates."
msgstr ""

msgid "<emphasis>CULTURE</emphasis> Why divide into several packages"
msgstr ""

msgid "Quite frequently, a source package (for a given software) can generate several binary packages. The split is justified by the possibility to use (parts of) the software in different contexts. Consider a shared library, it may be installed to make an application work (for example, <emphasis role=\"pkg\">libc6</emphasis>), or it can be installed to develop a new program (<emphasis role=\"pkg\">libc6-dev</emphasis> will then be the correct package). We find the same logic for client/server services where we want to install the server part on one machine and the client part on others (this is the case, for example, of <emphasis role=\"pkg\">openssh-server</emphasis> and <emphasis role=\"pkg\">openssh-client</emphasis>)."
msgstr ""

msgid "Just as frequently, the documentation is provided in a dedicated package: the user may install it independently from the software, and may at any time choose to remove it to save disk space. Additionally, this also saves disk space on the Debian mirrors, since the documentation package will be shared amongst all of the architectures (instead of having the documentation duplicated in the packages for each architecture)."
msgstr ""

msgid "<emphasis>PERSPECTIVE</emphasis> Different source package formats"
msgstr ""

msgid "<primary>source package</primary><secondary>format</secondary>"
msgstr ""

msgid "<primary><command>quilt</command></primary>"
msgstr ""

msgid "Originally there was only one source package format. This is the <literal>1.0</literal> format, which associates an <filename>.orig.tar.gz</filename> archive to a <filename>.diff.gz</filename> “debianization” patch (there is also a variant, consisting of a single <filename>.tar.gz</filename> archive, which is automatically used if no <filename>.orig.tar.gz</filename> is available)."
msgstr ""

msgid "Since Debian 6 <emphasis role=\"distribution\">Squeeze</emphasis>, Debian developers have the option to use new formats that correct many problems of the historical format. Format <literal>3.0 (quilt)</literal> can combine multiple upstream archives in the same source package: in addition to the usual <filename>.orig.tar.gz</filename>, supplementary <filename>.orig-<replaceable>component</replaceable>.tar.gz</filename> archives can be included. This is useful with software that is distributed in several upstream components but for which a single source package is desired. These archives can also be compressed with <command>xz</command> rather than <command>gzip</command>, which saves disk space and network resources. Finally, the monolithic patch, <filename>.diff.gz</filename> is replaced by a <filename>.debian.tar.xz</filename> archive containing the compiling instructions and a set of upstream patches contributed by the package maintainer. These last are recorded in a format compatible with <command>quilt</command> — a tool that facilitates the management of a series of patches."
msgstr ""

msgid "The <filename>.orig.tar.gz</filename> file is an archive containing the source code as provided by the original developer. Debian package maintainers are asked to not modify this archive in order to be able to easily check the origin and integrity of the file (by simple comparison with a checksum) and to respect the wishes of some authors."
msgstr ""

msgid "The <filename>.debian.tar.xz</filename> contains all of the modifications made by the Debian maintainer, especially the addition of a <filename>debian</filename> directory containing the instructions to execute to construct a Debian package."
msgstr ""

msgid "<emphasis>TOOL</emphasis> Decompressing a source package"
msgstr ""

msgid "<primary><command>dpkg-source</command></primary>"
msgstr ""

msgid "<primary>decompressing, source package</primary>"
msgstr ""

msgid "<primary>uncompressing, source package</primary>"
msgstr ""

msgid "<primary>unpacking</primary><secondary>source package</secondary>"
msgstr ""

msgid "<primary>source package</primary><secondary>unpacking</secondary>"
msgstr ""

msgid "If you have a source package, you can use the <command>dpkg-source</command> command (from the <emphasis role=\"pkg\">dpkg-dev</emphasis> package) to decompress it:"
msgstr ""

msgid ""
"<computeroutput>$ </computeroutput><userinput>dpkg-source -x zim_0.68-1.dsc</userinput>\n"
"<computeroutput>dpkg-source: info: extracting zim in zim-0.68\n"
"dpkg-source: info: unpacking zim_0.68.orig.tar.gz\n"
"dpkg-source: info: unpacking zim_0.68-1.debian.tar.xz</computeroutput>"
msgstr ""

msgid "You can also use <command>apt</command> to download a source package and unpack it right away. It requires that the appropriate <literal>deb-src</literal> lines be present in the <filename>/etc/apt/sources.list</filename> file, however (for further details, see <xref linkend=\"sect.apt-sources.list\" />). These are used to list the “sources” of source packages (meaning the servers on which a group of source packages are hosted)."
msgstr ""

msgid ""
"<computeroutput>$ </computeroutput><userinput>apt source <replaceable>package</replaceable></userinput>\n"
"<computeroutput><![CDATA[Reading package lists... Done\n"
"Selected version '0.68-1' (stable) for zim\n"
"NOTICE: 'zim' packaging is maintained in the 'Git' version control system at:\n"
"https://salsa.debian.org/debian/zim.git\n"
"Please use:\n"
"git clone https://salsa.debian.org/debian/zim.git\n"
"to retrieve the latest (possibly unreleased) updates to the package.\n"
"Need to get 2055 kB of source archives.\n"
"Get:1 https://cdn-aws.deb.debian.org/debian stable/main zim 0.68-1 (dsc) [1586 B]\n"
"Get:2 https://cdn-aws.deb.debian.org/debian stable/main zim 0.68-1 (tar) [2044 kB]\n"
"Get:3 https://cdn-aws.deb.debian.org/debian stable/main zim 0.68-1 (diff) [9300 B]\n"
"Fetched 2055 kB in 1s (3356 kB/s)\n"
"dpkg-source: info: extracting zim in zim-0.68\n"
"dpkg-source: info: unpacking zim_0.68.orig.tar.gz\n"
"dpkg-source: info: unpacking zim_0.68-1.debian.tar.xz\n"
"]]></computeroutput>"
msgstr ""

msgid "Usage within Debian"
msgstr ""

msgid "The source package is the foundation of everything in Debian. All Debian packages come from a source package, and each modification in a Debian package is the consequence of a modification made to the source package. The Debian maintainers work with the source package, knowing, however, the consequences of their actions on the binary packages. The fruits of their labors are thus found in the source packages available from Debian: you can easily go back to them and everything stems from them."
msgstr ""

msgid "When a new version of a package (source package and one or more binary packages) arrives on the Debian server, the source package is the most important. Indeed, it will then be used by a network of machines of different architectures for compilation on the various architectures supported by Debian. The fact that the developer also sends one or more binary packages for a given architecture (usually i386 or amd64) is relatively unimportant, since these could just as well have been automatically generated. <ulink type=\"block\" url=\"https://buildd.debian.org/\" />"
msgstr ""

msgid "<emphasis>GOING FURTHER</emphasis> Source only maintainer uploads"
msgstr ""

msgid "Right after the release of Debian 10 <emphasis role=\"distribution\">Buster</emphasis> the <link linkend=\"srm-team\">Release Team</link> announced that maintainer binary uploads will no longer be accepted for <literal>main</literal> and all binary packages in this component will be built automatically from mandatory source-only uploads."
msgstr ""

msgid "Manipulating Packages with <command>dpkg</command>"
msgstr ""

msgid "<command>dpkg</command> is the base command for handling Debian packages on the system. If you have <filename>.deb</filename> packages, it is <command>dpkg</command> that allows installation or analysis of their contents. But this program only has a partial view of the Debian universe: it knows what is installed on the system, and whatever it is given on the command line, but knows nothing of the other available packages. As such, it will fail if a dependency is not met. Tools such as <command>apt</command> and <command>aptitude</command>, on the contrary, will create a list of dependencies to install everything as automatically as possible."
msgstr ""

msgid "<emphasis>NOTE</emphasis> <command>dpkg</command> or <command>apt</command>?"
msgstr ""

msgid "<command>dpkg</command> should be seen as a system tool (backend), and <command>apt</command> as a tool closer to the user, which overcomes the limitations of the former. These tools work together, each one with its particularities, suited to specific tasks."
msgstr ""

msgid "Installing Packages"
msgstr ""

msgid "<primary>installation</primary><secondary>package installation</secondary>"
msgstr ""

msgid "<command>dpkg</command> is, above all, the tool for installing an already available Debian package (because it does not download anything). To do this, we use its <literal>-i</literal> or <literal>--install</literal> option."
msgstr ""

msgid "Installation of a package with <command>dpkg</command>"
msgstr ""

msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>dpkg -i man-db_2.8.5-2_amd64.deb</userinput>\n"
"<computeroutput>(Reading database ... 14913 files and directories currently installed.)\n"
"Preparing to unpack .../man-db_2.8.5-2_amd64.deb ...\n"
"Unpacking man-db (2.8.5-2) over (2.8.5-2) ...\n"
"Setting up man-db (2.8.5-2) ...\n"
"Updating database of manual pages ...\n"
"Processing triggers for mime-support (3.62) ...</computeroutput>"
msgstr ""

msgid "We can see the different steps performed by <command>dpkg</command>; we know, thus, at what point any error may have occurred. The installation can also be effected in two stages: first unpacking, then configuration. <command>apt</command> takes advantage of this, limiting the number of calls to <command>dpkg</command> (since each call is costly, due to loading of the database in memory, especially the list of already installed files)."
msgstr ""

msgid "Separate unpacking and configuration"
msgstr ""

msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>dpkg --unpack man-db_2.8.5-2_amd64.deb</userinput>\n"
"<computeroutput>(Reading database ... 14937 files and directories currently installed.)\n"
"Preparing to unpack man-db_2.8.5-2_amd64.deb ...\n"
"Unpacking man-db (2.8.5-2) over (2.8.5-2) ...\n"
"Processing triggers for mime-support (3.62) ...\n"
"# </computeroutput><userinput>dpkg --configure man-db</userinput>\n"
"<computeroutput>Setting up man-db (2.8.5-2) ...\n"
"Updating database of manual pages ...\n"
"</computeroutput>"
msgstr ""

msgid "<primary>package</primary><secondary>unpacking</secondary>"
msgstr ""

msgid "<primary>unpacking</primary><secondary>binary package</secondary>"
msgstr ""

msgid "Sometimes <command>dpkg</command> will fail to install a package and return an error; if the user orders it to ignore this, it will only issue a warning; it is for this reason that we have the different <literal>--force-*</literal> options. The <command>dpkg --force-help</command> command, or documentation of this command, will give a complete list of these options. The most frequent error, which you are bound to encounter sooner or later, is a file collision. When a package contains a file that is already installed by another package, <command>dpkg</command> will refuse to install it. The following messages will then appear:"
msgstr ""

msgid ""
"\n"
"<computeroutput>Unpacking libgdm (from .../libgdm_3.8.3-2_amd64.deb) ...\n"
"dpkg: error processing /var/cache/apt/archives/libgdm_3.8.3-2_amd64.deb (--unpack):\n"
" trying to overwrite '/usr/bin/gdmflexiserver', which is also in package gdm3 3.4.1-9</computeroutput>"
msgstr ""

msgid "In this case, if you think that replacing this file is not a significant risk to the stability of your system (which is usually the case), you can use the option <literal>--force-overwrite</literal>, which tells <command>dpkg</command> to ignore this error and overwrite the file."
msgstr ""

msgid "While there are many available <literal>--force-*</literal> options, only <literal>--force-overwrite</literal> is likely to be used regularly. These options only exist for exceptional situations, and it is better to leave them alone as much as possible in order to respect the rules imposed by the packaging mechanism. Do not forget, these rules ensure the consistency and stability of your system."
msgstr ""

msgid "<emphasis>CAUTION</emphasis> Effective use of <literal>--force-*</literal>"
msgstr ""

msgid "<primary>broken dependency</primary>"
msgstr ""

msgid "If you are not careful, the use of an option <literal>--force-*</literal> can lead to a system where the APT family of commands will refuse to function. In effect, some of these options allow installation of a package when a dependency is not met, or when there is a conflict. The result is an inconsistent system from the point of view of dependencies, and the APT commands will refuse to execute any action except those that will bring the system back to a consistent state (this often consists of installing the missing dependency or removing a problematic package). This often results in a message like this one, obtained after installing a new version of <emphasis role=\"pkg\">rdesktop</emphasis> while ignoring its dependency on a newer version of the <emphasis role=\"pkg\">libc6</emphasis>:"
msgstr ""

msgid ""
"<computeroutput># </computeroutput><userinput>apt full-upgrade\n"
"</userinput><computeroutput>[...]\n"
"You might want to run 'apt-get -f install' to correct these.\n"
"The following packages have unmet dependencies:\n"
"  rdesktop: Depends: libc6 (&gt;= 2.5) but 2.3.6.ds1-13etch7 is installed\n"
"E: Unmet dependencies. Try using -f.</computeroutput>"
msgstr ""

msgid "A courageous administrator who is certain of the correctness of their analysis may choose to ignore a dependency or conflict and use the corresponding <literal>--force-*</literal> option. In this case, if they want to be able to continue to use <command>apt</command> or <command>aptitude</command>, they must edit <filename>/var/lib/dpkg/status</filename> to delete/modify the dependency, or conflict, that they chose to override."
msgstr ""

msgid "This manipulation is an ugly hack, and should never be used, except in the most extreme case of necessity. Quite frequently, a more fitting solution is to recompile the package that is causing the problem (see <xref linkend=\"sect.rebuilding-package\" />) or use a new version (potentially corrected) from a repository such as the <literal>stable-backports</literal> one (see <xref linkend=\"sect.apt-sources.list.stable.backports\" />)."
msgstr ""

msgid "<primary>removing a package</primary>"
msgstr ""

msgid "<primary>purging a package</primary>"
msgstr ""

msgid "Invoking <command>dpkg</command> with the <literal>-r</literal> or <literal>--remove</literal> option, followed by the name of a package, removes that package. This removal is, however, not complete: all of the configuration files, maintainer scripts, log files (system logs) and other user data handled by the package remain. That way disabling the program is easily done by uninstalling it, and it is still possible to quickly reinstall it with the same configuration. To completely remove everything associated with a package, use the <literal>-P</literal> or <literal>--purge</literal> option, followed by the package name."
msgstr ""

msgid "Removal and purge of the <emphasis role=\"pkg\">debian-cd</emphasis> package"
msgstr ""

msgid ""
"<computeroutput># </computeroutput><userinput>dpkg -r debian-cd</userinput>\n"
"<computeroutput>(Reading database ... 15915 files and directories currently installed.)\n"
"Removing debian-cd (3.1.25) ...\n"
"# </computeroutput><userinput>dpkg -P debian-cd</userinput>\n"
"<computeroutput>(Reading database ... 15394 files and directories currently installed.)\n"
"Purging configuration files for debian-cd (3.1.25) ...\n"
"</computeroutput>"
msgstr ""

msgid "Querying <command>dpkg</command>'s Database and Inspecting <filename>.deb</filename> Files"
msgstr ""

msgid "<primary>package</primary><secondary>status</secondary>"
msgstr ""

msgid "<primary>package</primary><secondary>file list</secondary>"
msgstr ""

msgid "<primary>package</primary><secondary>content inspection</secondary>"
msgstr ""

msgid "<emphasis>BACK TO BASICS</emphasis> Option syntax"
msgstr ""

msgid "Most options are available in a “long” version (one or more relevant words, preceded by a double dash) and a “short” version (a single letter, often the initial of one word from the long version, and preceded by a single dash). This convention is so common that it is a POSIX standard."
msgstr ""

msgid "Before concluding this section, we will study <command>dpkg</command> options that query the internal database in order to obtain information. Giving first the long options and then corresponding short options (that will evidently take the same possible arguments) we cite <literal>--listfiles <replaceable>package</replaceable></literal> (or <literal>-L</literal>), which lists the files installed by this package; <literal>--search <replaceable>file</replaceable></literal> (or <literal>-S</literal>), which finds the package(s) containing the file; <literal>--status <replaceable>package</replaceable></literal> (or <literal>-s</literal>), which displays the headers of an installed package; <literal>--list</literal> (or <literal>-l</literal>), which displays the list of packages known to the system and their installation status; <literal>--contents <replaceable>file.deb</replaceable></literal> (or <literal>-c</literal>), which lists the files in the Debian package specified; <literal>--info<replaceable> file.deb </replaceable></literal> (or <literal>-I</literal>), which displays the headers of this Debian package."
msgstr ""

msgid "<emphasis>CAUTION</emphasis> <command>dpkg --search</command> and merged <filename>/usr</filename>"
msgstr ""

msgid "<primary>merged <filename>/usr</filename></primary>"
msgstr ""

msgid "<primary><filename>/usr</filename></primary>"
msgstr ""

msgid "For <ulink url=\"https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/\">various reasons</ulink>, Debian now installs by default a few top-level directories as symlinks to their counterparts below <filename>/usr</filename>. For instance, <filename>/bin</filename>, <filename>/sbin</filename> and <filename>/lib</filename> are now symlinks to, respectively, <filename>/usr/bin</filename>, <filename>/usr/sbin</filename> and <filename>/usr/lib</filename>."
msgstr ""

msgid "While this does provide desirable benefits, it can also be a source of confusion. For example, when you query <command>dpkg</command> which package is owning a given file, it will only be able to answer when you ask for its original path:"
msgstr ""

msgid ""
"\n"
"$ <userinput>dpkg --search /bin/mount</userinput>\n"
"mount: /bin/mount\n"
"$ <userinput>dpkg --search /usr/bin/mount</userinput>\n"
"dpkg-query: no path found matching pattern /usr/bin/mount\n"
"$ <userinput>dpkg --search /bin/apt</userinput>\n"
"dpkg-query: no path found matching pattern /bin/apt\n"
"$ <userinput>dpkg --search /usr/bin/apt</userinput>\n"
"apt: /usr/bin/apt\n"
"        "
msgstr ""

msgid "Various queries with <command>dpkg</command>"
msgstr ""

msgid ""
"\n"
"<computeroutput>$ </computeroutput><userinput>dpkg -L base-passwd</userinput>\n"
"<computeroutput><![CDATA[/.\n"
"/usr\n"
"/usr/sbin\n"
"/usr/sbin/update-passwd\n"
"/usr/share\n"
"/usr/share/base-passwd\n"
"/usr/share/base-passwd/group.master\n"
"/usr/share/base-passwd/passwd.master\n"
"/usr/share/doc\n"
"/usr/share/doc/base-passwd\n"
"/usr/share/doc/base-passwd/README\n"
"/usr/share/doc/base-passwd/changelog.gz\n"
"/usr/share/doc/base-passwd/copyright\n"
"/usr/share/doc/base-passwd/users-and-groups.html\n"
"/usr/share/doc/base-passwd/users-and-groups.txt.gz\n"
"/usr/share/doc-base\n"
"/usr/share/doc-base/users-and-groups\n"
"/usr/share/lintian\n"
"/usr/share/lintian/overrides\n"
"/usr/share/lintian/overrides/base-passwd\n"
"/usr/share/man\n"
"/usr/share/man/de\n"
"/usr/share/man/de/man8\n"
"/usr/share/man/de/man8/update-passwd.8.gz\n"
"/usr/share/man/es\n"
"/usr/share/man/es/man8\n"
"/usr/share/man/es/man8/update-passwd.8.gz\n"
"/usr/share/man/fr\n"
"/usr/share/man/fr/man8\n"
"/usr/share/man/fr/man8/update-passwd.8.gz\n"
"/usr/share/man/ja\n"
"/usr/share/man/ja/man8\n"
"/usr/share/man/ja/man8/update-passwd.8.gz\n"
"/usr/share/man/man8\n"
"/usr/share/man/man8/update-passwd.8.gz\n"
"/usr/share/man/pl\n"
"/usr/share/man/pl/man8\n"
"/usr/share/man/pl/man8/update-passwd.8.gz\n"
"/usr/share/man/ru\n"
"/usr/share/man/ru/man8\n"
"/usr/share/man/ru/man8/update-passwd.8.gz]]>\n"
"$ </computeroutput><userinput>dpkg -S /bin/date</userinput>\n"
"<computeroutput>coreutils: /bin/date\n"
"$ </computeroutput><userinput>dpkg -s coreutils</userinput>\n"
"<computeroutput><![CDATA[Package: coreutils\n"
"Essential: yes\n"
"Status: install ok installed\n"
"Priority: required\n"
"Section: utils\n"
"Installed-Size: 15719\n"
"Maintainer: Michael Stone <mstone@debian.org>\n"
"Architecture: amd64\n"
"Multi-Arch: foreign\n"
"Version: 8.30-3\n"
"Pre-Depends: libacl1 (>= 2.2.23), libattr1 (>= 1:2.4.44), libc6 (>= 2.28), libselinux1 (>= 2.1.13)\n"
"Description: GNU core utilities\n"
" This package contains the basic file, shell and text manipulation\n"
" utilities which are expected to exist on every operating system.\n"
" .\n"
" Specifically, this package includes:\n"
" arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp\n"
" csplit cut date dd df dir dircolors dirname du echo env expand expr\n"
" factor false flock fmt fold groups head hostid id install join link ln\n"
" logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup nproc numfmt\n"
" od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm\n"
" rmdir runcon sha*sum seq shred sleep sort split stat stty sum sync tac\n"
" tail tee test timeout touch tr true truncate tsort tty uname unexpand\n"
" uniq unlink users vdir wc who whoami yes\n"
"Homepage: http://gnu.org/software/coreutils]]>\n"
"$ </computeroutput><userinput>dpkg -l 'b*'</userinput>\n"
"<computeroutput><![CDATA[Desired=Unknown/Install/Remove/Purge/Hold\n"
"| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend\n"
"|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)\n"
"||/ Name                       Version              Architecture Description\n"
"+++-====================-===============-===============-==================================================\n"
"un  backupninja          <none>          <none>          (no description available)\n"
"un  backuppc             <none>          <none>          (no description available)\n"
"un  baobab               <none>          <node>          (no description available)\n"
"un  base                 <none>          <none>          (no description available)\n"
"un  base-config          <none>          <none>          (no description available)\n"
"ii  base-files           11              amd64           Debian base system miscellaneous files\n"
"ii  base-passwd          3.5.46          amd64           Debian base system master password and group files\n"
"ii  bash                 5.0-4           amd64           GNU Bourne Again SHell\n"
"[..]]]>\n"
"$ </computeroutput><userinput>dpkg -c /var/cache/apt/archives/gnupg-utils_2.2.12-1_amd64.deb</userinput>\n"
"<computeroutput><![CDATA[drwxr-xr-x root/root         0 2018-12-15 02:17 ./\n"
"drwxr-xr-x root/root         0 2018-12-15 02:17 ./usr/\n"
"drwxr-xr-x root/root         0 2018-12-15 02:17 ./usr/bin/\n"
"-rwxr-xr-x root/root      3516 2018-12-15 02:17 ./usr/bin/gpg-zip\n"
"-rwxr-xr-x root/root    866256 2018-12-15 02:17 ./usr/bin/gpgcompose\n"
"-rwxr-xr-x root/root     30792 2018-12-15 02:17 ./usr/bin/gpgparsemail\n"
"-rwxr-xr-x root/root     84432 2018-12-15 02:17 ./usr/bin/gpgsplit\n"
"-rwxr-xr-x root/root    154952 2018-12-15 02:17 ./usr/bin/gpgtar\n"
"-rwxr-xr-x root/root    166568 2018-12-15 02:17 ./usr/bin/kbxutil\n"
"-rwxr-xr-x root/root      1081 2017-08-28 12:22 ./usr/bin/lspgpot\n"
"-rwxr-xr-x root/root      2194 2018-11-18 23:37 ./usr/bin/migrate-pubring-from-classic-gpg\n"
"-rwxr-xr-x root/root    121576 2018-12-15 02:17 ./usr/bin/symcryptrun\n"
"-rwxr-xr-x root/root     18424 2018-12-15 02:17 ./usr/bin/watchgnupg\n"
"drwxr-xr-x root/root         0 2018-12-15 02:17 ./usr/sbin/\n"
"-rwxr-xr-x root/root      3075 2018-12-15 02:17 ./usr/sbin/addgnupghome\n"
"-rwxr-xr-x root/root      2217 2018-12-15 02:17 ./usr/sbin/applygnupgdefaults\n"
"drwxr-xr-x root/root         0 2018-12-15 02:17 ./usr/share/\n"
"drwxr-xr-x root/root         0 2018-12-15 02:17 ./usr/share/doc/\n"
"[...]]]>\n"
"$ </computeroutput><userinput>dpkg -I /var/cache/apt/archives/gnupg-utils_2.2.12-1_amd64.deb</userinput>\n"
"<computeroutput><![CDATA[ new Debian package, version 2.0.\n"
" size 857408 bytes: control archive=1844 bytes.\n"
"    1564 bytes,    32 lines      control              \n"
"    1804 bytes,    28 lines      md5sums              \n"
" Package: gnupg-utils\n"
" Source: gnupg2\n"
" Version: 2.2.12-1\n"
" Architecture: amd64\n"
" Maintainer: Debian GnuPG Maintainers <pkg-gnupg-maint@lists.alioth.debian.org>\n"
" Installed-Size: 1845\n"
" Depends: libassuan0 (>= 2.0.1), libbz2-1.0, libc6 (>= 2.25), libgcrypt20 (>= 1.8.0), libgpg-error0 (>= 1.26-2~), libksba8 (>= 1.3.4), libreadline7 (>= 6.0), zlib1g (>= 1:1.1.4)\n"
" Recommends: gpg, gpg-agent, gpgconf, gpgsm\n"
" Breaks: gnupg (<< 2.1.21-4), gnupg-agent (<< 2.1.21-4)\n"
" Replaces: gnupg (<< 2.1.21-4), gnupg-agent (<< 2.1.21-4)\n"
" Section: utils\n"
" Priority: optional\n"
" Multi-Arch: foreign\n"
" Homepage: https://www.gnupg.org/\n"
" Description: GNU privacy guard - utility programs\n"
"  GnuPG is GNU's tool for secure communication and data storage.\n"
"  .\n"
"  This package contains several useful utilities for manipulating\n"
"  OpenPGP data and other related cryptographic elements.  It includes:\n"
"  .\n"
"   * addgnupghome -- create .gnupg home directories\n"
"   * applygnupgdefaults -- run gpgconf --apply-defaults for all users\n"
"   * gpgcompose -- an experimental tool for constructing arbitrary\n"
"                   sequences of OpenPGP packets (e.g. for testing)\n"
"   * gpgparsemail -- parse an e-mail message into annotated format\n"
"   * gpgsplit -- split a sequence of OpenPGP packets into files\n"
"   * gpgtar -- encrypt or sign files in an archive\n"
"   * kbxutil -- list, export, import Keybox data\n"
"   * lspgpot -- convert PGP ownertrust values to GnuPG\n"
"   * migrate-pubring-from-classic-gpg -- use only \"modern\" formats\n"
"   * symcryptrun -- use simple symmetric encryption tool in GnuPG framework\n"
"   * watchgnupg -- watch socket-based logs\n"
"[..]]]></computeroutput>"
msgstr ""

msgid "<emphasis>GOING FURTHER</emphasis> Comparison of versions"
msgstr ""

msgid "<primary>version, comparison</primary>"
msgstr ""

msgid "<primary>comparison of versions</primary>"
msgstr ""

msgid "<primary>package</primary><secondary>version, comparison</secondary>"
msgstr ""

msgid "Since <command>dpkg</command> is the program for handling Debian packages, it also provides the reference implementation of the logic of comparing version numbers. This is why it has a <literal>--compare-versions</literal> option, usable by external programs (especially configuration scripts executed by <command>dpkg</command> itself). This option requires three parameters: a version number, a comparison operator, and a second version number. The different possible operators are <literal>lt</literal> (strictly less than), <literal>le</literal> (less than or equal to), <literal>eq</literal> (equal), <literal>ne</literal> (not equal), <literal>ge</literal> (greater than or equal to), and <literal>gt</literal> (strictly greater than). If the comparison is correct, <command>dpkg</command> returns 0 (success); if not, it gives a non-zero return value (indicating failure)."
msgstr ""

msgid ""
"\n"
"<computeroutput>$ </computeroutput><userinput>dpkg --compare-versions 1.2-3 gt 1.1-4</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>echo $?</userinput>\n"
"<computeroutput>0\n"
"$ </computeroutput><userinput>dpkg --compare-versions 1.2-3 lt 1.1-4</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>echo $?</userinput>\n"
"<computeroutput>1\n"
"$ </computeroutput><userinput>dpkg --compare-versions 2.6.0pre3-1 lt 2.6.0-1</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>echo $?</userinput>\n"
"<computeroutput>1</computeroutput>"
msgstr ""

msgid "Note the unexpected failure of the last comparison: for <command>dpkg</command>, <literal>pre</literal>, usually denoting a pre-release, has no particular meaning, and this program compares the alphabetic characters in the same way as the numbers (a &lt; b &lt; c ...), in alphabetical order. This is why it considers “<literal>0pre3</literal>” to be greater than “<literal>0</literal>”. When we want a package's version number to indicate that it is a pre-release, we use the tilde character, “<literal>~</literal>”:"
msgstr ""

msgid ""
"\n"
"<computeroutput>$ </computeroutput><userinput>dpkg --compare-versions 2.6.0~pre3-1 lt 2.6.0-1</userinput>\n"
"<computeroutput>$ </computeroutput><userinput>echo $?</userinput>\n"
"<computeroutput>0</computeroutput>"
msgstr ""

msgid "<command>dpkg</command>'s Log File"
msgstr ""

msgid "<primary><command>dpkg</command></primary><secondary><filename>/var/log/dpkg.log</filename></secondary>"
msgstr ""

msgid "<command>dpkg</command> keeps a log of all of its actions in <filename>/var/log/dpkg.log</filename>. This log is extremely verbose, since it details every one of the stages through which packages handled by <command>dpkg</command> go. In addition to offering a way to track dpkg's behavior, it helps, above all, to keep a history of the development of the system: one can find the exact moment when each package has been installed or updated, and this information can be extremely useful in understanding a recent change in behavior. Additionally, all versions being recorded, it is easy to cross-check the information with the <filename>changelog.Debian.gz</filename> for packages in question, or even with online bug reports."
msgstr ""

msgid "Multi-Arch Support"
msgstr ""

msgid "<primary>Multi-Arch</primary>"
msgstr ""

msgid "<primary>architecture</primary><secondary>multi-arch support</secondary>"
msgstr ""

msgid "All Debian packages have an <literal>Architecture</literal> field in their control information. This field can contain either “<literal>all</literal>” (for packages that are architecture independent) or the name of the architecture that it targets (like “amd64”, “armhf”, …). In the latter case, by default, <command>dpkg</command> will only accept to install the package if its architecture matches the host's architecture as returned by <command>dpkg --print-architecture</command>."
msgstr ""

msgid "This restriction ensures that users do not end up with binaries compiled for an incorrect architecture. Everything would be perfect except that (some) computers can run binaries for multiple architectures, either natively (an “amd64“ system can run “i386” binaries) or through emulators."
msgstr ""

msgid "Enabling Multi-Arch"
msgstr ""

msgid "<command>dpkg</command>'s multi-arch support allows users to define “foreign architectures” that can be installed on the current system. This is simply done with <command>dpkg --add-architecture</command> like in the example below. There is a corresponding <command>dpkg --remove-architecture</command> to drop support of a foreign architecture, but it can only be used when no packages of this architecture remain."
msgstr ""

msgid ""
"\n"
"<computeroutput># </computeroutput><userinput>dpkg --print-architecture</userinput>\n"
"<computeroutput>amd64\n"
"# </computeroutput><userinput>dpkg --print-foreign-architectures</userinput>\n"
"<computeroutput># </computeroutput><userinput>dpkg -i gcc-8-base_8.3.0-6_armhf.deb</userinput>\n"
"<computeroutput>dpkg: error processing archive gcc-8-base_8.3.0-6_armhf.deb (--install):\n"
" package architecture (armhf) does not match system (amd64)\n"
"Errors were encountered while processing:\n"
" gcc-8-base_8.3.0-6_armhf.deb\n"
"# </computeroutput><userinput>dpkg --add-architecture armhf</userinput>\n"
"<computeroutput># </computeroutput><userinput>dpkg --add-architecture armel</userinput>\n"
"<computeroutput># </computeroutput><userinput>dpkg --print-foreign-architectures</userinput>\n"
"<computeroutput>armhf\n"
"armel\n"
"# </computeroutput><userinput>dpkg -i gcc-8-base_8.3.0-6_armhf.deb</userinput>\n"
"<computeroutput>(Reading database ... 14319 files and directories currently installed.)\n"
"Preparing to unpack gcc-8-base_8.3.0-6_armhf.deb ...\n"
"Unpacking gcc-8-base:armhf (8.3.0-6) ...\n"
"Setting up gcc-8-base:armhf (8.3.0-6) ...\n"
"# </computeroutput><userinput>dpkg --remove-architecture armhf</userinput>\n"
"<computeroutput>dpkg: error: cannot remove architecture 'armhf' currently in use by the database\n"
"# </computeroutput><userinput>dpkg --remove-architecture armel</userinput>\n"
"<computeroutput># </computeroutput><userinput>dpkg --print-foreign-architectures</userinput>\n"
"<computeroutput>armhf</computeroutput>"
msgstr ""

msgid "<emphasis>NOTE</emphasis> APT's multi-arch support"
msgstr ""

msgid "APT will automatically detect when dpkg has been configured to support foreign architectures and will start downloading the corresponding <filename>Packages</filename> files during its update process."
msgstr ""

msgid "Foreign packages can then be installed with <command>apt install <replaceable>package</replaceable>:<replaceable>architecture</replaceable></command>."
msgstr ""

msgid "<emphasis>IN PRACTICE</emphasis> Using proprietary i386 binaries on amd64"
msgstr ""

msgid "There are multiple use cases for multi-arch, but the most popular ones are the possibility to execute (sometimes proprietary) 32 bit binaries (i386) on 64 bit systems (amd64), and the possibility to cross-compile software for a platform or an architecture different from the host one."
msgstr ""

msgid "Multi-Arch Related Changes"
msgstr ""

msgid "To make multi-arch actually useful and usable, libraries had to be repackaged and moved to an architecture-specific directory so that multiple copies (targeting different architectures) can be installed alongside. Such updated packages contain the “<literal>Multi-Arch: same</literal>” header field to tell the packaging system that the various architectures of the package can be safely co-installed (and that those packages can only satisfy dependencies of packages of the same architecture). The most important libraries have been converted since the introduction of multi-arch in Debian 7 <emphasis role=\"distribution\">Wheezy</emphasis>, but there are many libraries that will likely never be converted unless someone specifically requests it (through a bug report for example)."
msgstr ""

msgid ""
"<computeroutput>$ </computeroutput><userinput>dpkg -s gcc-8-base\n"
"</userinput><computeroutput>dpkg-query: error: --status needs a valid package name but 'gcc-8-base' is not: ambiguous package name 'gcc-8-base' with more than one installed instance\n"
"\n"
"Use --help for help about querying packages.\n"
"$ </computeroutput><userinput>dpkg -s gcc-8-base:amd64 gcc-8-base:armhf | grep ^Multi\n"
"</userinput><computeroutput>Multi-Arch: same\n"
"Multi-Arch: same\n"
"$ </computeroutput><userinput>dpkg -L libgcc1:amd64 |grep .so\n"
"</userinput><computeroutput>/lib/x86_64-linux-gnu/libgcc_s.so.1\n"
"$ </computeroutput><userinput>dpkg -S /usr/share/doc/gcc-8-base/copyright\n"
"</userinput><computeroutput>gcc-8-base:amd64, gcc-8-base:armhf: /usr/share/doc/gcc-8-base/copyright\n"
"</computeroutput>"
msgstr ""

msgid "It is worth noting that <literal>Multi-Arch: same</literal> packages must have their names qualified with their architecture to be unambiguously identifiable. They also have the possibility to share files with other instances of the same package; <command>dpkg</command> ensures that all packages have bit-for-bit identical files when they are shared. Last but not least, all instances of a package must have the same version. They must thus be upgraded together."
msgstr ""

msgid "Multi-Arch support also brings some interesting challenges in the way dependencies are handled. Satisfying a dependency requires either a package marked “<literal>Multi-Arch: foreign</literal>” or a package whose architecture matches the one of the package declaring the dependency (in this dependency resolution process, architecture-independent packages are assumed to be of the same architecture than the host). A dependency can also be weakened to allow any architecture to fulfill it, with the <literal><replaceable>package</replaceable>:any</literal> syntax, but foreign packages can only satisfy such a dependency if they are marked “<literal>Multi-Arch: allowed</literal>”."
msgstr ""

msgid "Coexistence with Other Packaging Systems"
msgstr ""

msgid "<primary>RPM</primary>"
msgstr ""

msgid "<primary>Red Hat Package Manager</primary>"
msgstr ""

msgid "<primary><command>alien</command></primary>"
msgstr ""

msgid "Debian packages are not the only software packages used in the free software world. The main competitor is the RPM format of the Red Hat Linux distribution and its many derivatives. Red Hat is a very popular, commercial distribution. It is thus common for software provided by third parties to be offered as RPM packages rather than Debian."
msgstr ""

msgid "In this case, you should know that the program <command>rpm</command>, which handles RPM packages, is available as a Debian package, so it is possible to use this package format on Debian. Care should be taken, however, to limit these manipulations to extract the information from a package or to verify its integrity. It is, in truth, unreasonable to use <command>rpm</command> to install an RPM on a Debian system; RPM uses its own database, separate from those of native software (such as <command>dpkg</command>). This is why it is not possible to ensure a stable coexistence of two packaging systems."
msgstr ""

msgid "On the other hand, the <emphasis role=\"pkg\">alien</emphasis> utility can convert RPM packages into Debian packages, and vice versa."
msgstr ""

msgid "<emphasis>COMMUNITY</emphasis> Encouraging the adoption of <filename>.deb</filename>"
msgstr ""

msgid "If you regularly use the <command>alien</command> program to install RPM packages coming from one of your providers, do not hesitate to write to them and amicably express your strong preference for the <filename>.deb</filename> format. Note that the format of the package is not everything: a <filename>.deb</filename> package built with <command>alien</command> or prepared for a version of Debian different than that which you use, or even for a derivative distribution like Ubuntu, would probably not offer the same level of quality and integration as a package specifically developed for Debian <emphasis role=\"distribution\">Buster</emphasis>."
msgstr ""

msgid ""
"\n"
"<computeroutput>$ </computeroutput><userinput>fakeroot alien --to-deb phpMyAdmin-4.7.5-2.fc28.noarch.rpm</userinput>\n"
"<computeroutput>phpmyadmin_4.7.5-3_all.deb generated\n"
"$ </computeroutput><userinput>ls -s phpmyadmin_4.7.5-3_all.deb</userinput>\n"
"<computeroutput>  4356 phpmyadmin_4.7.5-3_all.deb</computeroutput>"
msgstr ""

msgid "You will find that this process is extremely simple. You must know, however, that the package generated does not have any dependency information, since the dependencies in the two packaging formats don't have systematic correspondence. The administrator must thus manually ensure that the converted package will function correctly, and this is why Debian packages thus generated should be avoided as much as possible. Fortunately, Debian has the largest collection of software packages of all distributions, and it is likely that whatever you seek is already in there."
msgstr ""

msgid "Looking at the man page for the <command>alien</command> command, you will also note that this program handles other packaging formats, especially the one used by the Slackware distribution (it is made of a simple <filename>tar.gz</filename> archive)."
msgstr ""

msgid "The stability of the software deployed using the <command>dpkg</command> tool contributes to Debian's fame. The APT suite of tools, described in the following chapter, preserves this advantage, while relieving the administrator from managing the status of packages, a necessary but difficult task."
msgstr ""