home *** CD-ROM | disk | FTP | other *** search
/ Boot Disc 15 / boot-disc-1997-11.iso / Debian / Docs / debian-faq.txt < prev    next >
Text File  |  1997-09-15  |  123KB  |  2,778 lines

  1.  
  2.                           The Debian GNU/Linux FAQ
  3.  
  4.  Susan G. Kleinmann (sgk@debian.org), Sven Rudolph (sr1@inf.tu-dresden.de),
  5.                   and Joost Witteveen (joostje@debian.org)
  6.  
  7.                               28 December 1996
  8.  
  9.  
  10. 1.  Meta-questions
  11.  
  12.  
  13. 1.1.  In what format is this document written?
  14.  
  15. This document was written using the Linuxdoc-SGML DTD.  The
  16. Linuxdoc-SGML system can be used to create files in a variety of other
  17. formats, e.g., GNU info, HTML, LaTeX, TeX .dvi format, and PostScript
  18. (TM) files.  sdc (SGML Document Compiler) is an alternative system
  19. that in some cases produces better output than
  20. Linuxdoc-SGML. Linuxdoc-SGML and sdc are available as Debian packages.
  21.  
  22.  
  23. 1.2.  Where do I get the latest version of this document?
  24.  
  25. The latest version of this document can be viewed in HTML format at
  26. the Debian home page ( http://www.debian.org/FAQ/ ) .
  27.  
  28. It is also available in HTML, PostScript, GNU info and plain text
  29. format at the Debian FTP Server ( ftp://ftp.debian.org/debian/ ) and
  30. any of its mirrors ( http://www.debian.org/ftplist.html ) in the
  31. directory doc/FAQ/.
  32.  
  33. The original SGML files used to create this document are available as
  34. part of the Debian package called doc-debian_VVV-RRR.deb, where VVV is
  35. the latest version number and RRR is the latest revision number. This
  36. package is normally stored in the directory stable/binary-all/doc/.
  37. The linuxdoc-sgml package contains tools to transform this document
  38. into one or more other formats, as required by the user: GNU info
  39. files, HTML, LaTeX, TeX .dvi format, and PostScript.
  40.  
  41.  
  42. 1.3.  Where do I send questions, corrections, etc. about this document?
  43.  
  44. Comments on this document are welcome.  Please send e-mail to
  45. debian-faq@debian.org.
  46.  
  47.  
  48. 1.4.  (How) Can I redistribute this file?
  49.  
  50. This document is copyright 1996 by SPI (see section Software in the
  51. Public Interest (14.3.1)).
  52.  
  53. Permission is granted to make and distribute verbatim copies of this
  54. document provided the copyright notice and this permission notice are
  55. preserved on all copies.
  56.  
  57. Permission is granted to copy and distribute modified versions of this
  58. document under the conditions for verbatim copying, provided that the
  59. entire resulting derived work is distributed under the terms of a
  60. permission notice identical to this one.
  61.  
  62. Permission is granted to copy and distribute translations of this
  63. document into another language, under the above conditions for
  64. modified versions, except that this permission notice may be included
  65. in translations approved by the Free Software Foundation instead of in
  66. the original English.
  67.  
  68.  
  69. 1.5.  What information resources were used to obtain the questions and
  70.       answers presented here?
  71.  
  72. This FAQ previously was maintained by J.H.M.  Dassen
  73. (jdassen@wi.LeidenUniv.nl) and Chuck Stickelman (stick@richnet.net).
  74.  
  75. Parts of the information came from
  76. o  The Debian-1.1 release announcement (
  77.    http://www.debian.org/1.1/release.html ) by Bruce Perens.
  78. o  The  Linux FAQ (  http://www.cl.cam.ac.uk/users/iwj10/linux-faq/ ) by
  79.    Ian Jackson ( http://www.cl.cam.ac.uk/users/iwj10/ijackson.html ) .
  80. o  The  Debian Mailing List Archives (
  81.    ftp://ftp.debian.org/debian/debian-lists/ )
  82. o  The dpkg programmers' manual and the Debian policy manual (12.1)
  83. o  The many developers, volunteers, and beta testers.
  84. o  The flaky memories of its authors.
  85.  
  86. The authors would like to thank all those who helped make this
  87. document possible.
  88.  
  89.  
  90.  
  91. 2.  Definitions and Overview
  92.  
  93.  
  94. 2.1.  What is Debian GNU/Linux?
  95.  
  96. Debian GNU/Linux is a particular distribution of the Linux operating
  97. system, and numerous packages that run on it. In principle, users
  98. could obtain the Linux kernel via the Internet or from elsewhere, and
  99. compile it themselves.  They could then obtain source code for many
  100. applications in the same way, compile the programs, then install them
  101. into their systems.  For complicated programs, this process can be not
  102. only time-consuming but error-prone.  To avoid it, users often choose
  103. to obtain the operating system and the application packages from one
  104. of the Linux distributors.  What distinguishes the various Linux
  105. distributors are the software, protocols, and practices they use for
  106. packaging, installing, and tracking applications packages on users'
  107. systems, combined with installation and maintenance tools,
  108. documentation, and other services.
  109.  
  110. Debian GNU/Linux is the result of a volunteer effort to create a free,
  111. high-quality Unix-compatible operating system, complete with a suite
  112. of applications.  The idea of a free Unix-like system originates from
  113. the GNU project, and many of the applications that make Debian
  114. GNU/Linux so useful were developed by the GNU project.
  115.  
  116. Debian was created by Ian Murdock in 1993, initially under the
  117. sponsorship of the Free Software Foundation's GNU project.  Today,
  118. Debian's developers think of it as a direct descendent of the GNU
  119. project.
  120.  
  121. Debian GNU/Linux is
  122. o  full featured: Debian includes more than 700 software packages at
  123.    present.  Users can select which packages to install;  Debian provides
  124.    a  tool for this purpose.  You can find a list and descriptions of the
  125.    packages currently available in Debian at any of the Debian mirror
  126.    sites.
  127. o  free to use and redistribute:  There is no consortium membership or
  128.    payment required to participate in its distribution and development.
  129.    All packages that are formally part of Debian GNU/Linux are free to
  130.    redistribute, usually under terms specified by the GNU General Public
  131.    License.  The Debian FTP archives also carry approximately 50 software
  132.    packages (in the  non-free and contrib directories at the FTP archives),
  133.    which are distributable under specific terms included with each
  134.    package.
  135. o  dynamic: With about 120 volunteers constantly contributing new and
  136.    improved code, Debian is evolving rapidly.  New releases are planed
  137.    to be made about every three months, and the FTP archives are updated
  138.    daily.
  139.  
  140. Though Debian itself is free software, it is a base upon which
  141. value-added Linux distributions can be built.  By providing a
  142. reliable, full-featured base system, Debian provides Linux users with
  143. increased compatibility, and allows Linux distribution creators to
  144. eliminate duplication-of-effort and focus on the things that make
  145. their distribution special.
  146.  
  147.  
  148. 2.2.  OK, now I know what Debian is...what is Linux!?
  149.  
  150. In short, Linux is the kernel of a Unix-like operating system.  It was
  151. originally designed for 386/486/Pentium PCs; now, ports to other
  152. systems, including multi-processor systems, are under
  153. development. Linux is written by Linus Torvalds and many computer
  154. scientists around the world.
  155.  
  156. Besides its kernel, a Linux system usually has:
  157. o  a file system that follows the Linux Filesystem Hierarchy Standard
  158.    ( http://www.pathname.com/fhs/ ) .
  159. o  a wide range of Unix utilities, many of which have been developed by
  160.    the GNU project and the Free Software Foundation.
  161.  
  162. The combination of the Linux kernel, the filesystem, the GNU and FSF
  163. utilities, and the other utilities are designed to achieve compliance
  164. with the POSIX (IEEE 1003.1) standard; see source code compatibility
  165. (4.2).
  166.  
  167. For more information about Linux, see Michael K. Johnson's INFO-SHEET
  168. ( ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/INFO-SHEET ) and META-FAQ
  169. ( ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/META-FAQ ) .
  170.  
  171.  
  172. 2.3.  What is the difference between Debian and other Linux distributions?
  173.  
  174. Three key features distinguish Debian from other Linux distributions:
  175.  
  176. The Debian package maintenance system: The entire system, or
  177.    any individual component of it, can be upgraded in place without
  178.    reformatting, without losing custom configuration files, and (in
  179.    most cases) without rebooting the system.  Most Linux distributions
  180.    available today have some kind of package maintenance system; the
  181.    Debian package maintenance system (6) is unique and particularly
  182.    robust.
  183.  
  184. Open development: Whereas other Linux distributions are developed by
  185.    individuals, small, closed groups, or commercial vendors, Debian is
  186.    the only Linux distribution that is being developed cooperatively
  187.    by many individuals through the Internet, in the same spirit as
  188.    Linux and other free software. More than 120 volunteer package
  189.    maintainers are working on over 700 packages and improving Debian
  190.    GNU/Linux.  The Debian developers contribute to the project not by
  191.    writing new applications (in most cases), but by packaging existing
  192.    software according to the standards of the project, by
  193.    communicating bug reports to upstream developers, and by providing
  194.    user support.  See also additional information on how to become a
  195.    contributor (14.1).
  196.  
  197. The Bug Tracking System: The geographical dispersion of the Debian
  198.    developers required sophisticated tools and quick communication of
  199.    bugs and bug-fixes to accelerate the development of the system.
  200.    Users are encouraged to send bugs in a formal style, which are
  201.    quickly accessible by WWW archives or via e-mail. See additional
  202.    information in this FAQ on the management of the Bug Log (13).
  203.  
  204. 2.4.  How does the Debian project fit in or compare with the Free Software
  205.       Foundation's GNU project?
  206.  
  207. The Debian system builds on the ideals of free software first
  208. championed by the Free Software Foundation (
  209. http://www.gnu.ai.mit.edu/ ) and in particular by Richard Stallman.
  210. FSF's powerful system development tools, utilities, and applications
  211. are also a key part of the Debian system.
  212.  
  213. The Debian Project is a separate entity from the FSF, however we
  214. communicate regularly and cooperate on various projects. The FSF
  215. explicitly requested that we call our system "Debian GNU/Linux", and
  216. we are happy to comply with that request.
  217.  
  218. The FSF's long-standing objective is to develop a new operating system
  219. called GNU based on HURD 
  220. ( http://www.gnu.ai.mit.edu/software/hurd/hurd.html ).
  221.  
  222.  
  223. 2.5.  How does one pronounce Debian and what does this word mean?
  224.  
  225. The project name is pronounced Deb'-ian, with a short e, and emphasis
  226. on the first syllable.  This word is a contraction of the names of
  227. Debra and Ian Murdock, who founded the project.  (Dictionaries seem to
  228. offer some ambiguity in the pronunciation of Ian (!), but Ian prefers
  229. ee'-an.)
  230.  
  231.  
  232. 3.  Hardware Requirements
  233.  
  234.  
  235.  
  236. 3.1.  On what architectures/systems does Debian GNU/Linux run?
  237.  
  238. Debian GNU/Linux includes complete source-code for all of the included
  239. programs, so it should work on all systems which are supported by the
  240. Linux Kernel; see the Linux FAQ (
  241. http://www.cl.cam.ac.uk/users/iwj10/linux-faq/ ) for details.
  242.  
  243. The current Debian GNU/Linux release contains a complete, binary
  244. distribution for the i386 architecture; this covers PCs based on
  245. Intel-compatible processors, including Intel's80386, 80486, Pentium,
  246. and Pentium Pro, and compatible processors by AMD, Cyrix and others.
  247. The development of binary distributions of Debian 1.2 for the m68k
  248. architecture (Motorola 680x0 processors for x>=2; with MMU) is
  249. currently underway, and ports to Alpha, SPARC, and MIPS processors are
  250. expected to follow.
  251.  
  252.  
  253. 3.2.  What hardware is assumed by the stock Debian GNU/Linux boot disks?
  254.  
  255. The configuration file used to build Debian GNU/Linux' standard
  256. distribution kernel assumes an 80386 CPU, and includes support for
  257. PCMCIA cards SCSI cards for which there exist Linux drivers. Support
  258. for network interface card is provided by loadable modules, so there
  259. is no need to compile these drivers into the kernel.
  260.  
  261.  
  262. 3.3.  What amount of disk space is recommended?
  263.  
  264. A generous installation, sufficient to accommodate a few users, X
  265. Window System software, and several large applications, might require
  266. disk partitions at least as large as:
  267. o  50 MBytes for the root directory (/)
  268. o  500 MBytes for /usr
  269. o  50 MBytes for swap space
  270. o  50 MBytes for each home directories
  271. o  100 MBytes for /tmp
  272. o  100 MBytes for /var
  273.  
  274. The optimum disk space allocated for swap depends critically on the
  275. way the system will be used.  Many people just choose to set aside
  276. twice as much disk space as they have RAM space.  Systems with large
  277. RAM may not need so much swap space, especially if there are only a
  278. few users. The installation process supports systems with no swap
  279. space.
  280.  
  281.  
  282. 3.3.1 But how much RAM and disk space are absolutely essential?
  283.  
  284. These minimal requirements are sufficient for a system without X11 and
  285. only 1 or 2 users:
  286.  
  287. o  15 MBytes of disk space for the base system; this provides a
  288.    minimally-functioning Unix system, but includes no application
  289.    programs and no network support.
  290. o  100 MBytes of disk space for a standard system running applications
  291.    on the console (i.e., without an X11 interface).
  292. o  150 MBytes of disk space for a standard system running applications
  293.    with the X Window System.
  294. o  300 MBytes and more for all the optional programs (You probably do
  295.    not need all of these programs.)
  296.  
  297. Debian Linux can be installed on systems with only 4 MBytes of
  298. RAM. The latest installation disks are especially organized to provide
  299. an easy installation path for machines with small memories.  Some
  300. users report success at using Debian Linux to convert PCs having
  301. limited RAM (and disk space) into X terminals.  An 80386-based system
  302. with only 4 MBytes of RAM and 40 MBytes disk space has been used to
  303. run Debian Linux in this way; i.e., both networking and basic X11
  304. server functions operated satisfactorily. This mode of operation even
  305. works if 1 MByte of the RAM is used as a ramdisk when the machine is
  306. booted, implying that only 3 Mbytes of RAM is absolutely essential for
  307. using Debian Linux on a PC in order to use it as an X server.  This
  308. mode of operation requires a swap partition; without it, the system
  309. will not even go into multi-user mode.
  310.  
  311.  
  312. 3.4.  How should I partition my drive?
  313.  
  314. Partitioning a drive has the disadvantage that drive space can be used
  315. much less flexibly than an unpartitioned drive.  Most users find,
  316. however, that this disadvantage is more than offset by the fact that
  317. damage to a filesystem on a partitioned disk is usually limited to a
  318. single partition.  Furthermore, backups of a partitioned hard disk can
  319. be more easily managed because the files that change most frequently
  320. are likely to be localized to a single partition.
  321.  
  322. A user with a 1.6 GByte drive has concluded after a survey of Debian
  323. users that it is reasonable to design a partitioning scheme that
  324. closely follows the Filesystem Hierarchy Standard (
  325. http://www.pathname.com/fhs/ ) . For his 1.6 GByte disk, he chose
  326. these partitions:
  327.  
  328. o  30 MBytes for the root directory (/)
  329. o  450 MBytes for /usr
  330. o  50 MBytes for swap space
  331. o  1000 MBytes for home directories (some of this could be used for
  332.    /usr/local/)
  333. o  0 MBytes for /tmp; make /tmp a symbolic link to /var/tmp
  334. o  40 MBytes for /var
  335.  
  336. It is possible to use a swap file instead of a swap partition. However
  337. this usually is a bad solution, so we suggest to use a swap partition.
  338.  
  339.  
  340. 3.5.  Are very large disks supported?
  341.  
  342. There is an upper limit on the size of the disk partition that is used
  343. for booting.  This limit applies to all operating systems, not just
  344. Linux. Basically, the BIOSs typically available on PCs cannot access
  345. disk partitions larger than 1024 cylinders or tracks. Thus, any
  346. operating system used on a PC cannot be booted from a disk partition
  347. larger than 1 GByte.  It is worth emphasizing that this restriction
  348. only applies to the partition from which Linux is booted. Other
  349. partitions can be larger.  One solution to this limitation is to place
  350. the directory /boot/ (and usually the whole root partition) in its own
  351. (very small) partition, entirely within the first 1024 blocks of the
  352. disk.
  353.  
  354. Support for large non-bootable partitions varies with the
  355. driver. Detailed information is provided in the Large-Disk mini-HOWTO.
  356.  
  357. The Linux kernel includes the Multi-Device disk driver ('md'), which
  358. provides plain concatenation of drives (called linear mode) or
  359. striping support (also known as RAID 0) in software.
  360.  
  361.  
  362. 3.6.  (How) Does Debian provide PCMCIA support?
  363.  
  364. Utilities that provide PCMCIA card services have been developed by
  365. David Hinds.  These utilities are provided in Debian by the package
  366. pcmcia-cs-KKK_VVV-RRR.deb, where the components 'VVV' and 'RRR' follow
  367. the usual conventions on Debian package names (6.3), and the component
  368. 'KKK' refers to the kernel version for which the pcmcia-cs package was
  369. built.
  370.  
  371. The   pcmcia-modules-KKK  package   must   be  rebuilt   for  systems   not
  372. using   the   default   Debian   kernel.    The   pcmcia-source_VVV-RRR.deb
  373. package  is   provided  for  users   who  need  to  recompile   the  PCMCIA
  374. modules  or  utilities.   It  unpacks  the  source  files  for  the  PCMCIA
  375. utilities   into  the   /usr/src/modules/pcmcia-cs/  directory.    See  the
  376. /usr/src/modules/pcmcia-cs/README.gz  file;  it contains  instructions  for
  377. rebuilding the PCMCIA packages.
  378.  
  379. PCMCIA cards that include IDE drives have to be supported by the
  380. kernel.  The version of the kernel distributed with the Debian
  381. installation disks includes support for such PCMCIA cards.  That is,
  382. its .config file includes the line: CONFIG_BLK_DEV_IDE_PCMCIA=y.
  383.  
  384.  
  385.  
  386. 4.  Compatibility issues
  387.  
  388.  
  389. 4.1.  How compatible is Debian with other distributions of Linux?
  390.  
  391. Debian developers communicate with other Linux distribution creators
  392. in an effort to maintain binary compatibility across Linux
  393. distributions. Most commercial Linux products run as well under Debian
  394. as they do on the system upon which they were built.
  395.  
  396. Debian GNU/Linux adheres strictly to the Linux File System Structure (
  397. http://www.pathname.com/fhs/ ) (now known as the FHS). However, there
  398. is room for interpretation in some of the rules within this standard,
  399. so there may be differences between a Debian system and other Linux
  400. systems.
  401.  
  402.  
  403. 4.2.  How source code compatible is Debian with other Unix systems?
  404.  
  405. For most applications Linux source code is compatible with other Unix
  406. systems.  It supports almost everything that is available in System V
  407. Unix systems and the free and commercial BSD- derived systems. However
  408. in the Unix business such claim has nearly no value because there is
  409. no way to prove it. In the software development area complete
  410. compatibility is required instead of compatibility in about most
  411. cases. So years ago the need for standards arose, and nowadays POSIX.1
  412. (IEEE Standard 1003.1-1990) is one of the major standards for source
  413. code compatibility in Unix-like operating systems.
  414.  
  415. Linux is intended to adhere to POSIX.1, but the POSIX standards cost
  416. real money and the POSIX.1 (and FIPS 151-2) certification is quite
  417. expensive; this made it more difficult for the Linux developers to
  418. work on complete POSIX conformance.  The certification costs make it
  419. unlikely that Debian will get an official conformance certification
  420. even if it completely passed the validation suite. (The validation
  421. suite is now freely available, so it is expected that more people will
  422. work on POSIX.1 issues.)
  423.  
  424. Unifix GmbH (Braunschweig, Germany) developed a Linux system that has
  425. been certified to conform to FIPS 151-2 (a superset of POSIX.1). This
  426. technology is available in Unifix' own distribution called Unifix
  427. Linux 2.0 and in Lasermoon's Linux-FT (
  428. http://www.lasermoon.co.uk/linux-ft/linux-ft.html ) . Currently Unifix
  429. merges its patches into the Linux kernel, gcc and other tools; so it
  430. is expected that their fixes towards POSIX.1 conformance will be
  431. available in Debian (and other distributions).
  432.  
  433.  
  434. 4.3.  Can I use Debian packages (.deb files) on my RedHat/Slackware/...
  435.       Linux system? Can I use RedHat packages (.rpm files) on my Debian
  436.       GNU/Linux system?
  437.  
  438. Different Linux distributions use different package formats and
  439. different package management programs.
  440.  
  441.  
  442. You probably can: A program to unpack a Debian package onto a Linux
  443.    host that is been built from a `foreign' distribution is available,
  444.    and will generally work, in the sense that files will be unpacked.
  445.    The converse is probably also true, that is, a program to unpack a
  446.    RedHat or Slackware package on a host that is based on Debian Linux
  447.    will probably succeed in unpacking the package and placing most
  448.    files in their intended directories.  This is largely a consequence
  449.    of the existence (and broad adherence to) the Linux File System
  450.    Standard.
  451.  
  452. You probably do not want to: Most package managers write
  453.    administrative files when they are used to unpack an archive.
  454.    These administrative files are generally not standardized.
  455.    Therefore, the effect of unpacking a Debian package on a `foreign'
  456.    host will have unpredictable (certainly not useful) effects on the
  457.    package manager on that system.  Likewise, utilities from other
  458.    distributions might succeed in unpacking their archives on Debian
  459.    systems, but will probably cause the Debian package management
  460.    system to fail when the time comes to upgrade or remove some
  461.    packages, or even simply to report exactly what packages are
  462.    present on a system.
  463.  
  464. A better way: The Linux File System Standard (and therefore Debian
  465.    GNU/Linux) requires that subdirectories under /usr/local/ be
  466.    entirely under the user's discretion.  Therefore, users can unpack
  467.    `foreign' packages into this directory, and then manage their
  468.    configuration, upgrade and removal individually.
  469.  
  470.  
  471. 4.4.  Is Debian able to run my old a.out programs?
  472.  
  473. To execute a program whose binary is in a.out (i.e., QMAGIC or ZMAGIC)
  474. format,
  475.  
  476. o  Make sure your kernel has a.out support built into it, either
  477.    directly (CONFIG_BINFMT_AOUT=y) or as a module
  478.    (CONFIG_BINFMT_AOUT=m). (Debian's kernel-image package contains the
  479.    module binfmt_aout.)
  480.  
  481.    If your kernel supports a.out binaries by a module, then be sure
  482.    that the binfmt_aout module is loaded.  You can do this at boot
  483.    time by entering the line binfmt_aout into the file /etc/modules.
  484.    You can do it from the command line by executing the command insmod
  485.    DIRNAME/binfmt_aout.o where DIRNAME is the name of the directory
  486.    where the modules that have been built for the version of the
  487.    kernel now running are stored. On a system with the 2.0.27 version
  488.    of the kernel, DIRNAME is likely to be /lib/modules/2.0.27/fs/.
  489. o  install the package libc4.
  490. o  If the program you want to execute is an a.out X client, then
  491.    install the xcompat package.
  492.  
  493. If you have a commercial application in a.out format, now would be a
  494. good time to ask them to send you an ELF upgrade.
  495.  
  496.  
  497. 4.5.  Can Debian be used to compile a.out programs?
  498.  
  499. To compile programs in the a.out binary format,
  500.  
  501. o  install the Debian a.out developer's packages, which are
  502.    -  libc4-dev
  503.    -  aout-binutils
  504.  
  505.    -  aout-librl
  506.    -  aout-gcc
  507.  
  508. o  place the a.out tools ahead of the ELF tools in your path.  That is,
  509.    execute the command export PATH=/usr/i486-linuxaout/bin:$PATH (This
  510.    is not essential, just advantageous.) If you are only going to do
  511.    this once, you could execute: PATH=/usr/i486-linuxaout/bin:$PATH
  512.    make target.
  513.  
  514.  
  515. 4.6.  How should I install a non-Debian package?
  516.  
  517. Files under the directory /usr/local/ are not under the control of the
  518. Debian package management system.  Therefore, it is good practice to
  519. place the source code for your program in /usr/local/src/.  For
  520. example, you might extract the files for a package named foo.tar into
  521. the directory /usr/local/src/foo.  After you compile them, place the
  522. binaries in /usr/local/bin/, the libraries in /usr/local/lib/, and the
  523. configuration files in /usr/local/etc/.
  524.  
  525. If your programs and/or files really must be placed in some other
  526. directory, you could still store them in /usr/local/, and build the
  527. appropriate symbolic links from the required location to its location
  528. in /usr/local/, e.g., you could make the link
  529.  
  530. ln -s /usr/local/bin/foo /usr/bin/foo
  531.  
  532. In any case, if you obtain a package whose copyright allows
  533. redistribution, you should consider making a Debian package of it, and
  534. uploading it for the Debian system.  Guidelines for becoming a package
  535. developer are included in the Debian policy manual (12.1).
  536.  
  537.  
  538. 4.7.  Why can't I compile programs that require libtermcap?
  539.  
  540. Debian uses the terminfo database and the ncurses library of terminal
  541. interface routes, rather than the termcap database and the termcap
  542. library.  Users who are compiling programs that require some knowledge
  543. of the terminal interface should replace references to libtermcap with
  544. references to libncurses.
  545.  
  546. To support binaries that have already been linked with the termcap
  547. library, and for which you do not have the source, Debian provides a
  548. package called termcap-compat.  This provides both libtermcap.so.2 and
  549. /etc/termcap.  Install this package if the program fails to run with
  550. the error message can't load library 'libtermcap.so.2', or complains
  551. about a missing /etc/termcap file.
  552.  
  553.  
  554. 4.8.  Why can't I install AccelX?
  555.  
  556. AccelX uses the termcap library for installation. See about termcap
  557. (4.7) above.
  558.  
  559. 4.9.  Why do I get Can't find libX11.so.6 errors when I try to run foo?
  560.  
  561. This error message could mean that the program is in a.out format. In
  562. this case you need to install the xcompat package.
  563.  
  564.  
  565. 4.10.  Can I install and compile a kernel without some Debian-specific
  566.        tweaking?
  567.  
  568. Yes.  But you have to understand the Debian policy with respect to
  569. headers.  The Debian C libraries are built with the most recent stable
  570. releases of the gcc headers.  For example, the Debian-1.2 release used
  571. version 5.4.13 of the headers.  This practice contrasts with the Linux
  572. kernel source packages distributed at all Linux FTP archive sites,
  573. which uses even more recent versions of the headers.  The kernel
  574. headers distributed with the kernel source are located in
  575. /usr/include/linux/include/.
  576.  
  577. If you need to compile a program with kernel headers that are newer
  578. than those provided by libc5-dev, then you must add
  579. -I/usr/src/linux/include/ to your command line when compiling. This
  580. came up at one point, for example, with the packaging of the
  581. automounter daemon (amd).  When new kernels changed some internals
  582. dealing with NFS, amd needed to know about them.  This required the
  583. inclusion of the latest kernel headers.
  584.  
  585.  
  586.  
  587. 5.  Software available in the Debian system
  588.  
  589.  
  590. 5.1.  What types of applications and development software are available for
  591.       Debian GNU/Linux?
  592.  
  593. Like most Linux distributions, Debian GNU/Linux provides:
  594. o  the major GNU applications for software development, file manipulation,
  595.    and text processing, including gcc, libc, g++, make, texinfo, gnuplot,
  596.    the Bash shell and numerous upgraded Unix utilities,
  597. o  Perl and its libraries,
  598. o  TeX, LaTeX, and dvips,
  599. o  the X Window System, which provides a networked graphical user
  600.    interface for Linux, and numerous X applications,
  601. o  a full suite of other networking applications, including WWW servers,
  602.    browsers, and development tools.
  603.  
  604. Nearly 700 packages, ranging from news servers and readers to sound
  605. support, FAX programs, database and spreadsheet programs, image
  606. processing programs, communications, net, and mail utilities, Web
  607. servers, and even ham-radio programs are included in the
  608. distribution. Another 50 software suites are available as Debian
  609. packages, but are not formally part of Debian due to license
  610. restrictions.
  611.  
  612. 5.2.  Who wrote all that software?
  613.  
  614. o  For each package the authors of this program are credited in thefile
  615.    /usr/doc/PACKAGE/copyright, where PACKAGE is to be substituted with
  616.    the package's name. (Packages conforming to an older Debian
  617.    Packaging Standard have this in the file /usr/doc/copyright/PACKAGE
  618.     instead.)
  619.  
  620. o  Maintainers who package this software for the Debian Linux system
  621.    are listed in the Debian control file (6.4) that comes with each
  622.    package.
  623.  
  624.  
  625. 5.3.  How can I get a current list of programs that have been packaged for
  626.       the Debian project?
  627.  
  628. A complete list is available from any of the Debian mirrors.  The file
  629. indices/Packages-Master-i386.gz provides a list, including short
  630. descriptions, of all packages that are available for computers with
  631. 80386 (or more advanced) chips. The file
  632. indices/Packages-Master-m68k.gz provides a similar list of packages
  633. that are available for computers with Motorola 68k0x0 CPUs.
  634.  
  635. The WWW interface to the Debian packages conveniently summarizes the
  636. packages in each of about twenty sections of the Debian archive, as
  637. well as the 10 most recently uploaded packages.
  638.  
  639.  
  640. 5.4.  What is missing from Debian GNU/Linux?
  641.  
  642. A list of packages which are most urgently needed for Debian is
  643. maintained by Sven Rudolph.  For more details, see the section on
  644. contributing to the Debian project (14.1).
  645.  
  646.  
  647. 5.5.  Where is 'which'?
  648.  
  649. This is a historical question, no longer relevant, but is included
  650. with this FAQ because it may still hold the record as the single most
  651. frequently asked question on the Debian mailing lists.
  652.  
  653. The functionality of the Berkeley utility which is provided in the
  654. Bash shell by the built-in command type.  To learn the path name for
  655. an executable file foo, use the command type foo.  To learn all the
  656. paths where foo can be found, use type -a foo.
  657.  
  658. To accommodate users' lack of familiarity with this (in this writer's
  659. opinion, obscure) feature of Bash, the Debian maintainers have built a
  660. package called debianutils, which includes a Bash script called which.
  661. This script includes only these lines:
  662.  
  663.  
  664.    #!/bin/bash
  665.    for i in $*; do
  666.      type -all -path $i | head -1
  667.    done
  668.  
  669. The debianutils package is normally stored in the base section of the
  670. FTP archive, and is therefore part of the initial installation of
  671. every Debian system.
  672.  
  673.  
  674. 5.6.  (How) Does Debian support Java?
  675.  
  676. The Java Development Kit from Sun is currently available as a Debian
  677. package (jdk_VVV-RRR.deb).  The JDK will allow you to run Java
  678. programs and applets, and write your own.  If your kernel is properly
  679. configured (see below), the JDK will allow you to run Java programs
  680. just like other executables.  The JDK package also includes a number
  681. of demo programs.
  682.  
  683. Debian's kernel is configured with Java support built in as a module
  684. (i.e., CONFIG_BINFMT_JAVA=m).  Users who wish to build their own
  685. custom kernel (10.1) can of course omit this if they choose.  Once
  686. module support is available in the kernel, you need to make sure the
  687. module is loaded.  You can do it at boot time by inserting the line
  688. binfmt_java in the file /etc/modules. Alternatively, you can install
  689. the module from the command line by executing the command insmod
  690. DIRNAME/binfmt_java.o where DIRNAME is the name of the directory where
  691. the modules that have been built for the version of the kernel now
  692. running are stored. On a system with the 2.0.0 version of the kernel,
  693. DIRNAME is likely to be /lib/modules/2.0.0/fs/. You can check that a
  694. module is loaded using the command lsmod.
  695.  
  696. Running a Java applet requires a browser with the capability to
  697. recognize and execute them.  The Netscape browser that can be
  698. installed as a Debian package will run Java applets.  (The Netscape
  699. source code is not publicly available.  The Debian netscape package
  700. provides a wrapper which aids the installation and management of
  701. Netscape on a Debian system.  This is actually a good example of the
  702. integration of commercial packages with the Debian system.)
  703.  
  704. A final note of mixed blessings: Sun's licensing policies on the JDK
  705. are becoming more restricted with time, so this package may not be
  706. available as part of Debian soon.  It is possible that it may be
  707. available in the same way that Netscape is available for Debian Linux.
  708. Better news is that a number of programs are currently being developed
  709. with may provide attractive publicly-available alternatives.
  710.  
  711.  
  712. 5.7.  What are all those directories
  713.       (stable/development/non-free/contrib/project) at the Debian FTP
  714.       archives?
  715.  
  716. The software that has been packaged for Debian GNU/Linux is available
  717. in one of several directory trees on each Debian mirror site.
  718.  
  719.  
  720. 5.7.1 Top-level Directories
  721.  
  722. The Major Package Trees:
  723.  
  724.    o   Debian-1.2: This directory contains the packages which formally
  725.        constitute the most recent release of the Debian Linux
  726.        system. The contents of this directory do not change.
  727.    o   Debian-1.2-updates: Updates to the current release are in this
  728.        directory.
  729.  
  730.    o   Debian-1.2.x, a.k.a. stable: A copy of the current release
  731.        with the updates applied.  The minor number is changed whenever new
  732.        updates are added.
  733.    o   non-free:  This directory contains packages whose distribution is
  734.        restricted in a way which requires that distributors take careful
  735.        account of the specified copyright requirements. For example, some
  736.        packages have licenses which prohibit commercial distribution.
  737.        Others can be redistributed but are in fact shareware and not
  738.        freeware.  The licenses of each of these packages must be
  739.        studied, and possibly negotiated, before the packages are
  740.        included in any redistribution (e.g., in a CD-ROM).
  741.    o   contrib: This directory contains packages which are freely
  742.        distributable, but do not meet the policy requirements for
  743.        distribution by the Debian project for some reason, e.g., the
  744.        packages have some unusual restriction on modification by other
  745.        users, or are only available in binary form.  For such
  746.        packages, the project cannot given the user any means to assure
  747.        that they are free of Trojan horses, and cannot port them to
  748.        other architectures.
  749.        Binary-only packages which are not freely redistributable are
  750.        placed in the non-free directory.
  751.  
  752. Supplementary directories:
  753.  
  754.    o   tools: DOS utilities for creating boot disks, partitioning your
  755.        disk drive, compressing/decompressing files, and booting Linux.
  756.    o   upgrades: Files needed for upgrading a debian-0.93 system (based
  757.        on a.out binary format files) to Debian-1.1 (or later, based on
  758.        ELF binary files).  Included are instructions for upgrading
  759.        (either manually using dpkg, or more automatically, using
  760.        dselect), along with a copy of the particular version of the
  761.        package management tool, dpkg that must be used in a.out
  762.        systems to start the upgrade, and a list of files that will be
  763.        needed in order to do the upgrade.
  764.    o   doc: Documentation, instructions on how to submit bug reports.
  765.    o   debian-lists: Archives of the Debian mailing lists.
  766.  
  767. Of particular interest to developers:
  768.  
  769.    o   development: A snapshot of the current development system.  Users
  770.        are welcome to use and test these packages, but are warned
  771.        about their state of readiness.
  772.    o   project/experimental/: This directory contains packages and tools
  773.        which are being developed specifically for the Debian project,
  774.        and are still in the testing stage.  Users are welcome to use
  775.        and test these packages, but warned about their state of
  776.        readiness.
  777.    o   private/project/Incoming/: Packages that have been uploaded by
  778.        developers, and which are awaiting placement in the directory
  779.        hierarchy by the distribution maintainer.
  780.    o   indices/:  Various lists, including the Packages-Master file.
  781.  
  782.  
  783. 5.7.2 Sub-directories
  784.  
  785. Within each of the major directory trees (stable, non-free, contrib,
  786. and development, but not project/experimental), which is too small to
  787. subdivide), the binary packages reside in sub-directories whose names
  788. indicate the chip architecture for which they were compiled:
  789.  
  790. o  binary, which is normally a link to binary-i386.
  791. o  binary-all, for packages which are architecture-independent.  These
  792.    include, for example, Perl scripts.
  793. o  binary-i386, for packages which execute on 80x86 machines.
  794. o  binary-m68k, for packages which execute on machines based on one of
  795.    the Motorola 680x0 processors.  Currently this is done mainly for
  796.    Atari and Amiga computers, and also for some VME based industry
  797.    standard boards.
  798.    There is no port of Linux to the old m68k based Macintoshes,
  799.    because Apple did not supply the needed hardware information.
  800. o  binary-sparc, for packages which execute on Sun Sparcstations.
  801. o  binary-alpha, for packages which execute on DEC Alpha machines.
  802.  
  803.  
  804. 5.8.  Is source code included with the system?
  805.  
  806. Source code is included for everything in the Debian system. Most of
  807. the license terms of programs in the system require that source code
  808. be distributed along with the programs, or that an offer to provide
  809. the source code accompany the programs.
  810.  
  811. Source code may or may not be available for packages in the contrib
  812. and non-free directories, which are not formally part of the Debian
  813. system.
  814.  
  815.  
  816. 5.9.  How can I check that I am using a Debian system?
  817.  
  818. The existence of the program dpkg shows that you should be able to
  819. install Debian packages on your system.
  820.  
  821. In order to make sure that your system has been installed from the
  822. real Debian base disks check for the existence of /etc/debian_version.
  823.  
  824.  
  825. 5.10.  How can I tell what version of the Debian system I am using?
  826.  
  827. There is a file, /etc/debian_version, which contains a single one-line
  828. entry giving the version number of the release, as defined by the
  829. package base.
  830.  
  831. Users should be aware, however, that the Debian system consists of
  832. many parts, each of which can be updated (almost) independently.  Each
  833. Debian release contains well defined and unchanging contents.  Updates
  834. are separately available.  For a one-line description of the
  835. installation status of package foo, use the command dpkg --list foo.
  836. (With no arguments, this command prints out versions of all installed
  837. packages.)
  838.  
  839. For a more verbose description, use dpkg --status foo.
  840.  
  841.  
  842. 5.11.  How does Debian support non-English languages?
  843.  
  844. o  Debian GNU/Linux is distributed with keymaps for nearly two dozen
  845.    keyboards, and with utilities (in the kbd package) to install,
  846.    view, and modify the tables. The installation prompts the user to
  847.    specify the keyboard he will use.
  848.  
  849. o  Support for French-, German-, Italian- and Spanish-language manual
  850.    pages is provided through the manpages-fr, manpages-de, manpages-it
  851.    and manpages-es packages.  To access an NLS manual page, the user
  852.    must set LC_MESSAGES to the appropriate string.  In the case of the
  853.    German-language manual pages, LC_MESSAGES must be set to 'de_DE'.
  854.    The man program will then search for German manual pages under
  855.    /usr/man/de_DE/.
  856.  
  857. 5.12.  What about the US export regulation limitations?
  858.  
  859. US laws place restrictions on the export of defense articles, which
  860. includes some types of cryptographic software. PGP and ssh fall into
  861. this category.
  862.  
  863. To prevent anyone from taking unnecessary legal risks, certain Debian
  864. GNU/Linux packages are only available from a non-US site 
  865. ( ftp://os.inf.tu-dresden.de:/pub/debian-non-US/ ) , there is a list of
  866. mirror sites 
  867. ( ftp://os.inf.tu-dresden.de/pub/debian-non-US/README.mirrors )
  868.  
  869.  
  870.  
  871. 6.  Basics of the Debian Package Management System
  872.  
  873.  
  874. 6.1.  What is a Debian package?
  875.  
  876. Packages generally contain all of the files necessary to implement a
  877. set of related commands or features.  There are two types of Debian
  878. packages:
  879.  
  880. o  Binary packages, which contain executables, configuration files,
  881.    man/info pages, copyright information, and other documentation.
  882.    These packages are distributed in a Debian-specific archive format
  883.    (6.2); they are usually distinguished by having a '.deb' file
  884.    extension.  Binary packages can be unpacked using the Debian
  885.    utility dpkg; details are given in its manual page.
  886.  
  887. o  Source packages, which consist of a .dsc file describing the
  888.    source package (including the names of the following files), a
  889.    .orig.tar.gz file that contains the original unmodified source in
  890.    gzip-compressed tar format and usually a .diff.gz file that
  891.    contains the Debian-specific changes to the original source.  The
  892.    utility dpkg-source packs and unpacks Debian source archives;
  893.    details are   provided in its manual page.
  894.  
  895. Installation of software by the package system uses dependencies which
  896. are carefully designed by the package maintainers.  These dependencies
  897. are documented in the control file associated with each package.  For
  898. example, the package containing the GNU C compiler (gcc) depends on
  899. the package binutils which includes the linker and assembler.  If a
  900. user attempts to install gcc without having first installed binutils,
  901. Debian's package system will send an error message that it also needs
  902. binutils, and will install gcc only if the user agrees to install
  903. binutils first.  (However, this facility can be overridden by the
  904. insistent user.)  See more details on package dependencies (6.9)
  905. below.
  906.  
  907. Debian's packaging tools can be used to:
  908. o  manipulate and manage packages or parts of packages,
  909. o  aid the user in the break-up of packages that must be transmitted
  910.    through a limited-size medium such as floppy disks,
  911. o  aid developers in the construction of package archives, and
  912. o  aid users in the installation of packages which reside on a remote FTP
  913.    site.
  914.  
  915.  
  916. 6.2.  What is the format of a Debian binary package?
  917.  
  918. A Debian package, or a Debian archive file, contains the executable
  919. files, libraries, and documentation associated with a particular suite
  920. of program or set of related programs.  Normally, a Debian archive
  921. file has a filename that ends in .deb.
  922.  
  923. The internals of this Debian binary packages format are described in
  924. the deb(5) manual page. This internal format is subject to change,
  925. therefore always use dpkg-deb(8) for manipulating .deb files.
  926.  
  927. 6.3.  Why are Debian package file names so long?
  928.  
  929. The Debian binary package file names conform to the following
  930. convention: foo_VersionNumber-DebianRevisionNumber.deb
  931.  
  932. Note that foo is supposed to be the package name. As a check, one can
  933. learn the package name associated with a particular Debian archive
  934. file (.deb file) in one of these ways:
  935.  
  936. o  inspect the Packages file in the directory where it was stored in a
  937.    Debian FTP archive site.  This file contains a stanza describing
  938.    each package; the first field in each stanza is the formal Package Name.
  939. o  use the command dpkg --info foo_VVV-RRR.deb.  This sends a message to
  940.    STDOUT which gives, among other things, the Package Name
  941.    corresponding to the archive file being unpacked.
  942.  
  943. The VVV component is the version number specified by the upstream
  944. developer.  There are no standards in place here, so the version
  945. number may have formats as different as 960428 and 2.7.2.l.3.
  946.  
  947. The RRR component is the Debian revision number, and is specified by
  948. the Debian developer (or an individual user if he chooses to build the
  949. package himself).  This number corresponds to the revision level of
  950. the Debian package (which includes the Debian-specific Makefile,
  951. called debian/rules, as well as the Debian control file, usually
  952. called debian/control).  Thus, a new revision level usually signifies
  953. changes in the Debian Makefile, the Debian control file, the
  954. installation or removal scripts, or in the configuration files used
  955. with the package.
  956.  
  957.  
  958. 6.4.  What is a Debian control file?
  959.  
  960. Specifics regarding the contents of a Debian control file are provided
  961. in the dpkg programmer's manual (
  962. ftp://ftp.debian.org/debian/doc/package-developer/programmer.ps.gz ) .
  963. Briefly, a sample control file is shown below for the Debian package
  964. hello:
  965.  
  966.  
  967.    Package: hello
  968.    Version: 1.3-13
  969.    Architecture: i386
  970.    Depends: libc5 (>= 5.2.18)
  971.    Installed-Size: 31
  972.    Maintainer: Ian Jackson <ian@chiark.greenend.org.uk>
  973.    Description: The classic greeting, and a good example
  974.     The GNU hello program produces a familiar, friendly greeting.  It
  975.     allows nonprogrammers to use a classic computer science tool which
  976.     would otherwise be unavailable to them.
  977.     .
  978.     Seriously, though: this is an example of how to do a Debian
  979.    package.
  980.     It is the Debian version of the GNU Project's `hello world' program
  981.     (which is itself an example for the GNU Project).
  982.  
  983.  
  984. The Package field gives the package name.  This is the name by which
  985. the package can be manipulated by the package tools, and usually
  986. similar to but not necessarily the same as the first component string
  987. in the Debian archive file name.
  988.  
  989. The version field gives both the upstream developer's version number
  990. and (in the last component) the revision level of the Debian package
  991. of this program as explained in (6.3).
  992.  
  993. The Architecture field specifies the chip for which this particular
  994. binary was compiled.
  995.  
  996. The Depends field gives a list of packages that have to be installed
  997. in order to install this package successfully.
  998.  
  999. The Installed-Size indicates how much disk space the installed package
  1000. will consume. This is intended to be used by installation front-ends
  1001. in order to show whether there is enough disk space available to
  1002. install the program .
  1003.  
  1004. The Maintainer field gives the e-mail address of the person who is
  1005. currently responsible for maintaining this package.
  1006.  
  1007. The Description field gives a brief summary of the package's features.
  1008.  
  1009.  
  1010. 6.5.  What is a Debian conffile?
  1011.  
  1012. Conffiles are listings of configuration files, usually placed in /etc,
  1013. that the package management system will not overwrite when a package
  1014. is upgraded. This ensures that local values for the contents of these
  1015. files will be preserved, and is a critical feature enabling the
  1016. in-place upgrade of packages on a running system.
  1017.  
  1018. To determine exactly which files are preserved during an upgrade,
  1019. run dpkg --status package.
  1020.  
  1021.  
  1022. 6.6.  What is a Debian preinst, postinst, prerm, and postrm script?
  1023.  
  1024. These files are executable scripts which are automatically run before
  1025. or after a package is installed. Along with a file named control, all
  1026. of these files are part of the control section of a Debian archive
  1027. file. The individual files are:
  1028.  
  1029. preinst    This script executes before that package will be unpacked from
  1030.    its Debian archive (.deb) file. Many 'preinst' scripts stop
  1031.    services for packages which are being upgraded until their
  1032.    installation or upgrade is completed (following the successful
  1033.    execution of the 'postinst' script).
  1034.  
  1035. postinst    This script typically completes any required configuration
  1036.    of the package foo once foo has been unpacked from its Debian
  1037.    archive (.deb) file. Often, 'postinst' scripts ask the user for
  1038.    input, and/or warn the user that if he accepts default values, he
  1039.    should remember to go back and re-configure that package as the
  1040.    situation warrants.  Many 'postinst' scripts then execute any
  1041.    commands necessary to start or restart a service once a new package
  1042.    has been installed or upgraded.  It is a good idea to check the
  1043.    contents of the 'postinst' script for any configuration advice,
  1044.    when trying out a package for the first time.
  1045.  
  1046. prerm    This script typically stops any daemons which are associated with
  1047.    a package.  It is executed before the removal of files associated
  1048.    with the package.
  1049.  
  1050. postrm    This script typically modifies links or other files associated
  1051.    with foo. (See notes on Virtual packages (6.8).)
  1052.  
  1053. Currently all of the control files can be found in /var/lib/dpkg/info.
  1054. The files relevant to package foo begin with the name foo and have
  1055. file extensions of preinst, postinst, etc., as appropriate.  The file
  1056. foo.list in that directory lists all of the files that were installed
  1057. with the package foo. (Note that the location of these files is a dpkg
  1058. internal; you should not rely on it.)
  1059.  
  1060.  
  1061. 6.7.  What is a Required/Important/Standard/Optional/Extra package?
  1062.  
  1063. Each Debian package is assigned a priority by the distribution maintainers,
  1064. as an aid to the package management system.  The priorities are:
  1065.  
  1066. o  Required packages are necessary for the proper functioning of
  1067.    the system.  This inludes all tools that are necessary to repair
  1068.    system defects.  You must not remove these packages or your system
  1069.    may become totally broken and you may probably not even be able to
  1070.    use dpkg to put things back.  Systems with only the Required
  1071.    packages are probably unusable, but they do have enough
  1072.    functionality to allow the sysadmin to boot and install more
  1073.    software.
  1074.  
  1075. o  Important packages should be found on any Unix-like system.  Other
  1076.    packages which the system will not run well or be usable without
  1077.    will be here. This does NOT include Emacs or X11 or TeX or any
  1078.    other large applications.  These packages only constitute the bare
  1079.    infrastructure.
  1080.  
  1081. o  Standard packages are standard on any Linux system, including a
  1082.    reasonably small but not too limited character-mode system. This is
  1083.    what will install by default if users do not select anything
  1084.    else. It does not include many large applications, but it does
  1085.    include Emacs (this is more of a piece of infrastructure than an
  1086.    application) and a reasonable subset of TeX and LaTeX (if this
  1087.    turns out to be possible without X).
  1088.  
  1089. o  Optional packages include all those that you might reasonably want
  1090.    to install if you did not know what it was or do not have
  1091.    specialized requirements.  This includes X11, a full TeX
  1092.    distribution, and lots of applications.
  1093. o  Extra packages conflict with others with higher priorities, or are
  1094.    only likely to be useful if you already know what they are or have
  1095.    specialized requirements.
  1096.  
  1097.  
  1098. 6.8.  What is a Virtual Package?
  1099.  
  1100. A virtual package is a generic name that applies to any one of a group
  1101. of packages, all of which provide similar basic functionality.  For
  1102. example, both the tin and trn programs are both news readers, and
  1103. should therefore satisfy any dependency of a program that required a
  1104. news reader on a system in order to work or to be useful. They are
  1105. therefore both said to provide the virtual package called news-reader.
  1106.  
  1107. Similarly, smail and sendmail both provide the functionality of a mail
  1108. transport agent.  They are therefore said to provide the virtual
  1109. package, mail transport agent.  If either one is installed, then any
  1110. program depending on the installation of a mail-transport-agent will
  1111. be satisfied by the existence of this virtual package.
  1112.  
  1113. Debian provides a mechanism so that, if more than one package which
  1114. provide the same virtual package is installed on a system, then system
  1115. administrators can set one as the preferred package.  The relevant
  1116. command is update-alternatives, and is described further in the
  1117. section on diversions (11.8).
  1118.  
  1119.  
  1120. 6.9.  What is meant by saying that a file
  1121.       Depends/Recommends/Suggests/Conflicts/Replaces/Provides another
  1122.       package ?
  1123.  
  1124. The Debian package system has a range of package dependencies which
  1125. are designed to indicate (in a single flag) the level at which Program
  1126. A can operate independently of the existence of Program B on a given
  1127. system:
  1128.  
  1129. o  Package A depends on Package B if B absolutely must be installed in
  1130.    order to run A.  In some cases, A depends not only on B, but on a
  1131.    version of B.  In this case, the version dependency is usually a
  1132.    lower limit, in the sense that A depends on any version of B more
  1133.    recent than some specified version.
  1134.  
  1135. o  Package A recommends Package B, if the package maintainer judges
  1136.    that most users would not want A without also having the
  1137.    functionality provided by B.
  1138.  
  1139. o  Package A suggests Package B if B contains files that are related to
  1140.    (and usually enhance) the functionality of A.
  1141.  
  1142. o  Package A conflicts with Package B when A will not operate if B is
  1143.    installed on the system.  Most often, conflicts are cases where A
  1144.    contains files which are an improvement over those in B. Conflicts
  1145.    are often combined with replaces.
  1146.  
  1147. o  Package A replaces Package B when files installed by B are removed
  1148.    and (in some cases) over-written by files in A.
  1149.  
  1150. o  Package A provides Package B when all of the files and functionality
  1151.    of B are incorporated into A.  This mechanism provides a way for
  1152.    users with constrained disk space to get only that part of package
  1153.    A which   they really need.
  1154.  
  1155. More detailed information on the use of these terms can be found in
  1156. the Debian programmer's manual.
  1157.  
  1158.  
  1159. 6.10.  What is meant by Pre-Depends?
  1160.  
  1161. Pre-Depends is a special dependency.
  1162.  
  1163. In the case of most packages, dpkg will unpack its archive file (i.e.,
  1164. its .deb file) independently of whether or not the files on which it
  1165. depends exist on the system.  Simplistically, unpacking means that
  1166. dpkg will extract the files from the archive file that were meant to
  1167. be installed on your filesystem, and put them in place.  If those
  1168. packages depend on the existence of some other packages on your
  1169. system, dpkg will refuse to complete the installation by executing its
  1170. configure action until the other packages are installed.
  1171.  
  1172. However, for some packages, dpkg will refuse even to unpack them until
  1173. certain dependencies are resolved.  Such packages are said to
  1174. Pre-depend on the presence of some other packages. The Debian project
  1175. provided this mechanism to support the safe upgrading of systems from
  1176. a.out format to ELF format, where the order in which packages were
  1177. unpacked was critical.
  1178.  
  1179. More detailed information on the use of these terms can be found in
  1180. the Debian programmer's manual.
  1181.  
  1182. 6.11.  What is meant by unknown/install/remove/purge/hold in the package
  1183.        status?
  1184.  
  1185. These want flags tell what the user wanted to do with a package (as
  1186. indicated either by the user's actions in the Select section of
  1187. dselect, or by the user's direct invocations of dpkg).  Their meanings
  1188. are:
  1189.  
  1190. o  unknown  - the user has not said whether he wants the package
  1191. o  install  - the user wants the package installed or upgraded
  1192. o  remove   - the user wants the package removed, but does not want to
  1193.    remove any existing configuration files.
  1194. o  purge    - the user wants the package to be removed completely,
  1195.    including configuration files.
  1196. o  hold     - the user wants this package not to be processed, i.e., he
  1197.    wants to keep the current version with the current status whatever
  1198.    that is.
  1199.  
  1200. 6.12.  Where will I get detailed info on creating Debian packages? 
  1201.  
  1202. See the dpkg programmer's manual and the Debian policy manual (12.1)
  1203.  
  1204.  
  1205.  
  1206. 7.  The Debian Package Management Tools
  1207.  
  1208.  
  1209. 7.1.  What program(s) does Debian provide for managing its packages?
  1210.  
  1211.  
  1212. 7.1.1 dselect
  1213.  
  1214. This program is a menu-driven interface to the Debian package
  1215. management system.  It is particularly useful for first-time
  1216. installations and large-scale upgrades.  dselect can
  1217.  
  1218. o  guide the user as he/she chooses among packages to install or
  1219.    remove, ensuring that no packages are installed that conflict with
  1220.    one another, and that all packages required to make each package
  1221.    work properly are installed;
  1222. o  warn the user about inconsistencies or incompatibilities in their
  1223.    selections;
  1224. o  determine the order in which the packages must be installed;
  1225. o  automatically perform the installation or removal; and
  1226. o  guide the user through whatever configuration process are required for
  1227.    each package.
  1228.  
  1229. dselect begins by presenting the user with a menu of 7 items, each of
  1230. which is a specific action.  The user can select one of the actions by
  1231. using the arrow keys to move the highlighter bar, then pressing the
  1232. ENTER key to select the highlighted action.
  1233.  
  1234. What the user sees next depends on the action he selected.  If he
  1235. selects any option but Access or Select, then dselect will simply
  1236. proceed to execute the specified action: e.g., if the user selected
  1237. the action Remove, then dselect would proceed to remove all of the
  1238. files selected for removal when the user last chose the Select action.
  1239.  
  1240. Both the Access menu item and the Select menu item lead to additional
  1241. menus.  In both cases, the menus are presented as split screens; the
  1242. top screen gives a scrollable list of choices, while the bottom screen
  1243. gives a brief explanation (info) for each choice.
  1244.  
  1245. Extensive on-line help is available: Use the '?' key to get to a help
  1246. screen, then use the '.' key to see each of the several pages of help
  1247. one screen at a time.
  1248.  
  1249. Some users find it easier to navigate dselect when it is colorized.
  1250. To see color screens in dselect, be sure that you have executed:
  1251. export TERM=linux before invoking dselect.
  1252.  
  1253. The order in which the actions are presented in the first dselect menu
  1254. represents the order in which a user would normally choose dselect to
  1255. install packages.  However, a user can pick any of the main menu
  1256. choices as often as needed (including not at all, depending on what
  1257. one wants to do).
  1258.  
  1259. o  Begin by choosing an Access Method.  This is the method by which the
  1260.    user plans on accessing Debian packages; e.g., some users have
  1261.    Debian packages available on CD-ROM, while others plan to fetch
  1262.    them using anonymous ftp.  The selected Access Method is stored
  1263.    after dselect exits, so if it does not change, then this option
  1264.    need not be invoked again.
  1265.  
  1266. o  Then Update the list of available packages.  To do this, dselect
  1267.    reads the file Packages.gz which should be included in the top
  1268.    level of the directory where the Debian packages to be installed
  1269.    are stored.  (But if it is not there, dselect will offer to make it
  1270.    for you.)  
  1271.  
  1272. o  Select specific packages for installation on his system.
  1273.    After choosing this menu item, the user is first presented with a
  1274.    full screen of help; he can exit it (and any help screen) by
  1275.    pressing the SPACEBAR.  Better (for first time users) is to read
  1276.    all of the help screen, but repeatedly pressing the '.' key to
  1277.    fetch one page of help after another.  Once the user exits the Help
  1278.    screen, he sees the split-screen menu for choosing packages to
  1279.    install (or remove). The top screen is a relatively narrow window
  1280.    into the list of Debian's nearly 700 packages; the bottom screen is
  1281.    a window into info about the package or group of packages which are
  1282.    highlighted in the top.
  1283.  
  1284.    First-time users are often confused by these aspects of the Select
  1285.    screen:
  1286.  
  1287.    -  Deselecting a  packages: One can specify which packages should be
  1288.       removed (previously called deselecting an item) by highlighting
  1289.       a package name or the label for a group of packages (e.g., All) and
  1290.       then pressing either:
  1291.       *  the '-' key.  This removes most of the files associated with the
  1292.          package, but preserves the files listed as configuration files
  1293.          (6.5) and other configuration information.
  1294.       *  the '_' key.  This removes every file that is part of the
  1295.          package.
  1296.  
  1297.       Note that if you deselect All Packages your system will be reduced
  1298.       to the initial installed base packages.  This is probably what
  1299.       you wanted.
  1300.  
  1301.    -  Putting a package on hold (by pressing '='): This effectively
  1302.       tells dselect not to upgrade a package even if the version
  1303.       currently installed on your system is not as recent as the
  1304.       version that is available in the Debian repository you are using
  1305.       (this was specified when you set the Access Method).  (The
  1306.       version that is available in the repository is given in the file
  1307.       Packages.gz that is read when the Update menu choice is
  1308.       activated.)
  1309.       Putting a package on unhold (by pressing ':'): This is the
  1310.       default, and means that the packages will be upgraded if a newer
  1311.       version is available.
  1312.  
  1313.    -  The order in which the packages are presented: The default order
  1314.       is to present packages by Priority; within each priority,
  1315.       packages are presented in order of the directory (a.k.a.
  1316.       section) of the archive in which they are stored.  Given this
  1317.       sort order, some packages in section A (say) may be presented
  1318.       first, followed by some packages in section B, followed by more
  1319.       packages (of lower priority) in section A. Users can select a
  1320.       different presentation order by using the 'o' key to cycle
  1321.       between various options for sorting the packages.
  1322.    -  Meanings of the labels at the top of the screen: The labels at
  1323.       the top can be expanded by using the 'v' (verbose) key.  This
  1324.       action pushes much of the text that formerly fit onto the
  1325.       display off to the right.  To see it, press the right arrow; to
  1326.       scroll back to the left, press the left arrow.
  1327.    -  What to do with a package conflict/dependency screen: If a user
  1328.       selects (for installation or removal) a package, e.g., foo.deb
  1329.       that depends on or recommends another package, e.g., blurf.deb,
  1330.       then dselect will place the user in a sub-screen of the main
  1331.       selection screen. This process begins by presenting the user
  1332.       with a full-screen Help file, which can be escaped by pressing
  1333.       SPACEBAR.
  1334.  
  1335.       Thereafter, the user can choose among the related packages,
  1336.       accepting the suggested actions (to install or not), or
  1337.       rejecting them.  To do the latter, press SHIFT-D; to return to
  1338.       the former, press SHIFT-U.  In any case, the user can save his
  1339.       selections and return to the main selection screen by pressing
  1340.       SHIFT-Q.
  1341.  
  1342. o  Users returning to the main menu can then select the Install menu
  1343.    item to unpack and configure the selected packages.  Alternatively,
  1344.    users wishing to remove files can choose the Remove menu item.  At
  1345.    any point, users can choose Quit to exit dselect; users' selections
  1346.    are preserved by dselect.
  1347.  
  1348.  
  1349. 7.1.2 dpkg
  1350.  
  1351. This is the main package management program. dpkg can be invoked with
  1352. many options.  Some common uses are:
  1353.  
  1354. o  Find out all the options:  dpkg --help.
  1355.  
  1356. o  Print out the control file (and other information) for a specified
  1357.    package: dpkg --info foo_VVV-RRR.deb
  1358.  
  1359. o  Install a package (including unpacking and configuring) onto the
  1360.    file system of the hard disk: dpkg --install foo_VVV-RRR.deb.
  1361.  
  1362. o  Unpack (but do not configure) a Debian archive into the file system
  1363.    of the hard disk: dpkg --unpack foo_VVV-RRR.deb.  Note that this
  1364.    operation does not necessarily leave the package in a usable state;
  1365.    some files may need further customization to run properly. This
  1366.    command removes any already-installed version of the program and
  1367.    runs the preinst (6.6) script associated with the package.
  1368.  
  1369. o  Configure a package that already has been unpacked: dpkg --configure
  1370.    foo.  Among other things, this action runs the postinst (6.6)
  1371.    script associated with the package.  It also updates the files
  1372.    listed in the conffiles for this package. Notice that the
  1373.    'configure' operation takes as its argument a package name (e.g.,
  1374.    foo), not the name of a Debian archive file (e.g.,
  1375.    foo_VVV-RRR.deb).
  1376.  
  1377. o  Extract a single file named blurf (or a group of files named blurf*
  1378.    from a Debian archive: dpkg --fsys-tarfile foo_VVV-RRR.deb | tar
  1379.    -xf - blurf*
  1380.  
  1381. o  Remove a package (but not its configuration files): dpkg --remove
  1382.    foo.
  1383.  
  1384. o  Remove a package (including its configuration files): dpkg --purge
  1385.    foo.
  1386.  
  1387. o  List the installation status of packages containing the string foo*:
  1388.    dpkg --list 'foo*'.
  1389.  
  1390.  
  1391. 7.1.3 dpkg-deb
  1392.  
  1393. This program manipulates Debian archive(.deb) files. Some common uses
  1394. are:
  1395.  
  1396. o  Find out all the options:  dpkg-deb --help.
  1397.  
  1398. o  Determine what files are contained in a Debian archive file:
  1399.    dpkg-deb --contents foo_VVV-RRR.deb)
  1400.  
  1401. o  Extract the files contained in a named Debian archive into a user
  1402.    specified directory: dpkg-deb --extract foo_VVV-RRR.deb tmp
  1403.    extracts each of the files in foo_VVV-RRR.deb into the directory
  1404.    tmp/.  This is convenient for examining the contents of a package
  1405.    in a localized directory, without installing the package into the
  1406.    root file system.
  1407.  
  1408. More information is given in the manual page dpkg-deb(1).
  1409.  
  1410.  
  1411. 7.1.4 dpkg-split
  1412.  
  1413. This program splits large package into smaller files (e.g., for
  1414. writing onto a set of floppy disks), and can also be used to merge a
  1415. set of split files back into a single file. It can only be used on a
  1416. Debian system, since it calls the program dpkg-deb to parse the debian
  1417. package file into its component records. For example, to split a big
  1418. .deb file into N parts,
  1419.  
  1420. o  Execute the command dpkg-split --split foo.deb. This will produce N
  1421.    files each of approximately 460 KBytes long in the current
  1422.    directory.
  1423.  
  1424. o  Copy those N files to floppy disks.
  1425.  
  1426. o  Copy the contents of the floppy disks onto the hard disk of your
  1427.    choice on the other machine.
  1428.  
  1429. o  Join those part-files together using dpkg-split --join "foo*".
  1430.  
  1431.  
  1432. 7.2.  Debian claims to be able to update a running program; how is this
  1433.       accomplished?
  1434.  
  1435. Debian GNU/Linux provides a program called the start-stop-daemon which
  1436. is used by installation scripts to start daemons at boot time or to
  1437. stop daemons when the kernel runlevel is changed (e.g., from
  1438. multi-user to single-user or to halt). The start-stop-daemon command
  1439. is also used when a new package containing a daemon is installed, to
  1440. stop running daemons, and restart them as necessary, e.g., when a
  1441. package is being installed with an updated configuration script.
  1442.  
  1443. 7.3.  How can I tell what packages are already installed on a Debian
  1444.       system?
  1445.  
  1446. To learn the status of all the packages installed on a Debian system,
  1447. execute the command dpkg --list.  This prints out a one-line summary
  1448. for each package, giving a 2-letter status symbol, the package name,
  1449. the version which is installed, and a very brief description.
  1450.  
  1451. To learn the status of packages whose names match the string any
  1452. pattern beginning with foo by executing the command dpkg --list 'foo*'
  1453. To get a more verbose report for a particular package, execute the
  1454. command: dpkg --status foo.
  1455.  
  1456.  
  1457. 7.4.  How can I find out what package produced a particular file?
  1458.  
  1459. To identify the package that produced the file named foo execute either:
  1460.  
  1461. o  dpkg --search filename.
  1462.  
  1463.    This searches for filename in installed packages.  (This is
  1464.    (currently) equivalent to searching all of the files having the
  1465.    file extension of .list in the directory /var/lib/dpkg/info/.)
  1466.  
  1467. o  grep foo Contents, or zgrep foo Contents.gz.
  1468.  
  1469.    This searches for files which contain the substring foo in their
  1470.    full path names.  The files Contents and Contents.gz reside in the
  1471.    major package directories (stable, non-free, contrib, development)
  1472.    at a Debian FTP site.  A Contents file refers only to the packages
  1473.    in the subdirectory tree where it resides.  Therefore, a user might
  1474.    have to search more than one Contents files to find the package
  1475.    containing the file foo.
  1476.  
  1477.    This method has the advantage over dpkg --search in that it will
  1478.    find files in packages that are not currently installed on your
  1479.    system.
  1480.  
  1481.  
  1482. 8.  Getting and Installing Debian GNU/Linux
  1483.  
  1484.  
  1485. 8.1.  Where/how can I get the Debian installation disks?
  1486.  
  1487. You can get the installation disks by downloading the appropriate
  1488. files from the Debian FTP site: ( ftp://ftp.debian.org/debian/ ) and
  1489. its mirrors ( http://www.debian.org/ftplist.html ) .  From the
  1490. directory stable/disks-i386/current/, you will need:
  1491.  
  1492. The Installation Guide.     This document gives detailed installation
  1493.    instructions.  It is available in the files install.txt (ASCII) and
  1494.    install.html (HTML).
  1495.  
  1496. The Rescue Disk.    This disk is the boot disk and contains a minimal
  1497.    file system and the installation program.
  1498.  
  1499.    If your system can boot from a 1.44 MByte floppy disk drive,
  1500.    download the file called resq1440.bin.  On the other hand, if your
  1501.    system can boot only from a 1.2 MByte floppy disk drive, download
  1502.    the file called resq1200.bin.  (There seems to be no resq1200.bin
  1503.    file available right now.)
  1504.  
  1505. The Device Driver Disk.    This disk contains many device drivers that can
  1506.    be loaded into the Linux kernel.
  1507.  
  1508.    If your system has a 1.44 MByte floppy disk drive, you can use the
  1509.    file called drv1440.bin.  On the other hand, if your system only
  1510.    has a 1.2 MByte floppy disk drive, you have to download the file
  1511.    called drv1200.bin.
  1512.  
  1513. The Base  Disks.   These disks contain the software that is necessary to
  1514.    have a bare-bones system.
  1515.  
  1516.    If your system has a 1.44 MByte floppy disk drive, you can use
  1517.    the files called base14-1.bin, base14-2.bin, base14-3.bin and
  1518.    base14-4.bin.  On the other hand, if your system only has a 1.2
  1519.    MByte floppy disk drive, you have to download the files called
  1520.    base12-1.bin, base12-2.bin, base12-3.bin and base12-4.bin.
  1521.  
  1522. Once you have downloaded these files, transfer them to a disk as
  1523. described in the Installation Guide.
  1524.  
  1525. You may, of course, get these disks from a friend. You can make as
  1526. many copies as you want.  Debian is freely redistributable, provided
  1527. you follow a few simple rules.  For more information, see The GNU
  1528. General Public License (
  1529. http://www.gnu.ai.mit.edu/copyleft/copyleft.html ) .
  1530.  
  1531. If you cannot get copies of the installation disks from one of the
  1532. Debian FTP sites or from a friend, then make a request to one of the
  1533. Debian mailing lists.  See the debian-user mailing list (12.2). The
  1534. likelihood is very high that someone will be willing to help.
  1535.  
  1536.  
  1537. 8.2.  OK, I have got the disks; how do I install the system?
  1538.  
  1539. Complete, detailed instructions are given in the Installation Guide
  1540. that you downloaded above. Follow these instructions!
  1541.  
  1542.  
  1543. 8.3.  How (and on what media) can I get the Debian packages?
  1544.  
  1545. Once the base system has been installed, you can complete the
  1546. installation of your Debian GNU/Linux system by accessing packages on
  1547. any (or several) of these media:
  1548.  
  1549. o  a CD-ROM (8.4) containing Debian.
  1550. o  a remote NFS (8.5) server.
  1551. o  a partition of your hard disk (8.7).
  1552. o  a collection of floppy disks (8.6).
  1553. o  a remote system accessible by anonymous ftp (8.8).
  1554.  
  1555. In each case, you can use either
  1556.  
  1557. o  dselect (7.1.1), Debian's user-interface program to its package
  1558.    system.  (This will help you mount the device containing the Debian
  1559.    package files (if necessary), and then guide you through the
  1560.    selection of packages and their installation on your system.)  Or,
  1561.  
  1562. o  use dpkg (7.1.2) directly to control the installation of individual
  1563.    packages.  Debian gurus quizzically refer to this approach as
  1564.    installing packages by hand.
  1565.  
  1566. 8.4.  How do I get and install the Debian from CD-ROM?
  1567.  
  1568. Linux supports the ISO 9660 (CD-ROM) file system with Rock Ridge
  1569. extensions (formerly known as High Sierra).  Several vendors provide
  1570. Debian in this format; these vendors have directly supported the
  1571. Debian project:
  1572.  
  1573. o  iConnect Corp.: i-Connect.Net provides the master FTP system
  1574.    used by Debian developers, and its network connection and system
  1575.    administration.  They provide our 168 developers with free accounts
  1576.    on a system that is exclusively for our use, and they run our DNS
  1577.    domain.  They also maintain several Debian packages.  Use the
  1578.    following contact info to order their CD-ROM:
  1579.    -  WWW:  ( http://www.i-connect.net/i-connect/services/cdrom.html )
  1580.    -  E-Mail (sales): sales@i-connect.net
  1581.    -  E-Mail (help): help@i-connect.net
  1582.    -  Phone from inside the US: 1-503-641-8774
  1583.    -  Phone from outside the US: +1-503-641-8774
  1584.    -  Postal address:
  1585.  
  1586.  
  1587.                  iConnect Corp.
  1588.                  14355 SW Allen Blvd., Suite 140
  1589.                  Beaverton, OR 97005
  1590.  
  1591. o  Flexible Software: This company maintains 8 Debian packages, and
  1592.    puts a lot of manpower into supporting users on the debian-user
  1593.    mailing list and refining the system design with our
  1594.    developers. They have carefully documented the development of one
  1595.    of the two methods used to upgrade from Debian 0.93 to Debian 1.1.
  1596.  
  1597.    -  E-Mail (sales): dwarf@polaris.net
  1598.    -  Postal address:
  1599.  
  1600.  
  1601.                  Flexible Software
  1602.                  1000 McCrackin Road
  1603.                  Tallahassee, FL 32308
  1604.  
  1605.  
  1606.  
  1607. To install packages provided on a CD-ROM, you must have CD-ROM support
  1608. built into the kernel you use.  This may require a a custom
  1609. modification of the file /etc/conf.modules, or (unlikely nowadays) a
  1610. special argument on the boot command line.
  1611.  
  1612. To mount a CD-ROM under the mount point /cdrom/ (a directory which
  1613. should have been created during installation), use these commands:
  1614.  
  1615. o  mount -t iso9660 /dev/hdd /cdrom/ if the CD-ROM is an IDE drive on the
  1616.    secondary IDE controller, or
  1617. o  mount -t iso9660 /dev/scd0 /cdrom/ if the CD-ROM is a SCSI drive, or
  1618. o  mount -t iso9660 /dev/xxxxx /cdrom/ where xxxxx refers to CD-ROMs which
  1619.    are sbpcd, cdu31a, or some other proprietary (non-IDE) drive.
  1620.  
  1621.  
  1622. 8.5.  How do I get and install Debian from an NFS-mounted drive?
  1623.  
  1624. Debian packages on remote hosts can be installed via the Network File
  1625. System using a SLIP, PPP, PLIP or Ethernet connection. SLIP and PPP
  1626. require the netbase and netstd packages to be installed first.  These
  1627. packages are not part of the Debian base system, and must be obtained
  1628. by one of the other methods described in this section.
  1629.  
  1630. No special kernel configuration (other than the network drivers for
  1631. SLIP, PPP, PLIP, or one of the Ethernet cards) is necessary to access
  1632. a remote filesystem using NFS.  As with all network communication, the
  1633. appropriate ifconfig and route commands will have to be issued before
  1634. accessing a remote disk using NFS.
  1635.  
  1636. To mount a network-accessible file system using NFS (say,
  1637. /var/spool/debian/) under the local directory /usr/local/debian/,
  1638. issue the command
  1639.  
  1640. o  mount -t nfs host.fully-qualified.domain.name:/var/spool/debian/ -o
  1641.    ro,nosuid,soft /usr/local/debian/
  1642.  
  1643. To ensure that the filesystem is always accessible, the appropriate
  1644. string could be added to /etc/fstab:
  1645.  
  1646. o  rulway.leidenuniv.nl:/var/spool/ftp.pub.linux.debian/  /mnt/debian/  nfs
  1647.    ro,nosuid,soft
  1648.  
  1649. The preceding example shows the appropriate entry for the NFS site at
  1650. Leiden University, the Netherlands.  See README.mirror (
  1651. ftp://ftp.debian.org/debian/README.mirror ) for other sites providing
  1652. NFS access to their Debian mirror.
  1653.  
  1654.  
  1655. 8.6.  How can I get/install the Debian from a set of floppy disks?
  1656.  
  1657. Copy the Debian packages onto formatted floppy disks.  Either a DOS,
  1658. the native Linux ext2, or the minix format will do; one just has to
  1659. use a mount command appropriate to the floppy being used.  Using
  1660. floppy disks has these complications:
  1661.  
  1662. o  Short MS-DOS filenames: If you are trying to place Debian package
  1663.    files onto MS-DOS formatted disks, you will find that their names
  1664.    are generally too long, and do not conform to the MS-DOS 8.3
  1665.    filename limitation.  To overcome this, Debian developers make all
  1666.    of their packages available by 8.3 filenames in separate msdos
  1667.    subdirectories ( stable/msdos-i386/, non-free/msdos-i386/,
  1668.    contrib/msdos-i386/, and development/msdos-i386/).  The files in
  1669.    these subdirectories are merely symbolic links to the Debian
  1670.    archive files; they only differ from the files in the binary-i386/,
  1671.    etc. directories by having shorter file names.
  1672.  
  1673. o  Large file sizes: Some packages are larger than 1.44 MBytes,
  1674.    and will not fit onto a single floppy disk.  To solve this
  1675.    problem, use the dpkg-split (7.1.4) tool, available in the tools
  1676.    directory at ( ftp://ftp.debian.org/debian/ ) and its mirrors (
  1677.    http://www.debian.org/ftplist.html ) .
  1678.  
  1679. You must have support in the kernel for floppy disks in order to read
  1680. and write to floppy disk; most kernels come with floppy drive support
  1681. included in them.
  1682.  
  1683. To mount a floppy disk under the mount point /floppy (a directory
  1684. which should have been created during installation), use:
  1685.  
  1686. o  mount -t msdos /dev/fd0 /floppy/ if the floppy disk is in drive A: and
  1687.    has an MS-DOS filesystem,
  1688. o  mount -t msdos /dev/fd1 /floppy/ if the floppy disk is in drive B: and
  1689.    has an MS-DOS filesystem,
  1690. o  mount -t ext2 /dev/fd0 /floppy/ if the floppy disk is in drive A: and
  1691.    has an ext2 (i.e., a normal Linux) filesystem.
  1692.  
  1693.  
  1694. 8.7.  How can I get/install the Debian from my own hard disk?
  1695.  
  1696. The Debian packages can be installed from a hard disk on your system,
  1697. either IDE, EIDE, SCSI (including Jaz drives), or a drive connected
  1698. through a parallel port.
  1699.  
  1700. Kernel support must of course be available for the type of drive you
  1701. have.  The appropriate drivers are:
  1702.  
  1703. o  CONFIG_BLK_DEV_IDE for IDE or EIDE drives; most kernels include this
  1704.    driver.
  1705.  
  1706. o  CONFIG_SCSI for SCSI drives (including Jaz drives), along with one
  1707.    of the (many) drivers for your particular SCSI interface.
  1708.  
  1709. o  CONFIG_SCSI_PPA for the parallel port version of ZIP drives.
  1710.  
  1711. To start the installation invoke the program dselect, select the hard
  1712. disk access method and follow the instructions.
  1713.  
  1714. This will ask you for the device name where Debian resides. These
  1715. device names are constructed as follows:
  1716. (below X is to be substituted by the partition number (X =1,2,3, or 4))
  1717.  
  1718. o  /dev/hdaX if the disk is drive C: and has an MS-DOS filesystem,
  1719.  
  1720. o  /dev/sdaX if the disk is a SCSI drive and has the lowest SCSI ID of
  1721.    any SCSI device on your system,
  1722.  
  1723. o  /dev/sdbX if the disk is a SCSI drive and has the second lowest SCSI
  1724.    ID of any SCSI device on your system
  1725.  
  1726. o  /dev/ppa0 if the disk is a Zip drive.
  1727.  
  1728. Note that files on a disk partition having an MS-DOS filesystem must
  1729. conform to the DOS filename limitation of 8 characters plus a 3
  1730. character extension.  Files in the stable/msdos-i386/,
  1731. non-free/msdos-i386/, contrib/msdos-i386/, and development/msdos-i386/
  1732. directories conform to this limitation.
  1733.  
  1734.  
  1735. 8.8.  How can I get and install Debian directly from a remote ftp site?
  1736.  
  1737. Install the Debian tool dpkg-ftp (9.2).  This package is currently
  1738. installed in the directory development/binary-all/net at 
  1739. ( ftp://ftp.debian.org/debian/ ) and its mirrors 
  1740. ( http://www.debian.org/ftplist.html ) . For details on installing a
  1741. package, see notes on dpkg (7.1.2).
  1742.  
  1743. Then invoke the program dselect, which will call dpkg-ftp for you,
  1744. guide you through the selection of packages, then install the
  1745. packages, without every downloading the packages themselves to your
  1746. machine.  This method is designed to save the user both disk space and
  1747. time. Note that no special kernel configuration is needed to access
  1748. and install Debian packages by this method.
  1749.  
  1750. To use this service of dselect, you will need to know:
  1751.  
  1752. o  the fully qualified domain name of the anonymous ftp site you plan
  1753.    to use.
  1754.  
  1755. o  the directory which contains the files you want to install, or the
  1756.    subdirectories which contain files you want to install.  This
  1757.    directory must contain a file called Packages (or its compressed
  1758.    equivalent, Packages.gz).
  1759.  
  1760.  
  1761. 8.9.  How can I get and install Debian from a tape?
  1762.  
  1763. At present, installing packages directly from tape is not
  1764. supported. One can however, use tar, cpio, or afio to copy Debian
  1765. archive files onto a tape, then copy them onto your local disk for
  1766. installation.  In the same vein, floppy disks containing tar files
  1767. would have to be copied onto a local disk before they could be managed
  1768. with the Debian package tools.
  1769.  
  1770. 8.10.  What is the latest version of Debian?
  1771.  
  1772. Currently there are three versions of Debian:
  1773.  
  1774. o  1.2: this is stable software, and will not change.
  1775. o  1.2.x, a.k.a. stable, a.k.a ; this  is  stable software, but it  may
  1776.    change when major fixes are incorporated.
  1777. o  the development version; this  is  the  version  currently  under
  1778.    development; it is updated continuously. You can retrieve packages
  1779.    from the development archive on any Debian FTP site and use them to
  1780.    upgrade your system at any time.
  1781.  
  1782.    It is planned that this will become a new Debian release about
  1783.    three months after the last release.
  1784.  
  1785.  
  1786. 9.  Keeping Your Debian System Up To Date
  1787.  
  1788.  
  1789.  
  1790. 9.1.  How can I upgrade my Debian 0.93 (or earlier) distribution, based on
  1791.       a.out format binaries, to 1.1 (or later), based on ELF binaries?
  1792.  
  1793. The directory upgrades/ contains files needed by users upgrading from
  1794. Debian 0.93R6 to Debian 1.1 (or later).  There are two ways to
  1795. upgrade:
  1796.  
  1797. o  the manual way, installing the packages by hand. Instructions are in
  1798.    upgrade_manual.doc.  You will also need the files UpGrade, base_list,
  1799.    and dpkg-*.deb.
  1800.  
  1801. o  using dselect to upgrade all the packages en masse. Instructions are in
  1802.    upgrade_dselect.doc.  You will also need dpkg-*.deb.
  1803.  
  1804. Note that the version of dpkg in this directory has the a.out binary
  1805. format.  The versions of dpkg in the development and stable trees have
  1806. the ELF format.
  1807.  
  1808.  
  1809. 9.2.  How can I keep my Debian system current?
  1810.  
  1811. One could simply execute an anonymous ftp call to a Debian archive,
  1812. then peruse the directories until he finds the desired file, and then
  1813. fetch it, and finally install it using dpkg.  Note that dpkg will
  1814. install upgrade files in place, even on a running system. Sometimes, a
  1815. revised package will require the installation of a newly revised
  1816. version of another package, in which case the installation will fail
  1817. until/unless the other package is installed.
  1818.  
  1819. Many people find this approach much too time-consuming, since Debian
  1820. evolves so quickly---typically, a dozen or more new packages are
  1821. uploaded every week.  This number is larger just before a new major
  1822. release.  To deal with this avalanche, many people prefer to use an
  1823. automated programs.  Three different packages are available for this
  1824. purpose:
  1825.  
  1826. o  dpkg-ftp.  This is an access method for dselect. It can be invoked
  1827.    from within dselect, thereby allowing a user the ability to
  1828.    download files and install them directly in one step.  To do this,
  1829.    bring up the dselect program, choose option 0 (Choose the access
  1830.    method to use), highlight the option ftp then specify the remote
  1831.    hostname and directory. dpkg-ftp will then automatically download
  1832.    the files that are selected (either in this session of dselect or
  1833.    earlier ones).  Note that, unlike the mirror program, dpkg-ftp does
  1834.    not grab everything at a mirror site.  Rather, it downloads only
  1835.    those files which you have selected (when first starting up
  1836.    dpkg-ftp), and which need to be   updated.
  1837.  
  1838.    dpkg-ftp is available in the directory stable/binary-all/net/ on
  1839.    any Debian archive.
  1840.  
  1841. o  mirror.  This Perl script, and its (optional) manager program called
  1842.    mirror-master, can be used to fetch user-specified parts of a
  1843.    directory tree from a specified host via anonymous ftp. mirror is
  1844.    particularly useful for downloading large volumes of software.
  1845.    After the first time files have been downloaded from a site, a file
  1846.    called .mirrorinfo is stored on the local host.  Changes to the
  1847.    remote filesystem are tracked automatically by mirror, which
  1848.    compares this file to a similar file on the remote system and
  1849.    downloads only changed files.
  1850.  
  1851.    The mirror program is generally useful for updating local copies of
  1852.    remote directory trees.  The files fetched need not be Debian
  1853.    files.  (Since mirror is a Perl script, it can also run on non-Unix
  1854.    systems.)  Though the mirror program provides mechanisms for
  1855.    excluding files whose names match user-specified strings, this
  1856.    program is most useful when the objective is to download whole
  1857.    directory trees, rather than selected packages.
  1858.  
  1859.    The mirror program has been packaged for Debian, and is found in
  1860.    the directory stable/binary-all/net in the Debian FTP archive.
  1861.  
  1862. o  dftp.  This Perl script can be used to fetch user-specified Debian
  1863.    packages from a specified host.  It begins by downloading the
  1864.    Packages.gz files for the directories specified by the user (e.g.
  1865.    stable, contrib, non-free) and presents him with a list of
  1866.    packages.
  1867.  
  1868.    These are placed in various sections: new upgrades, downgrades, new
  1869.    packages, ignored upgrades, and ignored packages.  The user then
  1870.    selects the packages he wants and dftp downloads and installs them.
  1871.    This makes it very easy to have your Debian system 100% current all
  1872.    the time without downloading packages that you are not going to
  1873.    install.
  1874.  
  1875.    dftp can be used to call dselect (7.1.1), thereby providing an
  1876.    integrated way to fetch and update the Debian packages on one's
  1877.    system.  When the installation is finished, another dftp command
  1878.    can be used to remove the package archive (.deb) files.  Changes to
  1879.    the remote filesystem are tracked automatically by dftp, which
  1880.    compares the local Packages.gz file to the files on the remote
  1881.    system.  The dftp program is available as a script in the directory
  1882.    project/misc in the Debian FTP archive.
  1883.  
  1884.  
  1885. 9.3.  Must I go into single user mode in order to upgrade a package?
  1886.  
  1887. No.  Packages can be upgraded in place, even in running
  1888. systems. Debian has a start-stop-daemon program that is invoked to
  1889. stop, then restart running process if necessary during a package
  1890. upgrade.
  1891.  
  1892.  
  1893. 9.4.  Do I have to keep all those .deb archive files on my disk?
  1894.  
  1895. No.  If you have downloaded the files to your disk (which is not
  1896. absolutely necessary (see dpkg-ftp (9.2) or dftp (9.2))), then after
  1897. you have installed the packages, you can remove them from your system.
  1898.  
  1899.  
  1900. 9.5.  How can I keep a log of the packages I added to the system?
  1901.  
  1902. dpkg keeps a record of the packages that have been unpacked,
  1903. configured, removed, and/or purged, but does not (currently) keep a
  1904. log of terminal activity that occured while a package was being so
  1905. manipulated. Some users overcome this simply by using tee:
  1906.  
  1907.  
  1908.    dpkg -iGOEB -R stable/binary non-free/binary contrib/binary | \
  1909.        tee -a /root/dpkg.log
  1910.  
  1911.  
  1912. The same command written using long options:
  1913.  
  1914.    dpkg --install --refuse-downgrade --selected-only \
  1915.      --skip-same-version --auto-deconfigure \
  1916.      --recursiv estable/binary non-free/binary contrib/binary | \
  1917.        tee -a /root/dpkg.log
  1918.  
  1919.  
  1920.  
  1921. 10.  Debian and the kernel
  1922.  
  1923.  
  1924. 10.1.  What tools does Debian provide to build custom kernels?
  1925.  
  1926. Users who wish to (or must) build a custom kernel are encouraged to
  1927. download the package kernel-package_VVV_all.deb (it is stored in
  1928. section misc at the Debian FTP archives).  This package contains the
  1929. script to build the kernel package, and provides the capability to
  1930. create a Debian kernel-image package just by running the command
  1931. make-kpkg kernel_image in the top-level kernel source directory. Help
  1932. is available by executing the command make-kpkg --help, and through
  1933. the manual page for make-kpkg(8).
  1934.  
  1935. Users must separately download the source code for the most recent
  1936. kernel (or the kernel of their choice) from their favorite Linux
  1937. archive site.  To build a custom kernel, users must have these
  1938. packages installed: gcc, libc5-dev, bin86, binutils, gawk, make, gzip,
  1939. and grep.
  1940.  
  1941. Executing the command dpkg --install kernel-package_VVV_all.deb sets
  1942. up the directory /usr/src/linux-VVV/, and sets up the link
  1943. /usr/src/linux to point to the directory /usr/src/linux-VVV/
  1944. containing the kernel sources.
  1945.  
  1946. Detailed instructions for using the package are given in the file
  1947. /usr/doc/kernel-package/README.  Briefly, one should:
  1948.  
  1949. o  Unpack the kernel sources, and cd to the newly created directory.
  1950.  
  1951. o  Modify the kernel configuration using one of these commands:
  1952.    --  make config  (for a tty one-line-at-a-time-interface).
  1953.    --  make menuconfig  (for an ncurses-based menu driven interface).
  1954.        Note that to use this option, the ncurses3.0-dev package must
  1955.        be installed.
  1956.    --  make xconfig  (for an X11 interface).  Using this option requires
  1957.        that relevant X packages be installed.
  1958.  
  1959.    Any of the above steps generates a new .config in the top-level kernel
  1960.    source directory.
  1961.  
  1962. o  Execute the command: make-kpkg -r Custom.N kernel_image, where
  1963.    N is a revision number assigned by the user.  The new
  1964.    Debian archive thus formed would have revision Custom.1, e.g.,
  1965.    kernel-image-2.0.27-Custom.1.deb for the Linux kernel 2.0.27.
  1966.  
  1967. o  Install the package created.
  1968.  
  1969.    --  Run dpkg --install /usr/src/kernel-image_VVV-Custom.N.deb to install
  1970.        the kernel itself.  The installation script will:
  1971.        *  run the boot loader, LILO (if it is installed),
  1972.        *  install the custom kernel in /boot/vmlinuz_VVV-Custom.N, and set
  1973.           up appropriate symbolic links to the most recent kernel version.
  1974.  
  1975.        *  prompt the user to make a boot floppy.  This boot floppy will
  1976.           contain the raw kernel only.  See additional notes for making a
  1977.           custom boot floppy (10.2).
  1978.    --  To employ a secondary boot loaders (e.g.,  loadlin), copy this image
  1979.        to other locations (e.g., an MS-DOS partition).
  1980.  
  1981. 10.2.  How can I make a custom boot floppy?
  1982.  
  1983. This task is greatly aided by the Debian package
  1984. boot-floppies_VVV-RRR.deb, normally found in the binary/devel section
  1985. of the Debian FTP archive.  Shell scripts in this package produce boot
  1986. floppies in the SYSLINUX format.  These are MS-DOS formatted floppies
  1987. whose master boot records have been altered so that they boot Linux
  1988. directly (or whatever other operating system has been defined in the
  1989. syslinux.cfg file on the floppy). Other shell scripts in this package
  1990. produce emergency root disks and can even reproduce the base disks.
  1991.  
  1992. When the boot-floppies package is installed, it produces files which
  1993. reside in /usr/src/boot-floppies/, including the three scripts, called
  1994. bootdisk.sh, rootdisk.sh, and basedisk.sh.  Users of these scripts are
  1995. encouraged to read them and customize as appropriate.  In particular,
  1996. one should include the kernel of your choice when invoking the
  1997. bootdisk.sh script.  Be aware that this kernel cannot be used to load
  1998. the root disk into a RAMDISK unless it was compiled with
  1999. CONFIG_RAMDISK=y, and CONFIG_INITRD=y.
  2000.  
  2001. To write the kernel-image-2.0.27 package to the 1.44 MByte disk in
  2002. drive A: run this command:
  2003.  
  2004.  
  2005.    ./bootdisk.sh /usr/src/kernel-image-2.0.27_1.00.deb /dev/fd0 1440
  2006.  
  2007. Be sure to include the editor and whatever other tools you prefer when
  2008. building your custom root disk with ./rootdisk.sh.
  2009.  
  2010. Some people found that the boot and root disks make good emergency
  2011. floppies.
  2012.  
  2013.  
  2014. 10.3.  What special provisions does Debian provide to deal with
  2015.        modules?
  2016.  
  2017. Debian's modconf package provides a shell script (/usr/sbin/modconf)
  2018. which can be used to customize the configuration of modules.  This
  2019. script presents a menu-based interface, prompting the user for
  2020. particulars on the loadable device drivers in his system.  The
  2021. responses are used to customize the file /etc/conf.modules (which
  2022. lists aliases, and other arguments that must be used in conjunction
  2023. with various modules), and /etc/modules (which lists the modules that
  2024. must be loaded at boot time).
  2025.  
  2026. Like the (new) Configure.help files that are now available to support
  2027. the construction of custom kernels, the modconf package comes with a
  2028. series of help files (in /usr/lib/modules_help/) which provide
  2029. detailed information on appropriate arguments for each of the modules.
  2030.  
  2031.  
  2032. 10.4.  Can I safely de-install an old kernel, and if so how?
  2033.  
  2034. Yes.  The kernel-image-NNN.prerm script checks to see whether the
  2035. kernel you are currently running is the same as the kernel you are
  2036. trying to de-install.  Therefore you can remove unwanted kernel image
  2037. packages using this command:
  2038.  
  2039. dpkg --purge --force-remove-essential kernel-image-NNN
  2040.  
  2041.  
  2042.  
  2043. 11.  Customizing your installation of Debian GNU/Linux
  2044.  
  2045.  
  2046. 11.1.  How can I ensure that all programs use the same paper size?
  2047.  
  2048. The file /etc/papersize contains the name of the system-wide default
  2049. paper size (i.e.  letter or A4). It can be overwritten using the
  2050. PAPERSIZE environment variable. For details see the manual page
  2051. papersize(5).
  2052.  
  2053.  
  2054. 11.2.  How can I configure an X11 program's application defaults ?
  2055.  
  2056. Debian's X11 installation expects you to leave the files in
  2057. /usr/X11R6/lib/X11/app-defaults/ unchanged. If you want to customise X
  2058. applications globally, put your customizations in
  2059. /etc/X11/Xresources. This file is marked as a configuration file, so
  2060. its contents will be preserved during upgrades.
  2061.  
  2062.  
  2063. 11.3.  Every distribution seems to have a different boot-up method.  Tell
  2064.        me about Debian's.
  2065.  
  2066. Like all Unices, Debian boots up by executing the program init.  The
  2067. configuration file for init (which is /etc/inittab) specifies that the
  2068. first script to be executed should be /etc/init.d/boot.  This script
  2069. checks and mounts file systems, loads modules, starts the network
  2070. services (by calling the script /etc/init.d/network), sets the clock,
  2071. performs other initialization, and then runs all of the scripts
  2072. (except those with a '.' in the filename) in /etc/rc.boot/. The latter
  2073. script sets the default keyboard, recovers lost editor files, and
  2074. configures the serial ports.
  2075.  
  2076. After completing the boot process, init executes all start scripts in
  2077. a directory specified by the default runlevel (this runlevel is given
  2078. by the entry for id in /etc/inittab). Like most System V compatible
  2079. Unices, Linux has 7 runlevels:
  2080.  
  2081. 0 (halt the system), 1 (single-user mode), 2 through 5 (various
  2082. multi-user modes), and 6 (reboot the system). Debian systems come with
  2083. id=2, which indicates that the default runlevel will be '2' when the
  2084. multi-user state is entered, and the scripts in /etc/rc2.d/ will be
  2085. run.
  2086.  
  2087. In fact, the scripts in any of the directories, /etc/rcN.d/ are just
  2088. symbolic links back to scripts in /etc/init.d/.  However, the names of
  2089. the files in each of the /etc/rcN.d/ directories are selected to
  2090. indicate the way the scripts in /etc/init.d/ will be run.
  2091. Specifically, before entering any runlevel, all the scripts beginning
  2092. with 'K' are run; these scripts kill services.  Then all the scripts
  2093. beginning with 'S' are run; these scripts start services.  The
  2094. two-digit number following the 'K' or 'S' indicates the order in which
  2095. the script is run.  Lower numbered scripts are executed first.
  2096.  
  2097. This approach works because the scripts in /etc/init.d/ all take an
  2098. argument which can be either 'start', 'stop', or 'reload', and will
  2099. then do the task indicated by the argument. For example, with the
  2100. argument 'reload' the command /etc/init.d/sendmail reload sends the
  2101. sendmail daemon a signal to reread its configuration file. These
  2102. scripts can be used even after a system has been booted to control
  2103. various processes.
  2104.  
  2105.  
  2106. 11.4.  It looks as if Debian does not use rc.local to customize the boot
  2107.        process; what facilities are provided?
  2108.  
  2109. Suppose a system needs to execute script foo on start-up, or on entry
  2110. to a particular (System V) runlevel.  Then the system administrator
  2111. should:
  2112.  
  2113. o  Enter the script foo into the directory /etc/init.d/.
  2114. o  Run the Debian command update-rc.d with appropriate arguments,  to
  2115.    set up links between the (command-line-specified) directories rc?.d
  2116.    and /etc/init.d/foo.  Here, '?'  is a number from 0 through 6 and
  2117.    corresponds to each of the System V runlevels.
  2118. o  Reboot the system.
  2119.  
  2120. The command update-rc.d will set up links between files in the
  2121. directories rc?.d and the script in /etc/init.d/. Each link will begin
  2122. with a 'S' or a 'K', followed by a number, followed by the name of the
  2123. script.  Scripts beginning with 'S' in /etc/rcN.d/ are executed when
  2124. runlevel N is entered.  Scripts beginning with a 'K' are executed when
  2125. leaving runlevel N.
  2126.  
  2127. One might, for example, cause the script foo to execute at boot-up, by
  2128. putting it in /etc/init.d/ and installing the links with update-rc.d
  2129. foo defaults 19.  The argument 'defaults' refers to the default
  2130. runlevels, which are 2 through 5.  The argument '19' ensures that foo
  2131. is called before any scripts containing numbers 20 or larger.
  2132.  
  2133.  
  2134. 11.5.  How does the package management system deal with packages that
  2135.        contain configuration files for other packages?
  2136.  
  2137. Some users wish to create, for example, a new server by installing a
  2138. group of Debian packages and a locally generated package consisting of
  2139. configuration files.  This is not generally a good idea, because dpkg
  2140. will not know about those configuration files if they are in a
  2141. different package, and may write conflicting configurations when one
  2142. of the initial group of packages is upgraded.
  2143.  
  2144. Instead, create a local package that modifies the configuration files
  2145. of the group of Debian packages of interest.  Then dpkg and the rest
  2146. of the package management system will see that the files have been
  2147. modified by the local sysadmin and will not try to overwrite them when
  2148. those packages are upgraded.
  2149.  
  2150. 11.6.  How do I override a file installed by a package so that a different
  2151.        version can be used instead?
  2152.  
  2153. Suppose a sysadmin or local user wishes to use a program login-local
  2154. rather than the program login provided by the Debian login package. Do
  2155. not:
  2156.  
  2157. o  Overwrite /bin/login with login-local.
  2158.  
  2159. The package management system will not know about this change, and
  2160. will simply overwrite your custom /bin/login whenever login (or any
  2161. package that provides /bin/login) is installed or updated.  Rather, do
  2162.  
  2163. o  Execute dpkg-divert --divert /bin/login.debian /bin/login in order
  2164.    to cause all future installations of the Debian login packages to
  2165.    write the file /bin/login to /bin/login.debian instead.
  2166.  
  2167. o  Then execute cp login-local /bin/login to move your own
  2168.    locally-built program into place.
  2169.  
  2170. Some details are given in the usage statement for dpkg-divert (which
  2171. can be viewed using the command dpkg-divert --help). Additional
  2172. details are given in the Debian programmer's manual.
  2173.  
  2174. 11.7.  How can I have my locally-built package included in the list of
  2175.        available packages that the package management system knows about?
  2176.  
  2177. You can do this in either of two ways:
  2178.  
  2179. o  Use dselect, and reselect the access method. You will be asked for a
  2180.    directory where your local packages reside.
  2181.  
  2182. o  Execute the command dpkg-scanpackages BIN_DIR OVERRIDE_FILE
  2183.    [PATHPREFIX] > Packages.new where:
  2184.  
  2185.    -  BIN-DIR is a directory where Debian archive files (which usually
  2186.       have an extension of .deb) are stored.
  2187.  
  2188.    -  OVERRIDE_FILE is a file that is edited by the distribution
  2189.       maintainers and is usually stored on a Debian FTP archive at
  2190.       indices/override.main.gz for the Debian packages in the main
  2191.       distribution.
  2192.    -  PATHPREFIX is an optional string that can be prepended to the
  2193.       Packages.new file being produced.
  2194.  
  2195.    Once you have built the file Packages.new, tell the package
  2196.    management system about it by using the command dpkg --update-avail
  2197.    Packages.new.
  2198.  
  2199.  
  2200. 11.8.  Some users like mawk, others like gawk; some like vim, others like
  2201.        elvis; some like trn, others like tin; how does Debian support
  2202.        diversity?
  2203.  
  2204. There are several cases where two packages provide two different
  2205. versions of a program, both of which provide the same core
  2206. functionality.  Users might prefer one over another out of habit, or
  2207. because the user interface of one package is somehow more pleasing
  2208. than the interface of another.  Other users on the same system might
  2209. make a different choice.
  2210.  
  2211. Debian uses a virtual package system to allow system administrators to
  2212. choose (or let users choose) their favorite tools when there are two
  2213. or more that provide the same basic functionality, yet satisfy package
  2214. dependency requirements without specifying a particular package.
  2215.  
  2216. For example, there might exist two different versions of newsreaders
  2217. on a system.  The news server package might 'recommend' that there
  2218. exist some news reader on the system, but the choice of tin or trn is
  2219. left up to the individual user.  This is satisfied by having both the
  2220. tin and trn packages provide the virtual package news-reader.  Which
  2221. program is invoked is determined by a link pointing from a file with
  2222. the virtual package name /etc/alternatives/news-reader to the selected
  2223. file, e.g., /usr/bin/trn.
  2224.  
  2225. A single link is insufficient to support full use of an alternate
  2226. program; normally, manual pages, and possibly other supporting files
  2227. must be selected as well.  The Perl script update-alternatives
  2228. provides a way of ensuring that all the files associated with a
  2229. specified package are selected as a system default.
  2230.  
  2231.  
  2232. 12.  Getting support for Debian Linux
  2233.  
  2234.  
  2235.  
  2236. 12.1.  What other documentation exists on and for a Debian system?
  2237.  
  2238. o  Installation instructions for the current release: see (
  2239.    http://www.debian.org/1.1/install.html ) .
  2240. o  dpkg programmer's manual and Debian policy manual
  2241.  
  2242.    --  The dpkg programmer's manual (
  2243.        ftp://ftp.debian.org/debian/doc/package-developer/programmer.ps.gz )
  2244.        is the primary documentation on the technical aspects of
  2245.        creating Debian binary and source packages.
  2246.  
  2247.        The Debian policy manual (
  2248.        ftp://ftp.debian.org/debian/doc/package-developer/policy.ps.gz )
  2249.        documents the policy requirements for a package to be included
  2250.        in Debian.
  2251.  
  2252.        These documents are also included in the latest dpkg-dev package.
  2253.  
  2254. o  Documentation on installed Debian packages: Most packages have files
  2255.    that are unpacked into /usr/doc/ and /usr/doc/examples/.
  2256.  
  2257. o  Documentation on the Linux project: The Debian package doc-
  2258.    linux_VVV-RRR.deb installs all of the most recent versions of the
  2259.    HOWTOs and mini-HOWTOs from the Linux Documentation Project. This
  2260.    package is in the stable/binary-all/doc/ section in the FTP
  2261.    archives.
  2262.  
  2263. o  Unix-style 'man' pages: Most commands have manual pages written in
  2264.    the style of the original Unix 'man' files. They are referenced by
  2265.    the section of the 'man' directory where they reside: e.g., foo(3)
  2266.    refers to a manual page which resides in /usr/man/man3/, and it can
  2267.    be called by executing the command: man 3 foo, or just man foo if
  2268.    section 3 is the only one containing a page on foo. One can learn
  2269.    which directory of /usr/man/ contains a certain manual page by
  2270.    executing man -w foo.
  2271.  
  2272.    New Debian users should note that the 'man' pages of many general
  2273.    system commands are not available until they install these packages
  2274.    (both of which are normally stored in the stable/binary-all/doc/
  2275.    directory of the Debian FTP archive:
  2276.    -  manpages_VVV-RRR.deb (see support for non-English languages (5.11)).
  2277.  
  2278.    -  man_VVV-RRR.deb, which contains the man program itself, and other
  2279.       programs for manipulating the manual pages.
  2280.  
  2281. o  GNU-style 'info' pages: User documentation for many commands,
  2282.    particularly GNU tools, is available not in 'man' pages, but in
  2283.    'info' files which can be read by the GNU tool info or by running
  2284.    M-x info within GNU Emacs. Its main advantage over the original
  2285.    'man' pages are that it is a hypertext system.  It does not require
  2286.    the WWW, however; info can be run from a plain text console.  It
  2287.    was designed by Richard Stallman and preceded the WWW. The program
  2288.    that manipulates `info' files is installed as a separate package
  2289.    info_VVV-RRR.deb, usually stored in the directory
  2290.    stable/binary-all/doc/ on the FTP archive.
  2291.  
  2292.  
  2293. 12.2.  Are there any on-line resources for discussing Debian?
  2294.  
  2295. There are several Debian-related mailing lists:
  2296.  
  2297. o  debian-announce@lists.debian.org (moderated).  (Usually) major system
  2298.    announcements.  On average, fewer than one message per week are posted
  2299.    here.
  2300. o  debian-changes@lists.debian.org. Announcements of new package uploads
  2301.    for the Debian system. This list may carry several announcements in a
  2302.    day.
  2303. o  debian-user@lists.debian.org.  A mailing list where users can ask for
  2304.    and receive advice on the use or configuration of Debian packages
  2305.    or other aspects of Debian Linux. This list is an invaluable learning
  2306.    resource; there can be 50 messages a day or more on this list.
  2307. o  debian-sparc@lists.debian.org. This list is for those involved in
  2308.    porting Debian software to the SPARC platform.
  2309. o  debian-alpha@lists.debian.org.  This list is for those involved in
  2310.    porting Debian software to DEC alpha platforms.
  2311. o  debian-68k@lists.debian.org. This list is for those involved in porting
  2312.    Debian software to Motorola 680x0 platforms; currently this means the
  2313.    Atari and Amiga only.
  2314. o  debian-talk@lists.debian.org.
  2315.  
  2316. To subscribe to debian-X (for X in announce, changes, user, talk),
  2317. send mail to debian-X-request@lists.debian.org with the word subscribe
  2318. in the Subject: header.  If you have a forms-capable World Wide Web
  2319. browser, you can subscribe to debian-announce and debian-user by using
  2320. the WWW form( http://www.rahul.net/perens/Debian/MailingLists.html ) .
  2321. You can also un-subscribe using that form.  The list manager's e-mail
  2322. address is listmaster@lists.debian.org
  2323.  
  2324. Archives of the Debian mailing lists are available via WWW at (
  2325. http://www.debian.org/Lists-Archives/ ) and via FTP from (
  2326. ftp://ftp.debian.org/debian/debian-lists/ ) .
  2327.  
  2328. Users can address questions to individual package maintainers, since
  2329. their e-mail addresses are provided in the Debian control file (see
  2330. section Debian control file (6.4)) that is included within each
  2331. package.  One can also learn the maintainers' names and e-mail
  2332. addresses by searching the Packages file, since this file is just a
  2333. concatenation of all the available package control files in a
  2334. particular directory tree. To extract a control file from a particular
  2335. Debian package, use the command,
  2336.  
  2337.  
  2338.    dpkg --info packageName_VVV-RRR.deb
  2339.  
  2340.  
  2341. Another related mailing list, debiangame, is being run by Gary Moore (
  2342. ( mailto:gary@ssc.com ) ) at the University of Washington.  As the
  2343. name suggests, it is devoted to the discussion of games that have been
  2344. (or might be) packaged for Debian.  To subscribe, send mail to
  2345. listproc@u.washington.edu, putting in the message body:
  2346.  
  2347.      subscribe debiangame FirstName LastName
  2348.  
  2349.  
  2350. Both FirstName and LastName are required for ListProc.
  2351.  
  2352. Users should post non-Debian-specific questions to one of the Linux
  2353. Usenet groups, which are named comp.os.linux.* or linux.*.
  2354. Specialized Systems Consultants (a.k.a. SSC) maintains a list of
  2355. Linux, Unix, X, and networking newsgroups (
  2356. http://www.ssc.com/linux/news.html ) on their WWW site.
  2357.  
  2358.  
  2359. 12.3.  What is the code of conduct for the mailing lists?
  2360.  
  2361. When using the Debian mailing lists, please follow these rules:
  2362.  
  2363. o  Do not flame; it is not polite.  Besides the people developing
  2364.    Debian are all volunteers, donating their time, energy and money in
  2365.    an attempt to bring the Debian project together.
  2366.  
  2367. o  Do not use foul language; some people receive the lists via packet
  2368.    radio, where swear words are illegal.
  2369.  
  2370. o  Make sure that you are using the proper list.
  2371.  
  2372. o  Do not try posting unless you are subscribed.  Posting by
  2373.    non-subscribers was turned off to make the mailing lists
  2374.    usable. Thus, only postings from e-mail addresses matching those of
  2375.    a subscriber are accepted.  If you often post from other addresses
  2376.    than the one you subscribe with, mail the list manager
  2377.    listmaster@lists.debian.org with the subject please add subscriber
  2378.    alias.  
  2379.  
  2380. o See section reporting bugs (13.2) for notes on reporting bugs.
  2381.  
  2382.  
  2383. 12.4.  Is there a quick way to search for information on Debian GNU/Linux?
  2384.  
  2385. There are a variety of search engines that serve documentation related
  2386. to Debian.
  2387.  
  2388. o  Verism's search site.  To obtain information on how to submit a
  2389.    debian bug report, enter the words debian bug submit and search for
  2390.    all of these words.
  2391.  
  2392. o  DejaNews news search service.  To find out what experiences people
  2393.    have had with finding drivers for Western Digital controllers, try
  2394.    searching on this phrase:
  2395.  
  2396.  
  2397.        linux & WD
  2398.  
  2399.    This tells DejaNews to report any postings containing both the
  2400.    string linux AND the string WD When I used it, I discovered that my
  2401.    WD card (which I have only had for 6 months) has been declared
  2402.    outmoded by Adaptec, now that they have bought WD.  So there are no
  2403.    drivers available.  (Bless Adaptec's hearts.)
  2404.  
  2405. o  The AltaVista Search Engine can also be used to search Usenet
  2406.    (although it appears to be not quite as up to date as DejaNews).
  2407.    For example, searching on the string "cgi-perl" gives a more
  2408.    detailed explanation of this package than the brief description
  2409.    field in its control file.
  2410.  
  2411.  
  2412. 13.  The Debian Bug Report System
  2413.  
  2414.  
  2415. 13.1.  Are there logs of known bugs?
  2416.  
  2417. The Debian Linux distribution has a bug tracking system which files
  2418. details of bugs reported by users and developers. Each bug is given a
  2419. number, and is kept on file until it is marked as having been dealt
  2420. with.
  2421.  
  2422. Copies of this information are available at (
  2423. http://www.cl.cam.ac.uk/users/iwj10/debian-bugs/ ) and (
  2424. http://www.debian.org/Bugs/ ) , but the latter is not up-to-date at
  2425. present.
  2426.  
  2427. A mail server provides access to the bug tracking system database via
  2428. e-mail.  In order to get the instructions send an e-mail to
  2429. request@bugs.debian.org with "help" in the body.
  2430.  
  2431.  
  2432. 13.2.  How do I report a bug in Debian?
  2433.  
  2434. If you have found a bug in Debian, please read the instructions for
  2435. reporting a bug in Debian.  These instructions can be obtained in one
  2436. of several ways:
  2437.  
  2438. o  By anonymous ftp.  Debian mirror sites contain the instructions in
  2439.    the file doc/bug-reporting.txt.
  2440.  
  2441. o  From the WWW.  A copy of the instructions is shown at (
  2442.    http://www.cl.cam.ac.uk/users/iwj10/debian-bugs/Reporting.html )
  2443.  
  2444. o  On any Debian system with the doc-debian package installed.  The
  2445.    instructions are in the file /usr/doc/debian/bug-reporting.txt.
  2446.  
  2447. Use these mail addresses for bugs:
  2448.  
  2449. o  submit@bugs.debian.org: for general bug reports.  Expect to get
  2450.    an automatic acknowledgement of your bug report.  It will also be
  2451.    automatically given a bug tracking number, entered into the bug log
  2452.    and forwarded to the debian-devel mailing list.
  2453.  
  2454. o  maintonly@bugs.debian.org: to send bug reports to the maintainer
  2455.    only. It will not be forwarded to the debian-devel mailing
  2456.    list. For example, if one were to identify a bug that was common to
  2457.    many programs, then rather than entering dozens of bug reports, one
  2458.    might prefer to send individual bugs to maintonly, then send a
  2459.    summary report to debian-devel.
  2460.  
  2461. o  quiet@bugs.debian.org: to submit bug reports to the bug log only,
  2462.    without having them sent either to debian-devel or to the maintainer.
  2463.  
  2464.  
  2465. 14.  Contributing to the Debian project
  2466.  
  2467. Donations of time (to develop new packages, maintain existing
  2468. packages, or provide user support), resources (to mirror the FTP and
  2469. WWW archives), and money (to pay for new testbeds as well as hardware
  2470. for the archives) can help the project.
  2471.  
  2472.  
  2473. 14.1.  How can I become a Debian software developer?
  2474.  
  2475. The development of Debian is open to all, and new users with the right
  2476. skills and/or the willingness to learn are needed to maintain existing
  2477. packages which have been orphaned by their previous maintainers, to
  2478. develop new packages, and to provide user support.
  2479.  
  2480. To develop a Debian package, you should:
  2481.  
  2482. o  (of course) download Debian and install it on your system.
  2483.  
  2484. o  find a program you would like to package that is not
  2485.    presently part of Debian.  In this regard, the Work
  2486.    Needing and Prospective Packages document (available as
  2487.    /debian/doc/package-developer/prospective-packages.txt at the
  2488.    Debian FTP server) should serve as a useful guide.
  2489.  
  2490. o  Subscribe to debian-devel.
  2491.    To do this execute
  2492.  
  2493.  
  2494.                mail debian-devel-REQUEST@lists.debian.org -s Subscribe
  2495.  
  2496.  
  2497.    That is, send mail to the above address with the subject set to
  2498.    'Subscribe'.
  2499.  
  2500. o  Set up your PGP key.
  2501.  
  2502.    Install the PGP package; read /usr/doc/pgp/; generate a
  2503.    public-secret key pair by typing pgp -kg and answering the
  2504.    questions.  (Be prepared to write some arbitrary text when asked.
  2505.    PGP generates its true random numbers by measuring the intervals
  2506.    between your keystrokes.)
  2507.  
  2508. o  Shake hands with the project administration:
  2509.    Send an e-mail to new-maintainer@debian.org
  2510.  
  2511.    with this content:
  2512.    -  what you have done,
  2513.    -  who you are,
  2514.    -  request for an account on master,
  2515.    -  request to be subscribed to debian-private (the developers-only
  2516.       mailing list).
  2517.    -  your PGP key, obtained by executing 'pgp -kxa'.
  2518.  
  2519. o  Make the programs:  .deb, .diff, .tar.gz, .changes.
  2520.  
  2521.    Use the hello*deb and dpkg*deb packages as guides, and read the
  2522.    policy manual and dpkg programmers manual.
  2523.  
  2524. o  Upload the files to
  2525.  
  2526.    -  ftp://master.debian.org/home/Debian/ftp/private/project/Incoming/
  2527.       using your user-name and password, or
  2528.    -  ftp://ftp.chiark.greenend.org.uk/ using anonymous ftp.
  2529.       For instructions to upload to chiark, read this file at chiark:
  2530.       /pub/debian/private/project/README.how-to-upload. chiark then
  2531.       sends the files it gets to master.
  2532.  
  2533.  
  2534. 14.1.1 Are there additional information resources for developers?
  2535.  
  2536. Besides debian-devel, there are these mailing lists:
  2537.  
  2538. o  The SPARC port developers list:  debian-sparc@lists.debian.org.
  2539. o  The Alpha port developers list: debian-alpha@lists.debian.org.
  2540. o  The Motorola 680x0 port developers list: debian-68k@lists.debian.org.
  2541. o  The dpkg development list: debian-dpkg@lists.debian.org.
  2542. o  Debian for Hams: debian-hams@lists.debian.org.
  2543. o  Debian package maintainers only: debian-private@lists.debian.org.
  2544.  
  2545. To subscribe to debian-devel, or other developers' list, send a
  2546. message to listmaster@lists.debian.org with a one-line explanation of
  2547. what you would like to test or develop.
  2548.  
  2549.  
  2550. 14.2.  How can I contribute resources to the Debian project?
  2551.  
  2552. Since the project aims to make a substantial body of software rapidly
  2553. and easily accessible throughout the globe, mirrors are urgently
  2554. needed. It is desirable but not absolutely necessary to mirror all of
  2555. the archive. The current components amount to just over 1.4 GBytes,
  2556. broken down roughly as follows:
  2557.  
  2558. o  non-free: 100 MBytes.
  2559. o  contrib: 50 MBytes.
  2560. o  Debian-1.2 (including updates): 650 MBytes.
  2561. o  unstable: 200 MBytes.
  2562. o  mailing list archives: 20 MBytes.
  2563.  
  2564. Most of the mirroring is accomplished entirely automatically by
  2565. scripts, without any human intervention.  However, the occasional
  2566. glitch or system change occurs which requires human intervention.
  2567.  
  2568. If you have a high-speed connection to the Internet, the resources to
  2569. mirror all or part of the distribution, and are willing to take the
  2570. time (or find someone) who can provide regular maintenance of the
  2571. system, then please contact Bruce Perens (E-Mail: bruce@pixar.com;
  2572. Voice (work): 510-215-3502).
  2573.  
  2574.  
  2575.  
  2576. 14.3.  How can I contribute financially to the Debian project?
  2577.  
  2578. One can make individual donations to one of two organizations that are
  2579. critical to the development of the Debian project.
  2580.  
  2581. 14.3.1 Software in the Public Interest
  2582.  
  2583. Software in the Public Interest (SPI) is a non-profit organization
  2584. formed when FSF withdrew their sponsorship of Debian.  We are
  2585. currently incorporating as an IRS 501(c)(3) non-profit
  2586. organization. The purpose of the organization is to develop and
  2587. distribute free software. Our goals are very much like those of FSF,
  2588. and we encourage programmers to use the GNU General Public License on
  2589. their programs. However, we have a slightly different focus in that we
  2590. are building and distributing a Linux system that diverges in many
  2591. technical details from the GNU system planned by FSF.  We still
  2592. communicate with FSF, and we cooperate in sending them changes to GNU
  2593. software and in asking our users to donate to FSF and the GNU project.
  2594. SPI can be reached at:
  2595.  
  2596. o  E-Mail: bruce@pixar.com
  2597.  
  2598. o  Postal address:
  2599.  
  2600.  
  2601.                Software in the Public Interest
  2602.                P.O. Box 70152
  2603.                Pt. Richmond, CA 94807-0152
  2604.  
  2605. o  Phone: 510-215-3502 (Bruce Perens at work)
  2606.  
  2607.  
  2608. 14.3.2 Free Software Foundation
  2609.  
  2610. At this time there is no formal connection between Debian and the Free
  2611. Software Foundation.  However, the Free Software Foundation is
  2612. responsible for some of the most important software components in
  2613. Debian, including the GNU C compiler, GNU Emacs, and much of the C
  2614. run-time library that is used by all programs on the system. FSF
  2615. pioneered much of what free software is today: they wrote the the
  2616. General Public License that is used on much of the Debian software,
  2617. and they invented the "GNU" project to create an entirely free Unix
  2618. system. Debian should be considered a descendent of the GNU system.
  2619.  
  2620. When you make a donation to FSF, please be sure to tell them that you
  2621. are a Debian user. Please contact them at:
  2622.  
  2623. o  E-mail: gnu@prep.ai.mit.edu
  2624. o  Postal address:
  2625.  
  2626.            Free Software Foundation
  2627.            59 Temple Place - Suite 330
  2628.            Boston, MA  02111-1307
  2629.            USA
  2630.  
  2631. o  Phone number: +1-617-542-5942
  2632. o  Fax (including Japan): +1-617-542-2652
  2633. o  Free Dial Fax (in Japan): 0031-13-2473 (KDD), 0066-3382-0158 (IDC)
  2634. o  On the WWW :  ( http://www.gnu.ai.mit.edu/ )
  2635.  
  2636.  
  2637.  
  2638. 15.  Redistributing Debian GNU/Linux in a commercial product
  2639.  
  2640.  
  2641. 15.1.  Can I make and sell Debian CDs?
  2642.  
  2643. Go ahead. You do not need permission to distribute anything we have
  2644. released, so that you can master your CD as soon as the beta-test
  2645. ends.  You do not have to pay us anything.  We will, however, publish
  2646. a list of CD manufacturers who donate money, software, and time to the
  2647. Debian project, and we will encourage users to buy from manufacturers
  2648. who donate, so it is good advertising to make donations.  Of course
  2649. all CD manufacturers must honor the licenses of the programs in
  2650. Debian. For example, many of the programs are licensed under the GPL,
  2651. which requires you to distribute their source code.
  2652.  
  2653. 15.2.  Can Debian be packaged with non-free software?
  2654.  
  2655. Yes. While all the main components of Debian are free software, we
  2656. provide a non-free directory for programs that are not freely
  2657. redistributable. CD manufacturers may be able to distribute the
  2658. programs we have placed in that directory, depending on the license
  2659. terms or their private arrangements with the authors of those software
  2660. packages.  CD manufacturers can also distribute the non-free software
  2661. they get from other sources on the same CD. This is nothing new: free
  2662. and commercial software are distributed on the same CD by many
  2663. manufacturers now.  Of course we still encourage software authors to
  2664. release the programs they write as free software.
  2665.  
  2666.  
  2667. 15.3.  I am making a special Linux distribution for a vertical market. Can
  2668.        I use Debian GNU/Linux for the guts of a Linux system and add my own
  2669.        applications on top of it?
  2670.  
  2671. Yes. For example, one person is building a Linux for Hams
  2672. distribution, with specialized programs for Radio Amateurs. He is
  2673. starting with Debian as the base system, and adding programs to
  2674. control the transmitter, track satellites, etc. All of the programs he
  2675. adds are packaged with the Debian package system so that his users
  2676. will be able to upgrade easily when he releases subsequent CDs.
  2677.  
  2678. Debian also provides a mechanism to allow developers and system
  2679. administrators to install local versions of selected files in such a
  2680. way that they will not be overwritten when other packages are
  2681. upgraded.  This is discussed further in the question on diversions
  2682. (11.6).
  2683.  
  2684.  
  2685. 15.4.  Can I put my commercial program in a Debian package so that it
  2686.        installs effortlessly on any Debian system?
  2687.  
  2688. Go right ahead. The package tool is free software.
  2689.  
  2690.  
  2691.  
  2692. 16.  What kind of changes should I expect to see in the next major release
  2693.      of Debian Linux?
  2694.  
  2695.  
  2696. 16.1.  A New Approach to the Boot Floppies
  2697.  
  2698. In order to accommodate all of the hardware for which Linux drivers
  2699. have been written, yet still provide boot-floppies that can fit on a
  2700. 5.25-inch disk, Debian 1.2 will provide a mechanism to access all
  2701. drivers that can be modularized as modules. (This work is partially
  2702. done.)
  2703.  
  2704. The default kernel has no IDE, no SCSI, little else. When the user
  2705. sets up the system, it builds a RAM disk image that is loaded at boot
  2706. time.  The script on the RAM disk loads the modules for your local
  2707. hardware configuration _before_ it mounts the root. Some things that
  2708. still are not modularized are in the default kernel.
  2709.  
  2710. The stripped-down kernel and the compressed installation root
  2711. filesystem fit on one 1200K floppy and run fine that way. The floppy
  2712. also contains a few of the most popular modules, and you get to feed
  2713. it more floppies (or a CD) containing other modules depending on your
  2714. configuration.
  2715.  
  2716. No-floppy bootstrap should be possible for systems with 8MByte RAM and
  2717. a CD or DOS hard disk. One-floppy NFS bootstrap should be possible.
  2718. See /usr/src/linux/Documentation/initrd.txt .
  2719.  
  2720.  
  2721. 16.2.  Increased security
  2722.  
  2723. Debian will be equipped with the Shadow password suite of programs and
  2724. library routines which hide the plain text of the password file from
  2725. all users except root and provide for terminal access control, and
  2726. user and group administration.  For details, see (
  2727. http://sunsite.unc.edu/mdw/HOWTO/Shadow-Password-HOWTO.html ) .  This
  2728. document is of course also included along with all the HOWTOs in the
  2729. Debian doc-linux package.
  2730.  
  2731. Most of the relevant Debian utilities have been modified to make them
  2732. support shadow passwords. This includes the default login utility, as
  2733. well as vipw and vigr. The xdm X11 login utility and the adduser
  2734. script will be made shadow aware as well.  In addition, there will be
  2735. minor changes to the shadow packages themselves.
  2736.  
  2737. In addition, the Linux library of Pluggable Authentication Modules ( (
  2738. http://parc.power.net/morgan/Linux-PAM/ ) ; a.k.a.  libpam) that allow
  2739. sysadmins to choose authorization modes on an application-specific
  2740. basis will be available, and initially set to authenticate via shadow
  2741. password.
  2742.  
  2743.  
  2744. 16.3.  More Support for non-English users
  2745.  
  2746. Debian already has some support for non-English users (5.11). We hope
  2747. to find people who provide support for even more languages.
  2748.  
  2749. Some programs already support internationalization, so we need message
  2750. catalogs. Many programs still must be internationalized.
  2751.  
  2752.  
  2753. 16.4.  More architectures
  2754.  
  2755. Currently a complete Debian release is only available for the i386
  2756. architecture. Complete Debian system on other architectures are
  2757. expected soon.
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.