home *** CD-ROM | disk | FTP | other *** search
/ linuxmafia.com 2016 / linuxmafia.com.tar / linuxmafia.com / debian / tips < prev   
Text File  |  2009-04-03  |  73KB  |  1,879 lines

  1. Debian Tips
  2. by Rick Moen
  3. revised 1999-12-09
  4.  
  5. [Please pardon this document's Intel-centrism.  Probably, almost all of
  6. it will generalise to Debian for Motorola 680x0, DEC Alpha, and Sun
  7. SPARC, but I cannot guarantee that.]
  8.  
  9. This document, or a successor, will reside somewhere in
  10. http://linuxmafia.com/debian/
  11.  
  12. Basic documentation
  13. -------------------
  14.  
  15. Debian Installation Guide ("Installing Debian GNU/Linux") by Adam Di
  16. Carlo and other authors
  17. ftp://www.debian.org/debian/dists/stable/main/disks-i386/current/install.html
  18. 20 pages  -- PRINT AND READ THIS BEFORE INSTALLING.
  19.  
  20. Debian FAQ  http://www.debian.org/doc/FAQ/  75 pages
  21.  
  22. Debian Users Guide (by Dale Sheetz)
  23.  
  24. http://www.debian.org/~elphick/ddp/manuals.html#devel is helpful
  25.  
  26. Debian Packaging Manual,
  27. http://www.debian.org/~elphick/manuals.html/packaging-manual/
  28.  
  29. Debian Documentation Project, http://www.debian.org/~elphick/ddp/, which
  30.   is generally a good place to find docs, some of which may not be in a
  31.   finished state.
  32.  
  33. Installation notes
  34. ------------------
  35.  
  36. Most people will elect to install from CD-ROM.  If so, configure your
  37. system to boot from CD-ROM before starting, if it supports that.  Doing
  38. so allows you to dispense with installation boot floppies, a very
  39. frequent source of problems.
  40.  
  41. If you need to start the installation process from floppy (i.e., cannot
  42. boot from CD-ROMs), then you need to generate (write) a floppy from
  43. image files on Debian CD #1.  The installation diskette-image file is
  44. somewhat confusingly called a "rescue" floppy.  (Some machines, such as
  45. IBM ThinkPads, will need the alternate "tecra" rescue floppy, because of
  46. drive-addressing peculiarities.)
  47.  
  48. As is usual with Linux distributions, you can write the floppy from its
  49. image file using either the provided RAWRITE.EXE DOS utility or a Unix
  50. machine's "dd" utility.  Watch carefully for errors or early
  51. termination of the write process:  More installations fail because of
  52. subtly defective boot floppies than for any other reason.
  53.  
  54. Debian 2.1 "Slink" has a fairly old XFree86 (v. 3.3.2.3a).  (This software
  55. group comprises the video graphics engines for various video-card chipsets,
  56. and you may need to upgrade it to support recent video cards.)  Newest are
  57. available at "http://www.netgod.net/x".  You can either retrieve them
  58. using apt-get, or retrieve them manually and install using "dkpg -i".
  59.  
  60. ftp://ftp.debian.org/debian/dists/potato/main/binary-i386/x11/
  61. (i.e., the current beta-version Debian distribution, "potato") also has
  62. X upgrade packages, _but_ those packages require GNU libc version 2.1,
  63. which would be essentially going partially to "potato", which you would
  64. probably consider undesirable.
  65.  
  66. You should get upgrades for at least the following X-related packages:
  67.  
  68.   xserver-vga16   Generic 640x480x16 plain-VGA support.  Good to have
  69.                   for testing, etc.  Not all current cards have VGA16
  70.                   backwards compatibility, but most do.
  71.   xserver-[...]   Whichever X server is required for your video card.
  72.                   See: http://www.xfree86.org/cardlist.html
  73.   xserver-common
  74.   xfree86-common
  75.   xf86setup
  76.   xbase           Only if you're upgrading from Debian 2.0
  77.   xbase-clients
  78.   xlib6           Libraries
  79.   xlib6g
  80.   xprt            X printing support
  81.   xfs             X Font Server
  82.   xfstt           TrueType server
  83.   xfonts-scalable
  84.   xfonts-base
  85.   xfonts-75dpi
  86.   xfonts-100dpi
  87.  
  88. Debian's installer puts you in cfdisk.  If you prefer the traditional
  89. Linux fdisk, exit cfdisk and switch to a different virtual terminal
  90. (Ctrl-Alt-F2), then use fdisk there, then switch virtual terminals
  91. back (Ctrl-Alt-F1).  (You should exit cfdisk because it would otherwise
  92. render fdisk unable to write to the disk device.)
  93.  
  94. The installer may prompt you for an expansion card's (e.g., an ethernet
  95. card's) hardware resources, such as I/O base address and IRQ.  Try
  96. _omitting_ that data, which induces a fairly reliable autoprobe process,
  97. to find the correct values:  The installer fails to clarify that it
  98. will default to autoprobing, which is unfortunate, because that is
  99. almost always a better choice.
  100.  
  101. Also, make sure you know the following hardware-configuration details
  102. before you start:  What port your mouse is on (PS/2, ttyS0=COM1,
  103. ttyS1=COM2, etc.), what video chipset your video card uses, how much
  104. RAM your video card contains, what chipset your ethernet card (if any)
  105. is built on, and what device type your CD-ROM is if you'll be installing
  106. from it (SCSI, hda=primary master IDE device, hdb=primary slave, hdc=
  107. secondary master, hdd=secondary slave, or whatever else).  Ignore video
  108. details if you're omitting X support (but most users won't be).
  109.  
  110. Debian's installer needs to be told these things because of a design
  111. tradeoff:  Because it doesn't autoprobe for this data, the installer
  112. can be stable and usable even on bizarre hardware that tends to confuse
  113. autoprobe programs.  On the minus side, it means the user must know his
  114. system in more detail than usual.
  115.  
  116. Because of that aspect and other rough spots in the installation
  117. noted throughout this piece, I recommend _against_ trying Debian
  118. as one's first Linux distribution.  However, if you've tried (any of)
  119. SuSE, Red Hat, Turbo Linux, Caldera Open Linux, Slackware, Stampede
  120. Linux, Mandrake, etc., and generally know your hardware, you're more
  121. than qualified.
  122.  
  123. Surviving "dselect":  dselect is a software package-selection and
  124. configuration tool, liked by a few, detested by many, and due to be
  125. replaced soon.  During Debian installation, you will briefly encounter
  126. it but need not ever use it thereafter, post-installation.  (Better
  127. tools are available, e.g., apt-get, dpkg.)
  128.  
  129. Suggestion:  DO NOT attempt to adjust package selection in any way
  130. inside dselect, during your initial installation.  Doing so can prolong
  131. your installation time by many hours, as you wrestle with dselect.
  132. One avoids this pitfall by selecting, on an installer screen just prior
  133. to entering dselect, a "profile" (a predefined set of packages to install,
  134. for a machine role such a network server, scientific workstation, etc.).
  135. You can recognise that installer screen by the following (rather
  136. confusing) text on it:
  137.  
  138.     Now you may choose one of several selections of packages to
  139.     be installed.  If you prefer to select one by one which packages
  140.     to install on the system you may skip this step, else you may
  141.     skip the 'Select' step later when I run the 'dselect' program.
  142.  
  143. Let's translate that into English:
  144.  
  145. It's saying you may choose either of two ways to specify packages to
  146. be installed.
  147.  
  148. (1) You might elect to pick a "profile".  After doing so, you will be
  149. run through a program called 'dselect' whose main menu consists of
  150. about six numbered steps.  Ignore step number 3, 'Select', since having
  151. already specified a profile makes that step redundant.
  152.  
  153.   or...
  154.  
  155. (2) You might prefer _not_ to use a "profile", in order to pick and
  156. choose individual packages during initial installation.  In that case,
  157. you'll definitely want to perform all of the dselect program's numbered
  158. steps, including step number 3, 'Select'.
  159.  
  160. You are strongly advised to go with the first option during initial
  161. installation:  DO NOT attempt to tweak dselect's package selection to
  162. do a "kitchen sink" installation, or for any other reason.  People who
  163. do that end up dealing with dependency issues in dselect for hours.
  164. You Have Been Warned.
  165.  
  166. (Among many faults, dselect's 'Select' step presents you with a
  167. non-collapsible scrolling list of 2200+ packages.  Horrors.)
  168.  
  169. While you are in dselect, as the program is installing your packages, it
  170. will scroll past your eyes quite a lot of configuration information,
  171. sometimes prompting you for setup choices.  (Unlike some other
  172. distributions, Debian has you make those choices during initial package
  173. installation rather than providing generic values for them.)  You are
  174. strongly advised to take notes on paper and take your time, since some
  175. of the information displayed is valuable, and to my knowledge is not
  176. logged.  (The latter fact is the single biggest reason I think dselect
  177. is Evil and Must Die, by the way.)
  178.  
  179. In particular, don't think of dselect as a general system-administration
  180. and setup tool (like SuSE's "yast").  It isn't one.  Other utilities
  181. perform those functions:
  182.    -- Use xf86config or XF86Setup (those names are case-sensitive) to
  183.       configure the X Window System after installing needed X packages.
  184.    -- Use Wvdial or ppp-config to configure Internet dial-up networking.
  185.    -- Use apt-get and dpkg to install/remove/configure Debian packages.
  186.    -- Use ipmasq to set up firewalling.
  187.  
  188. ===>   PACKAGE-INSTALLATION OPTION #3 (the most interesting):  Instead of
  189. _either_ picking a package "profile" _or_ picking and choosing packages in
  190. dselect, you can simply _quit_ the installer (ctrl-C) when shown the profile
  191. list.  You will then have run completely through the first half of Debian
  192. installation (the "debootstrap" utility) and omitted the "dselect" second half.
  193. You will have thereby installed just the "Debian base system".
  194.  
  195. The theory behind doing so is that you can then efficiently add _just_
  196. the packages you want, resulting in a lean, sparse, _secure_, and
  197. yet full-featured system.  _However_, the Debian base system must be
  198. supplemented -- and can be as follows, on any network connected to the
  199. Internet:
  200.  
  201.    1.  Login as user "root".  Stay in directory "/root".
  202.    2.  If your machine requires a DHCP-issued dynamic IP address, get and
  203.        add the dhcpcd-[version].deb package.  ("dpkg -i dhcpcd-[version].deb")
  204.    3.  Add the "apt" package-management system.  (dpkg -i apt-[version].deb")
  205.    4.  Do:   script        (this logs what follows to text file "typescript")
  206.              apt-get update && apt-get -u dist-upgrade
  207.        (This upgrades all installed packages to latest versions.  The
  208.        "-u" adds packages listed as "suggests" companions for those being
  209.        installed .)
  210.    5.  Install the following additional packages omitted from the
  211.        Debian base system, by typing "apt-get install [deb1] [deb2] ...":
  212.        autoconf automake bin86 binutils bison cpp doc-base dpkg-multicd
  213.        file flex g++ gcc gettext gettext-base groff info kbd kbd-data
  214.        less libc5 libc6-dev libg++27 libg++272 libstdc++2.10-dev
  215.        libstdc++2.8 lilo make man-db manpages psmisc sysutils
  216.  
  217.    6.  If your system will support the X Window System, add:
  218.        xbase-clients xlib6 xlib6g xlib6g-dev
  219.  
  220.    7.  Your system is now fairly functional (initially without X setup).
  221.        Browse the package listings in the /var/state/apt/lists/*Packages
  222.        files, and "apt-get install" what you need.  You'll only need to do
  223.        a few such "install" commands, to (e.g.) add a full-blown X
  224.        setup, because apt-get retrieves additional packages as needed
  225.        to meet dependencies.
  226.  
  227. pine/pico:
  228.  
  229. Debian does not by default install "non-free" packages -- those under
  230. restrictive software licences (although many are provided and available
  231. for installation).  If you are a user of the "pine" e-mail client or
  232. the "pico" text editor that pine provides, please be aware that pine
  233. is non-free and therefore is not a default installation item.
  234.  
  235. The U. of Washington's licence forbids distribution of pine/pico (v.
  236. 4.62 or later) in binary form.  This restriction is routinely violated
  237. by many GNU/Linux distributions, but not by Debian.  (U. of Washington
  238. is aware of this licencing problem, but elects not to fix it.)  You can
  239. thus install pine and pico (in Debian) by installing the pine
  240. source-code package and then compiling the programs.
  241.  
  242.     apt-get build-dep pine
  243.     apt-get source --compile pine
  244.     dpkg -i *.deb
  245.  
  246. or, equivalently:
  247.  
  248.     apt-get build-dep pine
  249.     apt-get source pine
  250.     dpkg-buildpackage
  251.     dpkg -i *.deb
  252.  
  253. However, there's a better alternative.  Just put the following
  254. script in /usr/local/bin as "pine", and chmod it to 755 (executable):
  255.  
  256.    #!/bin/sh
  257.    /usr/bin/mutt -F /usr/doc/mutt/examples/Pine.rc
  258.  
  259. pico can be emulated by a symbolic link to the simple editor "ae", which
  260. is really very close to pico:
  261.  
  262.    cd /usr/local/bin
  263.    ln -s ../../../bin/ae   pico
  264.  
  265. Qmail (the SMTP e-mail server) is available in the same way as pine/pico,
  266. as a source-code package (qmail-src) with a canned build script, in the
  267. Debian non-free packages collection.
  268.  
  269. Post-installation adjustments:
  270. ------------------------------
  271.  
  272. -- Consider manually creating symlinks cdrom, floppy, and mouse in the /dev
  273.    directory.
  274.  
  275. -- Consider changing the mountpoints for your floppy and CD-ROM devices
  276.    from /floppy and /cdrom to /mnt/floppy and /mnt/cdrom (to make them
  277.    more standards-compliant).  Remember that you can always put personal
  278.    symlinks in your home directory as shortcuts to frequently-visited
  279.    directories.
  280.  
  281. -- Consider cleaning up the format of /etc/fstab in a text editor, and
  282.    adding entries for your CD-ROM and floppy devices, e.g.:
  283.  
  284.      #<filesys> <mount pnt> <type> <options>               <dump><pass>
  285.      /dev/sda1  /           ext2   defaults,errors=remount-ro 0   1
  286.      /dev/sda2  none        swap   sw                         0   0
  287.      /dev/fd0   /mnt/floppy ext2   noauto                     0   0
  288.      /dev/scd0  /mnt/cdrom  iso9660 noauto,ro                 0   0
  289.      proc       /proc       proc   defaults                   0   0
  290.  
  291. (The "noauto" options for the floppy and CD-ROM ensure that any floppies
  292. and CDs in those devices will not be automounted at boot time.)
  293.  
  294. Post-installation addition/removal of software packages.
  295. -- dpkg: very decent command-line package installer/uninstaller
  296. -- The wonder that is apt-get:
  297.      -- automatically retrieves additional packages as needed to
  298.         satisfy dependencies
  299.      -- can be used to systematically track either a named Debian
  300.         version (e.g., potato, slink, hamm, bo) or the symlinks
  301.         "stable" and "unstable".  Sysadmin can either run apt-get
  302.         manually or as a cron job.
  303.     apt-get is intended, in the long term, to be just a "method"
  304.     (subsidiary app) invoked by apt, the intended replacement
  305.     for dselect.  Thus, it is a command-line tool.
  306.  
  307. Basic update of the already-installed packages:
  308.  
  309.     apt-get update && apt-get -u dist-upgrade
  310.  
  311. If the dist-upgrade has problems, do "apt-get -f install" (to fix).
  312.  
  313. To switch to tracking the "unstable" Debian branch:
  314.  
  315. -- add the following to your /etc/apt/sources.list file:
  316.    deb http://http.us.debian.org/debian unstable main contrib non-free
  317.    deb http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free
  318. -- Re-run "apt-get update", to get the new available-package listings.
  319. -- In order to upgrade crucial packages first, do:
  320.    "apt-get install perl libc6 dpkg apt apt-utils debconf"  
  321.    Whenever you're switching to a new development track, or are 
  322.    for any reason expecting a major jump in package versions, the 
  323.    foregoing command is a worthwhile precaution.
  324. -- Re-run "apt-get -u dist-upgrade".  You are now upgraded to (and 
  325.    can track in the future) the "unstable" branch.
  326.  
  327. You can make apt-get search your CD-ROM first (which is faster than
  328. getting packages from the Net) by adding something like the following as
  329. the first non-comment line in /etc/apt/sources.list:
  330.  
  331.    deb file:/mnt/cdrom/debian stable main non-free
  332.  
  333. After installing packages, run
  334.  
  335.    apt-get clean
  336. to clear out /var/cache/apt/archives where .deb packages otherwise
  337. accumulate.
  338.  
  339.    apt-get autoclean
  340. will clear out only "useless" package files.
  341.  
  342. Don Marti reports that he runs this, instead, as a nightly cron script:
  343.  
  344.    apt-get update && \
  345.    apt-get -y --download-only dist-upgrade && \
  346.    apt-get autoclean
  347.  
  348. That updates the available-packages lists, retrieves into /var/lib/dpkg/archive 
  349. but doesn't install any new packages, and removes those no longer
  350. essential.  He later does a manual "apt-get dist-upgrade" to install the 
  351. pre-fetched packages with human supervision.
  352.  
  353. (Alternative: use aptcron, which is designed to be automated and to
  354. cooperate with debconf.)
  355.  
  356.  
  357.    apt-get update && apt-get build-upgrade
  358. will update your system and then recompile all installed software.
  359. (The "build-upgrade" parameter is supported only by recent CVS betas
  360. of apt-get, at this date -- but is very slick.)
  361.  
  362. You can edit your /etc/apt/sources.list file to make apt-get
  363. use a variety of sources, including various unofficial ".deb"
  364. archives.  A list of the latter is maintained by StΘphane Bortzmeyer at
  365. http://www.internatif.org/bortzmeyer/debian/apt-sources/.
  366. (Consider particularly "deb http://security.debian.org/ stable updates".)
  367.  
  368. (2002-12 update:  Mike Markley's http://apt-get.org/ has mostly taken 
  369. over from Bortzmeyer's list.)
  370.  
  371. Tweak /etc/apt/build-options  (?) to set compiler flags, etc.
  372. (This would be another cutting-edge feature in the betas.)
  373.  
  374. Tip:  Before using apt-get (or dselect, or dpkg) to do anything,
  375. start the "script" utility to make a session logfile.  You are
  376. strongly advised to do this, since package-installers in Debian
  377. output meaningful information that may be important for you later.
  378.  
  379. slink vs. potato
  380. ----------------
  381. At any given time, there is a Debian "stable" distribution and
  382. an "unstable" (development) distribution.  At this writing,
  383. Debian-stable is named "slink" (v. 2.1, based on installation kernel
  384. 2.0.36), and Debian-unstable is "potato" (no version number yet
  385. assigned).  potato is quite solid and close to release as the next
  386. "stable" branch, but installation diskette images for it are still being
  387. tested.  Therefore, the only practical way to reach potato is to install
  388. slink first, and then upgrade.
  389.  
  390. There is one exception:  Debian developer Joey Hess has produced an
  391. ISO-9660 (CD-ROM filesystem) image of what he calls "slink-and-a-half",
  392. available at ftp://ftp.valinux.com/pub/support/joey/slink-and-a-half.iso .
  393. This is an upgraded slink, based on Linux kernel 2.2.12, with the vastly
  394. expanded hardware support that one gets with more-recent kernels.
  395. (Therefore, it will install on advanced, recent hardware that slink
  396. doesn't yet support.)  The file is 620 MB, and pretty much the only
  397. practical thing to do with it is burn it to a CDR or CDRW disk (using a
  398. CD-burner drive).  You can do that on any operating system; for tips on
  399. doing it on Linux, see http://www.linuxdoc.org/HOWTO/CD-Writing-HOWTO.html .
  400.  
  401. Be aware that, if you upgrade a slink (or "slink-and-a-half") system to
  402. potato, you may encounter occasional problems inherent in the Debian
  403. development process.  (In other words, before you complain, realise
  404. that they called it "unstable" for a reason.)  To date, the problems
  405. have been small and resolved in a day or two.  Many of us find these
  406. risks worthwhile to have access to the lastest software.  Your call.
  407.  
  408.  
  409.  
  410.  
  411.  
  412. DEBIAN 2.2 "POTATO"
  413. -------------------
  414.  
  415. Until I properly update this "tips" file for 2.2 Potato, here's
  416. some update information I e-mailed to a friend in Ireland.  I had
  417. just burned and sent him a set of the three official Debian 2.2
  418. CD-ROM images, and wanted to help him with his next steps:
  419.  
  420. 1.  Read the installation manual:
  421. http://www.debian.org/releases/stable/i386/install
  422.  
  423. 2.  Read the release note:
  424. http://www.debian.org/releases/2.2/i386/release-notes/
  425.  
  426. 3.  If your machine boots from CD-ROM, do so with disk 1.  This is the
  427. "non-US" variant of disk 1, which differs from the "regular" one only
  428. by inclusion of strong crypto.  If not, you'll have to write out
  429. rescue + root + drivers1 + drivers2 + drivers3 floppies.  Pay close
  430. attention to the floppy-writing screens and listen for writing of bad
  431. sectors.  Floppy quality these days really sucks, and is probably the
  432. biggest cause of Debian installation failure.
  433.  
  434. Via either path, you'll enter the debootstrap installer routine,
  435. which guides you through the rest of the first-half of installation,
  436. including shelling out to cfdisk for partitioning, and calls the lilo
  437. map installer to write boot files.  You reboot at the end (having now
  438. completed installation of the "Debian base" set), and go into a one-time
  439. shell where you set root password, create a regular user account, decide
  440. whether to enable shadowed passwords and remove PCMCIA support.  Then,
  441. you're put into tasksel, a utility for specifying large-granularity
  442. groupings of packages to be installed.
  443.  
  444. If you run tasksel and do not select any tasks, you get packages of
  445. priority "standard" and higher.  If for some reason you want an
  446. absolutely bare-bones Debian system (essential packages only), then
  447. break out of the installer completely rather than using tasksel.
  448.  
  449. You are strongly advised to pick one of those "tasks" (aka "profiles"),
  450. rather than defaulting to fine-granularity package selection in the next
  451. routine, the infamous "dselect" program.  Specifically, it's generally
  452. wise to pick a minimal configuration.  A typical mistake of those
  453. coming from Red Hat (et al.) is to attempt to specify the kitchen sink.
  454. Wrong.  Bad.  Debian does better if you start with a minimal
  455. configuration and build up as needed.  Trust me on this one.
  456.  
  457. Even if you've picked a profile, you'll be run through the "dselect"
  458. program as the penultimate step of installation.  If you've selected
  459. a profile, make a point of _not_ doing step #2, "Select", on the dselect
  460. program's main menu (because you've already designated a package set
  461. to be installed).
  462.  
  463.      0.  [A]ccess  Choose the access method to use.
  464.      1.  [U]pdate  Update list of available packages, if possible.
  465.      2   [S]elect  Request which packages you want on your system.
  466.      3.  [I]nstall Install and upgrade wanted packages.
  467.      4.  [C]onfig  Configure any packages that are unconfigured.
  468.      5.  [R]emove  Remove unwanted software.
  469.      6.  [Q]uit    Quit dselect.
  470.  
  471. You'll be told how to proceed, but in essence dselect will take the
  472. list of packages to be installed (however it arose) and, transparently
  473. to the user, invoke the dpkg command-line tool to actually install them.
  474. Then, it will (again, transparently to the user) invoke "dpkg
  475. --configure -a" to put you through the configuration questions for
  476. all packages that need such.
  477.  
  478. This is one of numerous reasons to _not_ do an initial kitchen-sink
  479. installation:  dpkg has no logging of screen output, and the output of
  480. dpkg's "configure" mode includes some important facts that you do _not_
  481. want to scroll off the screen before you can note and digest them.
  482.  
  483. Post-installation, you'll have the opportunity to start the "script"
  484. utility immediately prior to any major package installations, so as to
  485. capture screen output.  You're advised to do so.
  486.  
  487. After package installation and configuration is complete, dselect will
  488. terminate and log you out.  You're now at the login prompt of a fully
  489. built (but not updated) Debian 2.2 system.
  490.  
  491. Before I advise you about how to update the system, a few words about
  492. Debian's modular architecture for packages:
  493.  
  494. "dpkg" always handles the low-level local mechanics of installing, removing,
  495. and configuring packages.  It alone touches the package database files
  496. (which are ASCII) in /var/lib/dpkg.  It knows nothing inherently about
  497. how and where to acquire .deb files from, and gets fed pathspecs by the
  498. user or by other utilities that call it.
  499.  
  500. "dselect" is one of several package-acquisition and dependency-checking
  501. programs that call dpkg for actual installation.  A few people like it,
  502. and a lot more loathe it.  It, too, is modular, in the sense that it
  503. can invoke external utilities as "methods" for acquiring and
  504. dependency-checking packages before passing their names to dpkg.  Among
  505. the possible "methods" are the utilities apt-get and apt-cdrom, to be
  506. discussed next.
  507.  
  508. "apt" (Advanced Package Tool) is supposed to eventually supplant dselect
  509. entirely.  It will be a replacement. comprehensive, full-screen
  510. package-handling utility. Unfortunately, it's still alphaware and
  511. entirely too scary, so nobody uses it.  Fortunately, _its_ command-line
  512. "method" utilities, apt-get and apt-cdrom, _are_ finished, and are so
  513. incredibly good that hardly anyone cares that the front-end isn't
  514. finished.  (I suspect that's the problem "apt" is moving so slowly.)
  515.  
  516. "apt-get" is a tool for acquiring and managing packages from a variety
  517. of local _or_ remote "sources" (this term being defined below) of
  518. various types.  Like dselect, it invokes dpkg for actual installation.
  519. When you tell it to query a remote (or local) package-archive for what
  520. packages and versions it has available, it caches that information in
  521. two places: /var/state/apt/lists/*Packages and /var/lib/dpkg/available .
  522. The former files are one file per package source, sorted alphabetically,
  523. and the latter are merged into a single file.
  524.  
  525. One of the really cool things about apt-get is that it resolves
  526. dependencies automatically -- and will offer to retrieve packages you
  527. did _not_ specify, if they're required by the ones you did.  That is why
  528. one of the more bearable ways of using dselect is by specifying apt-get
  529. as its "method".
  530.  
  531. "apt-cdrom" is a special ability to deal intelligently with removable
  532. media.  When it creates available-package indexes for such media, it
  533. also catalogues them by CD-ROM disk ID in a /var/state/apt/cdroms.list
  534. file.  It likewise tracks them via custom package-source specifiers
  535. in /etc/apt/sources.list (discussed below).  The command "apt-cdrom add"
  536. will scan a CD-ROM disk for package-listings and create matching indexes
  537. or it (which apt-get then knows about).  You should do exactly that
  538. for each of your three Debian CDs.
  539.  
  540. apt-get alone would not suffice for this task, because it thinks all package
  541. listings retrieved from the same URI are the same source (i.e., it has
  542. no ability to deal with removable media).  There is also (very recently)
  543. "apt-zip" for Iomega ZIP cartridges.
  544.  
  545. There have been several candidate substitutes for the unfinished "apt"
  546. front-end, such as gnome-apt, Corel and Storm Technologies's proprietary
  547. front-ends, console-apt, and aptitude (ncurses-based).  None have really
  548. caught on, and most are defunct, but some may be worth trying.  (I've
  549. already mentioned tasksel, which picks meta-packages dubbed "tasks" or
  550. "profiles".  At exit, tasksel invokes apt-get, which invokes dpkg.)
  551.  
  552. to review, the package-handling architecture goes like this:
  553.  
  554.     gnome-apt     ---------
  555.     aptitude              |    Package selection
  556.     Corel Update          |
  557.     Storm Package Manager or
  558.     dselect*              |
  559.     console-apt   ------- |
  560.        |
  561.        | calls
  562.        v
  563.     apt-get          Dependency-resolution,
  564.        |             package-retrieval
  565.        |
  566.        | calls
  567.        v
  568.      dpkg       Package installation & removal,
  569.                 configuration
  570.  
  571. *dselect _can_ use apt-get as a "method" as indicated here, but by default
  572. does not, bypassing that layer and calling dpkg directly.
  573.  
  574. (Alternatively, skip the first category, package selection, and
  575. just use apt-get et al. directly from the command line.  Many of
  576. us do this by preference.)
  577.  
  578. apt-get (apt-cdrom, apt-zip)'s behaviour is controlled by the obscure
  579. apt.conf file that nobody bothers to configure, but more importantly
  580. by /etc/apt/sources.list, which is where it's told where packages
  581. are available from.  Here's the rather messy one from linuxmafia.com:
  582.  
  583. # Use for a local mirror - remove the ftp1 http lines for the bits
  584. # your mirror contains.
  585. # deb file:/your/mirror/here/debian stable main contrib non-free
  586. # See sources.list(5) for more information, especial
  587. # Remember that you can only use http, ftp or file URIs
  588.  
  589. deb http://security.debian.org/ stable/updates main contrib non-free
  590. #
  591. ## ...which is equivalent to:
  592. #
  593. #deb http://security.debian.org/dists/stable/updates/contrib/binary-i386/ ./
  594. #deb http://security.debian.org/dists/stable/updates/main/binary-i386/ ./
  595. #deb http://security.debian.org/dists/stable/updates/non-free/binary-i386/ ./
  596.  
  597. # What I used before potato went "stable" and I switched to my local mirror:
  598. #deb http://http.us.debian.org/debian frozen main contrib non-free
  599. #
  600. deb file:///usr/local/ftp/debian stable main contrib non-free
  601. deb http://non-us.debian.org/debian-non-US stable non-US/main non-US/contrib non-US/non-free
  602. deb http://forcix.cx/ debian
  603.  
  604. Notice the "file:" URI.  I'm telling linuxmafia.com to use its own
  605. public ftp directories as a Debian package source -- which is possible
  606. in its case, because linuxmafia.com happens to be an unofficial full
  607. Debian mirror site.
  608.  
  609. Here's a sources.list file that will work well for you.
  610. (ftp.esat.net is in Ireland, and I found it from the mirror-site
  611. list at http://www.debian.org.  I've tested the following, to ensure that
  612. it's correct.)
  613.  
  614. deb ftp://ftp.esat.net/mirrors/ftp.debian.org/debian stable main contrib non-free
  615. deb ftp://ftp.esat.net/pub/linux/debian-non-US stable non-US/main non-US/contrib non-US/non-free
  616. deb http://security.debian.org/ stable/updates main contrib non-free
  617.  
  618. So, try commenting out any existing lines in your sources.list, add the
  619. above ones, save, and do the magic incantation to refresh the
  620. available-files lists:
  621.  
  622.    apt-get update
  623.  
  624. That will refresh /var/state/apt/lists/*Packages and
  625. /var/lib/dpkg/available, with the current package-descriptions from all
  626. sources listed in sources.list.
  627.  
  628. The syntax requirements for sources.list are a bit peculiar.  The best
  629. write-up I've seen, so far, is at
  630. http://www.everything2.com/index.pl?node=sources.list
  631.  
  632. Here's a possibly even better one:
  633. http://www.ibiblio.org/gferg/ldp/giles/repository/repository-2.html
  634.  
  635. It's a good idea to run "apt-get update" before using apt-get or other
  636. package-retrieval tools.  If you don't, you may get 404 errors, because
  637. you're trying to get things listed in the local package lists, but no
  638. longer extant at the remote sources (usually because there's a later
  639. version there, instead).
  640.  
  641. The following incantation updates all your installed packages to current
  642. available versions.  You should run it on your machine, _especially_
  643. because of that third "source" I gave you, which is the
  644. early-availability security-updates source in the USA:
  645.  
  646.    apt-get -u dist-upgrade
  647.  
  648. You can use the form "apt-get install [packagename1] [packagename2" to
  649. install the cited packages plus everything required to meet their
  650. dependencies.  E.g., here's what I get on linuxmafia.com (a server with
  651. no X packages whatsoever), when I tell apt-get that I want to install
  652. the gnome-games package:
  653.  
  654. uncle-enzo:/etc/apt# apt-get install gnome-games
  655. Reading Package Lists... Done
  656. Building Dependency Tree... Done
  657. The following extra packages will be installed:
  658.   esound esound-common gdk-imlib1 gnome-bin gnome-card-games gnome-core
  659.   gnome-games-locale gnome-gataxx gnome-glines gnome-gnibbles gnome-gnobots2
  660.   gnome-gnometris gnome-gnomine gnome-gnotravex gnome-gtali gnome-gturing
  661.   gnome-iagno gnome-libs-data gnome-mahjongg gnome-same-gnome gnome-stones
  662.   gnome-xbill imlib-base libart2 libaudiofile0 libesd0 libgnome32
  663.   libgnomesupport0 libgnomeui32 libgnorba27 libgnorbagtk0 libgtk1.2 libguile6
  664.   liborbit0 libtiff3g libungif3g
  665. The following NEW packages will be installed:
  666.   esound esound-common gdk-imlib1 gnome-bin gnome-card-games gnome-core
  667.   gnome-games gnome-games-locale gnome-gataxx gnome-glines gnome-gnibbles
  668.   gnome-gnobots2 gnome-gnometris gnome-gnomine gnome-gnotravex gnome-gtali
  669.   gnome-gturing gnome-iagno gnome-libs-data gnome-mahjongg gnome-same-gnome
  670.   gnome-stones gnome-xbill imlib-base libart2 libaudiofile0 libesd0 libgnome32
  671.   libgnomesupport0 libgnomeui32 libgnorba27 libgnorbagtk0 libgtk1.2 libguile6
  672.   liborbit0 libtiff3g libungif3g
  673. 0 packages upgraded, 37 newly installed, 0 to remove and 0 not upgraded.
  674. Need to get 0B/7634kB of archives. After unpacking 15.6MB will be used.
  675. Do you want to continue? [Y/n] n
  676. Abort.
  677. uncle-enzo:/etc/apt#
  678.  
  679. apt-get is _almost_ but not quite good enough to figure out that I
  680. need all of X, too.  The point I'm trying to drive towards is that you
  681. can take a _very_ minimal Debian system, and build it up to a
  682. full-featured but compact system using no more than about a dozen or so
  683. "apt-get install" commands.
  684.  
  685. The above explanations are a partial updating of my modestly famous
  686. "Debian Tips" document, at http://linuxmafia.com/debian/tips .
  687. I still recommend you read the latter carefully, but bear in mind that
  688. it was current as of Debian 2.1 "slink", and badly needs updating.
  689.  
  690. [e-mail ends]
  691.  
  692.  
  693.  
  694.  
  695. The apt-spy and netselect-apt utilities will both find the fastest
  696. Debian mirror (package-source) and then constructing
  697. /etc/apt/sources.list entries to match, but apt-spy uses the better 
  698. algorithm of the two.  (netselect-apt measures only latency, not
  699. throughput.)  Standard, manual method of picking a Debian mirror:
  700. apt-setup utility.
  701.  
  702.  
  703.  
  704.  
  705. potato/2.2 unofficial installation-floppy images with ReiserFS support
  706. (John H. Robinson, IV):
  707. http://chao.ucsd.edu/debian/boot-floppies/
  708.  
  709.  
  710.  
  711.  
  712. Jules Bean's FAQ about the "testing" branch, including heuristics for
  713. package acceptance: 
  714. http://linuxmafia.com/debian/testingfaq.html
  715.  
  716.  
  717. A good example /etc/apt/sources.list file for those running the
  718. "testing" branch is as follows:
  719.  
  720. deb http://security.debian.org testing/updates main contrib non-free
  721. deb http://http.us.debian.org/debian/ testing main non-free contrib
  722. deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free
  723.  
  724. The second and third are standard entries using the main Debian mirrors.
  725. You may have faster mirrors locally:  Use "netselect" to find the
  726. fastest one.
  727.  
  728. The first line gives early access to security-update packages from the 
  729. Debian Security Team -- generally a very good idea.  There's a drawback:
  730. Unlike in the "testing" branch proper, the security archive sometimes
  731. releases one package needing a security update without simultaneously
  732. updating a package that depends on it.  E.g., the security collection
  733. will update Mozilla to a version that breaks Galeon (which will thus be
  734. removed) or vice-versa.  If this happens, you can inevitably find the
  735. needed new version for the removed package in
  736. ftp://ftp.debian.org/debian/pool/ , retrieve it, and install it manually
  737. ("dpkg -i foo", where package foo's new version hasn't yet cleared from
  738. unstable into testing).  Mozilla/Galeon is the only problem case I've
  739. seen, but there may be others.
  740.  
  741.  
  742. Debian Quick Reference (about 50 pp.) -- excellent general introduction:
  743. http://qref.sourceforge.net/quick/
  744.  
  745.  
  746. Main Debian FAQ is here:
  747. http://www.debian.org/doc/FAQ/
  748.  
  749.  
  750. Upgrading from Corel Linux OS to Debian:  
  751.  
  752. The discontinued, Debian 2.1/Slink-based Corel Linux OS (CLOS) distribution
  753. included some carelessly incompatible Qt-based packages, including but
  754. not limited to their variant form of KDE 1.1.  CLOS can be upgraded to
  755. current Debian via apt-get, but only after removing the Corel-written
  756. packages. 
  757.  
  758.   # dpkg -l | grep corel
  759.  
  760. Using the package names thus listed, as the root user, remove them using 
  761. apt-get:
  762.  
  763.   # apt-get remove pkg1 pkg2...
  764.  
  765. Edit /etc/apt/sources.list to comment out (using "#") the Corel package
  766. sources, and add standard Debian sources, such as (using the "stable" 
  767. development branch):
  768.  
  769. deb http://security.debian.org stable/updates main contrib non-free
  770. deb http://http.us.debian.org/debian/ stable main non-free contrib
  771. deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
  772.  
  773. Get lists of available packages:
  774.  
  775.   # apt-get update
  776.  
  777. Upgrade crucial packages first:
  778.  
  779.   # apt-get install perl libc6 dpkg apt apt-utils debconf
  780.  
  781. Now, upgrade the rest of the system:
  782.  
  783.   # apt-get dist-upgrade
  784.  
  785. I would also recommend, for all but the most mission-critical
  786. server-role machines, going further and upgrading from Debian-stable
  787. to Debian-testing:  Re-edit the sources.list lines to substitute
  788. "testing" for "stable" on all three lines.  Then, repeat all the 
  789. steps listed following those lines, to upgrade from stable to testing.
  790.  
  791. When done with the upgrades, you can install genuine, current KDE
  792. packages by either installing the big "kde" metapackage:
  793.  
  794.   # apt-get install kde
  795.  
  796. ...or installing individual KDE packages the same way, by name.
  797.  
  798.  
  799.  
  800.  
  801.  
  802. MIXING DEBIAN RELEASES
  803. ----------------------
  804.  
  805. Customising /etc/apt/preferences can let you (among other things)
  806. specify which packages are to be drawn from a specify development branch
  807. using the new (2002-04) concept of "pinning" packages, e.g. getting the
  808. "unstable" branch's version of Mozilla when you're otherwise on the
  809. "testing" branch.  See "man 5 apt_preferences".  If you have a recent
  810. version of apt, and you put the following lines into
  811. /etc/apt/preferences, it will get unstable packages when there is no
  812. testing version.
  813.  
  814. --- begin cut here ---
  815. Package: *
  816. Pin: release a=unstable
  817. Pin-Priority: 50
  818. --- end cut here ---
  819.  
  820. You'll need a line in /etc/apt/sources.list for "unstable", of course:
  821. deb http://http.us.debian.org/debian unstable main contrib non-free
  822.  
  823. Pinning the priority of unstable to 50 makes it so that these packages
  824. are never automatically selected for upgrade.   However, when you do
  825. specify packages from that source, dependencies are handled correctly.
  826.  
  827.  
  828.  
  829. Robert McQueen <robot101@debian.org> comments:
  830.  
  831. Along with the more powerful (and complicated) release-pinning method
  832. featured in a previous release of DWN, apt in woody and sid also
  833. supports a simpler method of achieving the same thing, with the poorly
  834. documented "APT::Default-Release" configuration option.  To do this, add
  835. a line such as:
  836.  
  837.      APT::Default-Release "testing";
  838.  
  839. to /etc/apt/apt.conf, and add both testing and unstable lines to
  840. /etc/apt/sources.list.  Then when you upgrade, dist-upgrade, or install,
  841. apt will only consider packages from testing by default.  If you then use
  842. a command like:
  843.  
  844.      apt-get install <package>/unstable
  845.  
  846. it will install the package version found in unstable, as well as any
  847. libraries and other dependencies from unstable that are required to
  848. install it.
  849.  
  850.  
  851.  
  852. Jens Hoffrichter <joho@hausboot.org> adds:
  853.  
  854. This can be done even more comfortably by using apt-get's -t switch,
  855. which will even satisfy dependencies to unstable, which using
  856. packagename/unstable does not do.
  857.  
  858. The correct (and frequently used by myself ;)) ) syntax would be:
  859.  
  860. apt-get -t unstable install <package>
  861.  
  862. Alternatively, an explicit version can be located and installed using
  863. "=" syntax:
  864.  
  865. apt-get install sox=12.17.4-4
  866.  
  867.  
  868.  
  869. Tutorial about "pinning":
  870. http://jaqque.sbih.org/kplug/apt-pinning.html
  871.  
  872.  
  873.  
  874. Christoph Martin <martin@uni-mainz.de> adds:
  875.  
  876. apt-show-versions is a script which eases maintenance of mixed
  877. stable/testing or testing/unstable systems. While beeing able to
  878. update the packages from your *main* distribution with apt-get upgrade
  879. it is quite difficult to do the same for the *not-main*
  880. packages. While you can use the pinning feature of apt if these are
  881. only a few it is quite annoying to put all the package names in
  882. apt/preferences which should be pinned. Like in one of my installation
  883. where I have 247 packages from stable and 229 from testing.
  884.  
  885. Try
  886.  
  887.   apt-show-versions | fgrep /testing | wc
  888.  
  889. to see how many packages you have from testing or
  890.  
  891.   apt-show-versions -u
  892.  
  893. to see a list of packages which are upgradeable either to stable or
  894. testing or unstable or
  895.  
  896.   apt-get install `apt-show-versions -u -b | fgrep unstable`
  897.  
  898. to upgrade all unstable packages to their newest versions.
  899.  
  900.  
  901.  
  902.  
  903. Especially on systems that have packages from multiple development
  904. branches, the apt-show-versions tool may be useful:  It shows which 
  905. versions of a package are available from each known package source, and
  906. optionally which versions are installed.
  907.  
  908.  
  909.  
  910.  
  911. Peter Jay Salzman points out an elegant way to determine when a package
  912. on one's system was last upgraded:  
  913.  
  914. Every package upgrade needs to update the changelog file.  simply look
  915. at the modification date for /usr/share/doc/<pkg>/changelog.Debian.gz.
  916.  
  917.  
  918.  
  919.  
  920. Note that although Debian's apt-get mechanism makes it easy and reliable 
  921. to upgrade to a later branch (stable to testing, testing to unstable,
  922. slink to woody, woody to sarge), downgrading can also be done with some
  923. greater degree of difficulty, as described here:
  924. http://www.debianplanet.org/node.php?id=880
  925.  
  926.  
  927.  
  928.  
  929. RECOVERING FROM LOST FILESYSTEMS:
  930. ---------------------------------
  931.  
  932. 1.  I lost /var !
  933.  
  934. Because any installed Debian package must create a subdirectory under
  935. /usr/share/doc, this suggests a handy way to accurately rebuild the
  936. /var/lib/dpkg/status installed-packages database.  Note that this method
  937. re-fetches and reinstalls all packages:  I know of no way to avoid that 
  938. drawback:
  939.  
  940. #!/bin/sh
  941. # Recovering a Debian system without any backup of /var/lib/dpkg.
  942. # ref: http://www.linuxworld.com/2003/0113.petreley.html
  943.  
  944. # ---------------------------------------------------------------------- 
  945. # (C) 2003, Karsten M. Self kmself@ix.netcom.com
  946. # (C) 2003, Osamu Aoki osamu@debian.org (fixup)
  947. #
  948. # This program is free software; you can redistribute it and/or modify
  949. # it under the terms of the GNU General Public License as published by
  950. # the Free Software Foundation; either version 2 of the License, or
  951. # (at your option) any later version.
  952. #
  953. # This program is distributed in the hope that it will be useful,
  954. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  955. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  956. # GNU General Public License for more details.
  957. #
  958. # You should have received a copy of the GNU General Public License
  959. # along with this program; if not, write to the Free Software
  960. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  961. # USA
  962. # ---------------------------------------------------------------------- 
  963. # Changes:
  964. #
  965. # KMself: Sun Dec  7 15:40:44 PST 2003
  966. #   Removed bashisms (again).
  967. #   Added /var//cache/apt/archives/partial
  968. # ---------------------------------------------------------------------- 
  969.  
  970. export PATH=/usr/sbin:/usr/bin:/sbin:/bin
  971.  
  972. # Let's be verbose....
  973. set -v
  974.  
  975. # Test existence of any subdirs in /var. If they exist, exit, otherwise
  976. # risk destroying an active system. If they don't exist, the remainder
  977. # of this script is safe.
  978.  
  979. function create_new_dir () {
  980.     if [ ! -f $1 && ! -d $1 ]
  981.     then mkdir $1
  982.     else
  983.     echo "$1 exists, aborting" 1>&2
  984.     exit 1
  985.     fi
  986. }
  987.  
  988. for d in \
  989.     /var/log 
  990.     /var/cache/debconf \
  991.     /var/cache/apt/archives \
  992.     /var/cache/apt/archives/partial \
  993.     /var/lib/dpkg/info \
  994.     /var/lib/dpkg/parts \
  995.     /var/lib/dpkg/alternatives \
  996.     /var/lib/dpkg/methods \
  997.     /var/lib/dpkg/updates 
  998. do
  999.     create_new_dir $d
  1000. done
  1001.  
  1002. # Create a rudimentary status file
  1003. cat <<-EOF > /var/lib/dpkg/status
  1004.     Package: libc6
  1005.     Status: install ok installed
  1006.     Version: 2.3.1-9
  1007.     EOF
  1008.  
  1009. # Update package cache
  1010. apt-get update
  1011. apt-get dist-upgrade
  1012.  
  1013. # Register as installed crucial packages.
  1014. dpkg --clear-avail
  1015. apt-get update
  1016. apt-get dist-upgrade
  1017. cd /var/cache/apt/archives
  1018. dpkg -i libncurses*
  1019. dpkg -i perl-base*
  1020. dpkg -i libstdc++*
  1021. dpkg -i dselect*
  1022. dpkg -i dpkg*
  1023.  
  1024. # Reinstall libc to register it.
  1025. apt-get install --reinstall libc6
  1026.  
  1027. # Reinstall base packages.
  1028. apt-get dist-upgrade
  1029.  
  1030. # Generate list of installed packages to re-register previously
  1031. # installed packages as installed, using /usr/share/doc as a fallback
  1032. # package registry.  ref: dpkg -l $( ls /usr/share/doc | grep -v [A-Z] )
  1033. # >/dev/null
  1034.  
  1035. ls /usr/share/doc |
  1036.     grep -v [A-Z] |
  1037.     grep -v '^texmf$' |
  1038.     grep -v '^debian$' |
  1039.     awk '{print $1 " install"}' |
  1040.     dpkg --set-selections 
  1041.  
  1042. # Re-register everything.
  1043. apt-get dist-upgrade
  1044.  
  1045. # At this point, you should be (mostly) cooking on gas.
  1046.  
  1047. # EOF
  1048.  
  1049.  
  1050. 2.  I lost /usr !
  1051.  
  1052. While likewise painful, this situation is easier to cure:  Working from
  1053. maintenance boot media or single-user mode, make a safety copy of
  1054. /var/lib/dpkg/status and other crucial files/trees (e.g., /etc), then
  1055. leverage the existence of an accurate /var/lib/dpkg/status database to
  1056. generate a one-per-line list of packages to install, parse those lines
  1057. to isolate just the package names, and then feed those names to "apt-get
  1058. --reinstall install":
  1059.  
  1060.   COLUMNS=300 dpkg -l | awk '/^i/ {print $2}' | xargs apt-get --reinstall install
  1061.  
  1062. The "COLUMNS=300" environment-modification is to compensate for long
  1063. package names, and accomodates names up to 70 characters.  E.g., if you 
  1064. ever just want a list of installed packages without truncation, do:
  1065.  
  1066. COLUMNS=150 dpkg -l 'kernel-*' | awk '$1 ~ /ii/ { print $0 }'
  1067.  
  1068.  
  1069.  
  1070.  
  1071. WOODY/3.0 INSTALLATION OPTIONS:
  1072. -------------------------------
  1073.  
  1074. Current woody/3.0 floppy-images for i386 using 2.4 kernel (includes ext3):
  1075. http://ftp.us.debian.org/debian/dists/woody/main/disks-i386/current/images-1.44/bf2.4/
  1076.  
  1077. woody/3.0 unofficial "netinst" images (about 30 MB):
  1078. http://people.debian.org/~ieure/netinst/
  1079.  
  1080. netinst includes an "alternate boot image" named bf2.4 to use a 2.4
  1081. kernel (and ext3 support), but your motherboard must support the El
  1082. Torito "Alternate Boot Image" spec for this to work.  If the netinst CD
  1083. boots directly to the syslinux screen, without showing a menu of
  1084. boot-image choices, then your motherboard lacks this support.  The
  1085. woody/3.0 netinst ISO images provide installation kernels, drivers,
  1086. partitioning utilities, and the debootstrap program, which must be able
  1087. to retrieve the Debian Base and subsequent packages from the network.  
  1088.  
  1089.  
  1090. woody/3.0 unofficial full CD images
  1091.  
  1092. o  i386 (8 discs):
  1093. http://www.debian.org/CD/http-ftp/#testing  (list of mirror sites)
  1094. ftp://ftp.fsn.hu/pub/CDROM-Images/debian-unofficial/woody/
  1095.  
  1096. o  other architectures (7 discs):
  1097. http://cdimage-unofficial.debian.net/ (information pages)
  1098.  
  1099. woody/3.0 unofficial rescue & installation CD i386 images with 2.4.17
  1100. kernel and ReiserFS (Timo Benk):
  1101. http://rescuecd.sourceforge.net/
  1102.  
  1103. Experimental Debian-Installer images for unstable branch, i386 and PowerPC:
  1104. http://ftp.egr.msu.edu/debian/dists/unstable/main/
  1105.  
  1106. woody/3.0 install floppy images with 2.4.x kernels, and support for XFS 
  1107. and ReiserFS filesystems, software RAID, and LVM (Ionut Georgescu):
  1108. http://www.physik.tu-cottbus.de/~george/
  1109.  
  1110. woody/3.0 install floppy and netinst-CD images with 2.4.x kernels and
  1111. support for XFS and JFS filesystems (Angelo Ovidi):
  1112. http://xfdeb.sourceforge.net/
  1113.  
  1114. woody/3.0 install floppy images with 2.4.x kernels and support for XFS
  1115. filesystems, software RAID, and LVM (Eduard Bloch):
  1116. http://people.debian.org/~blade/XFS-Install/
  1117.  
  1118. (After installing onto XFS, you may be best advised to replace your XFS
  1119. driver and support code from CVS checkout, according to this article:
  1120. http://www-106.ibm.com/developerworks/linux/library/l-fs10.html)
  1121.  
  1122.  
  1123. Utilities to manage IBM's JFS filesystem are available in woody/3.0 or
  1124. sid/unstable, as package "jfsutils".  Documentation on JFS is available here:  
  1125. http://oss.software.ibm.com/jfs/  
  1126.  
  1127. This technique that I used for migrating a system to XFS before there
  1128. were such things as XFS-supporting Debian installation floppies could be
  1129. used as a general guide with any target filesystem type, in a pinch:
  1130. http://linuxmafia.com/~rick/linux-info/xfs-conversion
  1131.  
  1132.  
  1133. Progeny Graphical Installer can be used to do graphical (X11) or console
  1134. installs of woody/3.0 (on i386 and ia64) :  http://hackers.progeny.com/pgi/
  1135. Woody/3.0 i386 installation ISO based on PGI is here:
  1136. http://archive.progeny.com/progeny/pgi/
  1137.  
  1138. To clarify, PGI can be used, among other things, to construct
  1139. installable woody/3.0 CD images whose installer program is PGI.  
  1140. Progeny 1.0 itself used PGI, and is a perfectly fine way to install 
  1141. Debian woody/3.0 for i386:
  1142. ftp://ftp.progeny.com/progeny/debian/iso/Progeny1.0/
  1143. (But don't forget to re-point /etc/apt/sources.list at Debian proper,
  1144. since the Progeny Debian-variant distribution is dormant.)
  1145.  
  1146.  
  1147. Installing Debian from within a chroot jail on an already-running Linux
  1148. system: http://kmself.home.netcom.com/Linux/FAQs/DebianChrootInstall.html
  1149.  
  1150.  
  1151. Notes on Debian installation for PPC:
  1152. http://fungus.ucdavis.edu/~dylan/
  1153.  
  1154.  
  1155. FAI (Fully Automated Install) is a tool for stamping out Debian
  1156. machines, e.g., for a cluster:
  1157. http://www.informatik.uni-koeln.de/fai/
  1158.  
  1159. The Autoinstall tool creates floppy images that can install Debian
  1160. systems without any user interaction:
  1161. http://packages.debian.org/unstable/admin/autoinstall-i386.html
  1162.  
  1163.  
  1164.  
  1165. The first time you install a 2.4.x kernel on a Debian system that has
  1166. never had one before, you'll see the following sort of caution:
  1167.  
  1168.    You are attempting to install an initrd kernel image (version 2.4.19-686)
  1169.    This will not work unless you have configured your boot loader to use
  1170.    initrd. (An initrd image is a kernel image that expects to use an
  1171.    INITial Ram Disk to mount a minimal root file system into RAM and use
  1172.    that for booting).
  1173.    As a reminder, in order to configure lilo, you need to
  1174.    add an 'initrd=/initrd.img' to the image=/vmlinuz
  1175.    stanza of your /etc/lilo.conf
  1176.    I repeat, You need to configure your boot loader. If you have already done
  1177.    so, and you wish to get rid of this message, please put
  1178.      `do_initrd = Yes'
  1179.    in /etc/kernel-img.conf. Note that this is optional, but if you do not,
  1180.    you'll continue to see this message whenever you install a kernel
  1181.    image using initrd.
  1182.    Do you want to stop now? [Y/n]
  1183.  
  1184. What this means is that key hardware drivers are in an initial RAMdisk
  1185. that lilo must be made aware that it must provide to the booting kernel,
  1186. otherwise booting will not succeed.  You can do this _before_ installing
  1187. such a kernel, if you like.  E.g., modify the "vmlinuz" stanza near the
  1188. bottom of /etc/lilo.conf from:
  1189.  
  1190.    image=/boot/vmlinuz
  1191.            label=linux
  1192.            read-only
  1193.  
  1194. to
  1195.  
  1196.    image=/boot/vmlinuz
  1197.            label=linux
  1198.            initrd=/initrd.img
  1199.            read-only
  1200.  
  1201. After installing the kernel, if you want to ensure that everything is
  1202. OK, then do "/sbin/lilo -v" as the root user, before rebooting.  If
  1203. there are no complaints about inability to find files referenced in
  1204. lilo.conf, you should be safe to reboot.
  1205.  
  1206.  
  1207.  
  1208. # apt-cache search <search term>
  1209.  
  1210. lists you all available packages that fit somehow the search term
  1211. (search term can be the program name, parts of that name, a description ...)
  1212.  
  1213. If you want more info on a package:
  1214.  
  1215. # apt-cache show <package name>
  1216.  
  1217. (auto-apt and apt-file are also useful for finding what package provides 
  1218. a given file.)
  1219.  
  1220. after that, you only need to install the usual way:
  1221.  
  1222. # apt-get install <package name>
  1223.  
  1224.  
  1225.  
  1226. dpkg-reconfigure packagename   will re-do the package's configuration
  1227. step.
  1228.  
  1229.  
  1230.  
  1231. To put a package on hold (without having to use dselect):
  1232. # echo "packagename hold" | dpkg --set-selections
  1233.  
  1234.  
  1235. Want to try your hand at making .deb archives from plain source
  1236. tarballs?  Install the debhelper package.  It has tools to guide you
  1237. through the process.
  1238.  
  1239.  
  1240.  
  1241. The deborphan utility returns a list of libs on your system that are no
  1242. longer being used by any packages.   The debfoster utility is a somewhat
  1243. more systematic and comprehensive utility, that identifies and removes 
  1244. packages no longer needed.
  1245.  
  1246.  
  1247.  
  1248. Need to reconfigure your system?  Run "base-config".  This re-runs the
  1249. latter part of the installer program.
  1250.  
  1251.  
  1252.  
  1253. CPAN access in Debian:  Use the dh-make-perl utility:
  1254. Go to CPAN and figure out what you want.  Then, as root, do:
  1255. # "dh-make-perl --cpan <Module> --build --install"
  1256.  
  1257.  
  1258.  
  1259. Writing out your current installed packages:
  1260.  
  1261.      # dpkg --get-selections >selections.txt
  1262.  
  1263. And get their current versions:
  1264.  
  1265.      # COLUMNS=150 dpkg -l > packages.txt
  1266.  
  1267. To reconstruct the system, install the Debian Base System, then:
  1268.  
  1269.      # dpkg --set-selections <selections.txt
  1270.      # apt-get -u dist-upgrade
  1271.  
  1272. Relevant to that, quoting from a Slashdot post:
  1273.  
  1274. > Then I figured out the painless way to install debian: go through the
  1275. > installation and install the bare minimum that you absolutely need (this
  1276. > means no X!). Then once you've got that running, which is quick and
  1277. > easy, use apt for everything else you use. This has the side benefit
  1278. > that there's no wasted space on your drive.
  1279.  
  1280. Yes! That is the way to do it. dselect is not required for anything.
  1281. Bypass it (in favor of apt) and your life will be much easier. If you're
  1282. a current Debian user, it's even better: just run "dpkg --get-selections
  1283. | awk '{ print $1 }' >package.list" to save your current list of
  1284. packages. Then on the new system, "apt-get install $(cat package.list)"
  1285. to have [most] of your previous software installed automatically. (There
  1286. will be some hangups. Use the "--no-act" option and edit your package
  1287. list accordingly. This is no big deal.) 
  1288.  
  1289.  
  1290.  
  1291.  
  1292. Or just:
  1293. dpkg -get-selections > file; then later 
  1294. dpkg --set-selections < file && apt-get dselect-upgrade
  1295.  
  1296.  
  1297.  
  1298. If you're going to build software from source code, make sure you
  1299. install the "build-essential" package.
  1300.  
  1301. Then:
  1302.  
  1303.      # apt-get build-dep package
  1304.  
  1305. ...will ensure that you've satisfied the package's build dependencies.
  1306.  
  1307.      # apt-get source package
  1308.  
  1309. ...retrieve the package's source tree, and unpacks it into the current
  1310. directory.
  1311.  
  1312. cd into the tree, and make any desired source changes.  The ./debian
  1313. directory contains package metadata / build instructions.  While in the 
  1314. source tree, executing
  1315.  
  1316.      # dpkg-buildpackage
  1317.  
  1318. ...compiles the package, and places a .deb file in the parent directory,
  1319. which you can then install with dkpg -i (using fake root or logged in
  1320. as the root user).
  1321.  
  1322. E.g.,
  1323.  
  1324.      # dpkg-buildpackage -us -uc
  1325.      ("-us" means unsigned source.  "-uc" means unsigned changes.)
  1326.  
  1327. (Alternatively, cd into the source directory, and do "debian/rules
  1328. binary" using fakeroot or logged in as the root user.)
  1329.  
  1330.  
  1331. The apt-build utility can help this process:
  1332.  
  1333. Description: Frontend to apt to build, optimize and install packages
  1334.   This is an apt-get front-end for compiling software optimized
  1335.   for your architecture by creating a local repository with built packages.
  1336.   It can manage system upgrade too.
  1337.  
  1338.  
  1339. The pentium-builder package will let you set system-wide options so that
  1340. all compiles from source will be optimised for your CPU architecture.
  1341. (Despite the name, it can optimise for Athlon, etc.)
  1342.  
  1343.  
  1344. The apt-src package is a much cleaner, newer, and more comprehensive 
  1345. alternative to dpkg-buildpackage, "for downloading, installing,
  1346. upgrading, and tracking Debian source packages".  The manpage gives 
  1347. some good examples of usage:
  1348.  
  1349.       To install the source to pine to /usr/src, build it, and install the
  1350.        resulting debs:
  1351.  
  1352.          apt-src install --location=/usr/src -i pine
  1353.  
  1354.        To track changes to said installed pine source package, and install
  1355.        debs whenever a new version comes out:
  1356.  
  1357.          apt-src install -i pine
  1358.  
  1359.        To install a local copy of package foo, which you are going to apply a
  1360.        local patch to:
  1361.  
  1362.          apt-src install foo
  1363.          cd foo-version
  1364.          patch <~/my-foo-patch
  1365.          apt-src build --installdebs foo
  1366.  
  1367.        To upgrade your local copy of foo, bringing your patch forward, and
  1368.        building and installing new debs:
  1369.  
  1370.          apt-src install -i foo
  1371.  
  1372.        To import the source tree in /usr/src/linux, which you unpacked from a
  1373.        ftp.kernel.org tarball (or from the kernel-source package) into
  1374.        apt-src, so it knows about it:
  1375.  
  1376.          apt-src import kernel --location=/usr/src/linux --version=2.4.18
  1377.  
  1378.        [...]
  1379.  
  1380. Quoting author Joey Hess:
  1381.  
  1382. "'apt-src install' source gives you a source-version tree in the [current
  1383. directory].  Modify to suit, and 'apt-src build' source. If a new version
  1384. comes along, 'apt-src upgrade' source to upgrade the tree, patching your
  1385. local changes forward.  Pass in --installdebs to any of these commands
  1386. to make it build and install a .deb."
  1387.  
  1388.  
  1389.  
  1390. An example of building from source using OpenLDAP (using debuild instead
  1391. of dpkg-buildpackage, and pointing out that you can make local changes
  1392. to the Debianised source package immediately prior to building the
  1393. binary package):
  1394.  
  1395. # apt-get source slapd
  1396. ...
  1397. # cd openldap2-2.1.23
  1398. ...modify debian/rules, debian/changlog, source code...
  1399. # debuild -uc -us -rfakeroot
  1400. # dpkg --install ../slapd_2.1.23-blah.deb 
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406. To compile kernels and auto-generate .deb packages, install and use the 
  1407. kernel-package package (which provides the make-kpkg utility).
  1408.  
  1409.      $ cd /directory/where/you/unpacked/a/kernel/tarball
  1410.      $ make config | make menuconfig | make xconfig | make oldconfig
  1411.      $ make-kpkg clean
  1412.      $ make-kpkg --initrd --revision=custom.1.0 kernel_image
  1413.      # (as root, or using fakeroot)  dpkg -i ../kernel-image-X.XXX_1.0_.deb
  1414.  
  1415. Kirk Strauser has a more-detailed explanation here:
  1416. http://subwiki.honeypot.net/cgi-bin/view/Main/DebianKernelBuilding
  1417.  
  1418.  
  1419.  
  1420. Details of how to keep /usr mounted read-only and still let apt work
  1421. correctly without manual intervention:
  1422. http://lists.debian.org/debian-devel/2001/debian-devel-200111/msg00212.html
  1423.  
  1424.  
  1425.  
  1426.  
  1427. Debian-NetBSD is a port of the Debian architecture to the NetBSD kernel:
  1428. http://www.debian.org/ports/netbsd/
  1429. http://debian-bsd.sourceforge.net/
  1430.  
  1431.  
  1432. Debian tools for OpenBSD: 
  1433. http://lists.debian.org/debian-devel/2002/debian-devel-200204/msg01114.html
  1434. http://non-us.debian.org/~andreas/obsd/
  1435.  
  1436.  
  1437. Debian GNU/FreeBSD:
  1438. http://lists.debian.org/debian-bsd/2002/debian-bsd-200204/msg00021.html
  1439.  
  1440.  
  1441. # KDE v. 3.1 .deb packages for i386 will probably gradually appear in
  1442. # official package maintainer's (Chris "calc" Cheney's) pre-release collection.
  1443. deb http://people.debian.org/~ccheney/kde-3.1.1-1/ ./
  1444.  
  1445.  
  1446. "WhizNDR"(of the #debian-kde IRC channel on irc.openprojects.net) at
  1447. Genius Systems offers what appears to be an almost complete (no KOffice)
  1448. KDE3 set for i386 and PPC, here: 
  1449. http://kde3.geniussystems.net/
  1450. Instructions are here:  
  1451. http://calc.cx/kde.txt
  1452. Lists of unofficial apt sources:
  1453. http://mypage.bluewin.ch/kde3-debian/
  1454. http://www.doc.ic.ac.uk/~pc99/debian/kde3.html
  1455.  
  1456. KOffice 3.x and a number of other KDE3 apps are available in unofficial
  1457. packages (Ben Burton's) for i386 only, here:
  1458. http://people.debian.org/~bab/kde3/
  1459.  
  1460. Daniel Stone will eventually offer his here:
  1461. ftp://ftp.cs.umn.edu/pub/debian-misc/daniels/
  1462.  
  1463. KDE 3.1 packages from the KDE Project for i386 and PPC are here:
  1464. deb http://download.us.kde.org/pub/kde/stable/latest/Debian/ stable main
  1465.  
  1466. KDE 3.1 packages compiled with the old gcc 2.95 (the "Karolina" rendition), i386
  1467. deb http://wh9.tu-dresden.de/kde3/karolina ./ 
  1468.  
  1469. KDE 3.1 packages compiled with the old gcc 2.95 (the "Karolina" rendition), PPC
  1470. deb http://bulmalug.net/~gallir/debian/kde31-powerpc/ ./
  1471.  
  1472. KDE 3.1 RC5 for i386:
  1473. deb http://shakti.ath.cx/debian/kde3.1 ./
  1474.  
  1475. KDE 3.1 for i386, PPC:
  1476. deb http://ktown.kde.org/~nolden/kde stable main 
  1477.  
  1478.  
  1479.  
  1480. XFree86 4.2.x preliminary .deb packages are available here (Branden Robinson
  1481. and others):
  1482. http://people.debian.org/~branden/
  1483. http://people.debian.org/~branden/sid/
  1484. http://people.brainfood.com/~doogie/x4.2/mirror 
  1485. deb http://people.debian.org/~blade/woody/i386/ ./
  1486.  
  1487. XFree 4.2 packages for PPC and i386 with DRI support:
  1488. deb http://people.debian.org/~daenzer/dri-trunk/ ./ 
  1489. deb http://people.debian.org/~daenzer/dri-mach64/ ./ 
  1490.  
  1491. XFree86 4.2.1:
  1492. deb http://people.fsn.hu/~pasztor/debian woody xfree
  1493. deb http://people.debian.org/~frankie/debian woody/x421/ 
  1494.  
  1495. XFree86 4.2.99.3 packages for i386:
  1496. deb http://people.debian.org/~acid unstable xfree86 
  1497.  
  1498. XFree86 4.3 for i386, PPC:
  1499. deb http://xf86-debs.mirror.positive-internet.com/current/sid/$(ARCH) ./
  1500.  
  1501. XFree86 4.3 for i386:
  1502. deb http://people.debian.org/~mmagallo/packages/xfree86/i386/ ./
  1503. (Maintainer Daniel Stone pleads with people to not use these packages
  1504. republished by Marcelo Magallon, and use the Experimental branch
  1505. packages instead, if they need early access to 4.3.)
  1506.  
  1507. XFree86 4.3.0-0pre1v4 ("experimental" branch) for all architectures:
  1508. deb http://http.us.debian.org/debian/project/experimental main
  1509. ...and this in /etc/apt/preferences:
  1510.   Package: *
  1511.   Pin: release a=experimental
  1512.   Priority: 1001
  1513. (Warning:  This may pull in other packages from the "experimental"
  1514. branch, which might have adverse consequences.)
  1515.  
  1516. Sane, XSane scanner packages for i386 and hppa: 
  1517. deb http://people.debian.org/~aurel32/SANE stable main 
  1518.  
  1519.  
  1520.  
  1521. OpenOffice.org .deb packages (unofficial) are here:
  1522. http://www.linux-debian.de/openoffice/
  1523. Use one of these /etc/apt/sources.list lines:
  1524.    deb ftp://ftp.vpn-junkies.de/openoffice unstable main contrib
  1525.    deb http://www.mx1.ru/~chris/openoffice unstable main contrib
  1526.    deb http://apt-proxy.sourceforge.net/openoffice unstable main contrib
  1527. Matching source packages are here:
  1528.    deb-src ftp://ftp.vpn-junkies.de/openoffice unstable main contrib
  1529.    deb-src http://www.mx1.ru/~chris/openoffice unstable main contrib
  1530.    deb-src http://apt-proxy.sourceforge.net/openoffice unstable main contrib
  1531. The package name is "openoffice.org", not "openoffice".
  1532. Note also that the package maintainer reorganises the directory tree 
  1533. occasionally, and sometimes omits the Packages[.gz] file that makes 
  1534. a directory apt-gettable.   (But you can still retrieve the directory's 
  1535. .deb files manually and "dpkg -i" install them.)   You'll need an 
  1536. openoffice.org .deb file and a compatible libstlport4.5 .deb file.
  1537. Mini-HOWTO is here:
  1538. http://lists.debian.org/debian-openoffice/2001/debian-openoffice-200110/msg00014.html
  1539. General instructions are here:
  1540. http://www.linux-debian.de/openoffice/install_build_howto.html
  1541.  
  1542. OpenOffice.org, WineX-light, WINE, fonts, Windows CODECs, Window Maker
  1543. themes, Nvidia drivers/kernels, BitTorrent, ffmpeg, nuppel video tools, 
  1544. lmsensors, nvrec, xv, YEPP:
  1545. deb http://www.esat.kuleuven.ac.be/~mleeman/debian unstable/
  1546.  
  1547.  
  1548. PureFTPd for i386:
  1549. deb http://pureftpd.sourceforge.net/debian/woody/ ./
  1550.  
  1551. pine, pico, pilot, & pine-tech-notes for i386:
  1552. deb http://src.braincells.com/debian sid/ 
  1553.  
  1554. pine, pico, pilot, & pine-tech-notes, flashplayer-mozilla,
  1555. flashplugin-nonfree, openoffice.org for i386:
  1556. deb http://kambing.vlsm.org/DLL/debian-local/dists/stable/lokal/binary-i386/ 
  1557.  
  1558. Opera Web browser:
  1559. deb http://deb.opera.com/opera stable non-free
  1560. deb http://deb.opera.com/opera testing non-free
  1561. deb http://deb.opera.com/opera unstable non-free
  1562. deb http://deb.opera.com/opera-beta stable non-free
  1563. deb http://deb.opera.com/opera-beta testing non-free
  1564. deb http://deb.opera.com/opera-beta unstable non-free
  1565.  
  1566. pine, pico, pilot, & pine-tech-notes
  1567. deb http://src.braincells.com/debian woody/ 
  1568.  
  1569.  
  1570. SpamAssassin for i386:
  1571. deb http://people.debian.org/~duncf/debian/ unstable main 
  1572.  
  1573.  
  1574.  
  1575.  
  1576. Early-release Mozilla and Nautilus packages are sometimes offered by the 
  1577. package-maintainer ("Kitame") here:  http://people.debian.org/~kitame/mozilla/
  1578.  
  1579.  
  1580. Mozilla 1.1 "Phoenix" lightweight browser unofficial packages are here:
  1581. deb http://lesbos.esat.kuleuven.ac.be/~mleeman/debian unstable/
  1582.   or
  1583. deb http://people.debian.org/~otavio woody mozilla
  1584.   or
  1585. deb http://people.debian.org/~eric/debian/i386 ./
  1586.  
  1587. Mozilla 1.1 and Galeon backport:
  1588. deb http://people.fsn.hu/~pasztor/debian woody mozilla
  1589.  
  1590. Mozilla 1.2.1 for i386:
  1591. deb http://people.debian.org/~frankie/debian/woody/kalem/ ./
  1592.  
  1593. Mozilla 1.3 backport to woody
  1594. deb http://debian.relativ.org/ ./
  1595.  
  1596.  
  1597.  
  1598.  
  1599. If you get "Dynamic MMap ran out of room", add this to
  1600. /etc/apt/apt.conf:  "APT::Cache-Limit 10000000;"
  1601.  
  1602.  
  1603.  
  1604. Mplayer and libaviplay-codecs unofficial packages here:
  1605. http://mplayer.nmeos.net/
  1606. http://www.mplayer.fr.st/
  1607. http://marillat.free.fr
  1608. deb http://marillat.free.fr/ unstable main
  1609.  
  1610. Xine and vlc-css unofficial packages for 3.0/woody i386 (and source) are here:
  1611. http://www.samfundet.no/~tfheen/debian/dists/woody/css/
  1612.  
  1613. divx4linux, gpg-idea, lame, transcode, xv, win32-codecs, gpsdrive
  1614. deb ftp://ftp.mowgli.ch/pub/debian sid unofficial
  1615. deb ftp://ftp.mowgli.ch/pub/debian sarge unofficial
  1616.  
  1617. Macromedia Flash Player 6 for x86 Linux (includes support for
  1618. Flash-format Sorenson video):
  1619. http://sluglug.ucsc.edu/macromedia/site_ucsc.html
  1620. http://ruslug.rutgers.edu/macromedia/site_ru.html
  1621. http://macromedia.mplug.org/site_uh.html
  1622.  
  1623. flashplayer-mozilla, acroread-plugin, acroread, xmms plugins, avidemux,
  1624. etc. for i386, sparc, hppa:
  1625. deb http://jeroen.coekaerts.be/debian/ unstable main contrib non-free
  1626.  
  1627.  
  1628. Filmgimp for i386:
  1629. deb http://www.cse.unsw.edu.au/~alau/debian/ ./ 
  1630.  
  1631. Cinelarra (formerly broadcast2000) for i386, PPC:
  1632. deb http://userpages.umbc.edu/~fu1/debian unstable main 
  1633.  
  1634. openh323 tools, Sylpheed-claws, ohphone, openmcu for i386:
  1635. deb http://tranq.dorms.spbu.ru/debian-local ./ 
  1636.  
  1637.  
  1638.  
  1639. Jamie Strandboge's unofficial GNOME2.2 backport to i386 are here:
  1640. deb http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody/gnome2.2/ ./
  1641. deb http://mirror.raw.no/gnome2.2/ ./
  1642.  
  1643. Instructions for building GNOME 2.2 on Debian:
  1644. http://www.linuxcompatible.org/story.php?id=17145
  1645.  
  1646. Gustavo Noronha Silva's unofficial GNOME2 packages for i386 are here:
  1647. deb http://gluck.debian.org/~kov/debian woody gnome2
  1648. (Above is not apt-gettable for lack of a Packages[.gz] file, 2003-01-04.)
  1649. deb http://people.debian.org/~kov/debian woody gnome2 
  1650.  
  1651. Ross Burton's way of installing GNOME2:
  1652. http://myweb.tiscali.co.uk/burtonini/computing/gnome2-build.html
  1653.  
  1654. GNOME2 sylpheed, pan, gthumb, gftp package for i386:
  1655. deb http://www.tu-harburg.de/~vkv/debian ./
  1656.  
  1657.  
  1658.  
  1659. WINE for i386:
  1660. deb http://people.debian.org/~andreas/debian wine main 
  1661.  
  1662.  
  1663. # Blackdown Java J2r1.3
  1664. deb ftp://ftp.tux.org/pub/java/debian testing non-free
  1665. deb ftp://ftp.tux.org/pub/java/debian unstable non-free
  1666.  
  1667. # Blackdown Java j2re1.4, j2sdk1.4, j2re1.3, j2sdk1.3, jre1.1, jdk1.1.
  1668. # Packaged for i386, PPC, and SPARC.
  1669. deb ftp://metalab.unc.edu/pub/linux/devel/lang/java/blackdown.org/debian unstable main non-free
  1670.  
  1671. # Blackdown Java j2r1.4.1
  1672. deb http://jopa.studentenweb.org/debian ./
  1673.  
  1674.  
  1675. Debian Java FAQ:
  1676. http://www.au.debian.org/doc/manuals/debian-java-faq/
  1677.  
  1678.  
  1679.  
  1680.  
  1681. To find all packages that depend on a given package:
  1682. Read the "Reverse Depends" output from "apt-cache showpkg <packagename>".
  1683.  
  1684.  
  1685.  
  1686.  
  1687. APT-GET TROUBLESHOOTING
  1688. -----------------------
  1689.  
  1690.      # apt-get upgrade -f         # continue upgrade even after error
  1691.          or
  1692.      # apt-get dist-upgrade -f    # continue dist-upgrade even after error
  1693.  
  1694. ...will fix many problems by running apt-get in "fix" mode.
  1695.  
  1696. To configure all not-yet-configured packages:
  1697.  
  1698.       # dpkg --configure -a
  1699.  
  1700. To RE-configure all installed packages
  1701.  
  1702.       # dpkg-reconfigure --all  # reconfigure all packages
  1703.  
  1704. To RE-configure specific installed packages:
  1705.  
  1706.       # dpkg-reconfigure --priority=medium package [...]
  1707.  
  1708. This will often fix a problematic dependency:
  1709.  
  1710.        # apt-get install -f package # override broken dependencies
  1711.  
  1712. If apt-get or dpkg is choking on something concerning an already 
  1713. installed package (e.g., the new package you want to install would
  1714. replace a file the existing package has already provided), sometimes
  1715. the easiest fix is to edit the installed-packages database, 
  1716. /var/lib/dpkg/status , directly.  (It's an ASCII file.) 
  1717.  
  1718. Make a safety copy of the file, then open /var/lib/dpkg/status in a text 
  1719. editor.  Search forward to find the paragraph concerning the package, 
  1720. which will begine with the line "Package: packagename".  Delete all
  1721. lines of the section concerning that specific package, and save.  Now,
  1722. resume package operations.
  1723.  
  1724.  
  1725.  
  1726. This is an example of an apt-get error caused by a file conflict, and 
  1727. how to resolve it:
  1728.  
  1729.    Unpacking replacement kdebase-libs ...
  1730.    dpkg: error processing
  1731.    /var/cache/apt/archives/kdebase-libs_4%3a2.2.2-14_i386.deb (--unpack):
  1732.     trying to overwrite `/usr/share/applnk/Settings/Sound/arts.desktop',
  1733.    which is also in package kdebase
  1734.    dpkg-deb: subprocess paste killed by signal (Broken pipe)
  1735.    Errors were encountered while processing:
  1736.     /var/cache/apt/archives/kdebase-libs_4%3a2.2.2-14_i386.deb
  1737.    E: Sub-process /usr/bin/dpkg returned an error code (1)
  1738.  
  1739. This happens because somebody made a bonehead packaging error, or a 
  1740. graceless transition of including a file in one package rather than the 
  1741. other.  The fix is as follows:
  1742.  
  1743. (1) Note down the names of the two packages that are both trying to
  1744. claim ownership of the same file.  In this case, package kdebase-libs
  1745. is trying to update a file previously installed by package kdebase.
  1746.  
  1747. (2) Stop and think for a moment about what's probably happening:  A
  1748. reasonable guess is that "arts.desktop" has simply been moved to
  1749. kdebase-libs, and your package database is being mulish because it
  1750. doesn't know this is OK.
  1751.  
  1752. (3) Do a "--force-overwrite" install of the new package, thus:
  1753.  
  1754.    # dpkg -i --force-overwrite kdebase-libs_4%3a2.2.2-14_i386.deb
  1755.  
  1756. (4) Recall and resubmit your apt-get command that choked, now that
  1757. there's no remaining conflict.
  1758.  
  1759.  
  1760. On very rare occasions, apt-get might refuse to do anything because 
  1761. some particular named package is in some broken state it can't deal with.
  1762. [Need an example error message, but don't have one yet.]
  1763.  
  1764. In such cases, you can make good use of the fact that Debian uses a plain 
  1765. ASCII file (/var/lib/dpkg/status) for its package database, to excise
  1766. the problem directly:  Make a backup copy of /var/lib/dpkg/status,
  1767. first.  (I've never needed this, but it seems such an easy precaution,
  1768. why not?)  Now, open /var/lib/dpkg/status in your favourite text editor.
  1769. Search for "Package: <packagename>", which will bring up a series of
  1770. non-blank lines comprising the package's status entry.  Remove
  1771. everything up to the first blank line.  Save.
  1772.  
  1773. Now, the package's files, themselves, are still installed, but the
  1774. Debian package records have selective amnesia:  The system believes that
  1775. package to be not installed.  Therefore, apt-get will cease stumbling on
  1776. the defective package entry:  You can now do other apt-get operations,
  1777. and reinstall the problem package (overwriting its installed files) at 
  1778. any future occasion, at your leisure.
  1779.  
  1780.  
  1781. If you wish to fix errors in a package's installation scripts, they're
  1782. in /var/lib/dpkg/info as packagename.postinst, packagename.preinst,
  1783. packagename.prerm, and/or packagename.postrm.  Debug the error, edit the
  1784. script, and then re-run dpkg -i packagename.  (This approach is greatly
  1785. to be preferred over using --force-something options or editing the
  1786. package database directly.)
  1787.  
  1788.  
  1789.  
  1790.  
  1791. Package Signing:
  1792.  
  1793. In woody/3.0 or later, install debsig-verify, debsigs, and debian-keyring.  
  1794. Thereafter, dpkg (1.9.21 or later) checks if debsig-verify is installed
  1795. and if so checks the signatures of packages you want to install. If a
  1796. package's signature is invalid, the package won't get installed.
  1797.  
  1798. See this thread:
  1799. http://lists.debian.org/debian-security/2002/debian-security-200207/msg00130.html
  1800.  
  1801. Optionally, one can use Fruhwirth Clemens's secpack to auto-apply 
  1802. security updates:  http://therapy.endorphin.org/secpack/
  1803. The issue of _meaningful_ package signing is complex, and I've attempted
  1804. to detail it here:
  1805. http://linuxmafia.com/~rick/linux-info/debian-package-signing
  1806.  
  1807.  
  1808.  
  1809.  
  1810. Hardware-recognition (and related) packages:
  1811.  
  1812. discover
  1813.   Hardware identification system (thank you, Progeny Systems, Inc.),
  1814.   for various PCI, PCMCIA, and USB devices.
  1815. kudzu, kudzu-vesa
  1816.   Hardware-probing tool (thank you, Red Hat Software, Inc.) intended to
  1817.   be run at boot time.  Requires hwdata package.  kudzu-vesa is the
  1818.   VBE/DDC stuff for autodetecting monitor characteristics.
  1819. mdetect
  1820.   Mouse device autodetection tool.  If present, it will be used to aid
  1821.   XFree86 configuration tools.
  1822. read-edid
  1823.   Hardware information-gathering tool for VESA PnP monitors.  If
  1824.   present, it will be used to aid XFree86 configuration tools.
  1825. sndconfig
  1826.   Sound configuration (thank you, Red Hat Software, Inc.), using isapnp
  1827.   detection.  Requires kernel with OSS sound modules.  Uses kudzu, aumix, 
  1828.   and sox.
  1829. hotplug
  1830.   USB/PCI device hotplugging support, and network autoconfig.
  1831. nictools-nopci
  1832.   Diagnostic and setup tools for many non-PCI ethernet cards
  1833. nictools-pci
  1834.   Diagnostic and setup tools for many PCI ethernet cards.
  1835. mii-diag
  1836.   "A little tool to manipulate network cards" (examines and sets the MII
  1837.   registers of network cards).
  1838. printtool
  1839.   Autodetection of printers and PPD support, via an enhanced version of 
  1840.   Red Hat Software's Tk-based printtool.  Requires the pconf-detect 
  1841.   command-line utility for detecting parallel-port, USB, and
  1842.   network-connected printers (which can be installed separately as
  1843.   package pconf-detect).
  1844.  
  1845. Don't forget that lspci and pnpdump will list installed PCI and ISApnp
  1846. devices, respectively.
  1847.  
  1848. Excellent article on ALSA sound setup in Debian:
  1849. http://www.linuxorbit.com/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=541
  1850.  
  1851. Having problems getting your USB mouse working on Debian?  See Ramesh
  1852. Panuganty's Debian tips:  http://panuganty.tripod.com/debiantips/ , and 
  1853. select "mouse" in upper-right selection menu.
  1854.  
  1855.  
  1856. Localisation:  System-wide, do:
  1857.    # dpkg-reconfigure locales
  1858. You'll be asked (1) which locales (country/language combinations) to
  1859. generate, and (2) which of those to set as default.
  1860. If you use mutt as your MUA, you can put lines like this in ~/.muttrc :         
  1861.    set charset =      "iso-8859-15"
  1862.    set send_charset = "us-ascii:iso-8859-1:iso-8859-15:utf-8"
  1863.  
  1864.  
  1865.  
  1866. Other things needed:
  1867. - Packages in incoming
  1868. - proposed-updates
  1869. - early access to security updates
  1870. - coherent explanation of /etc/apt/sources.list
  1871. - recovery from apt-get/dpkg problems
  1872. - diversions
  1873. - update-alternatives
  1874. - auto-apt
  1875. - apt-proxy and apt-cacher
  1876. - equivs
  1877. - apt-src
  1878.  
  1879.