a friend-o-mine just got up with debian 2.2/potato, and i crafted
this little intro to apt-get... your comments are welcome.

i indent using tabs (the One True Way) so feel free to set your
tabstops (vi, use :set ts=4) wherever you feel comfortable --
mine are set at 4:


# written by will trillich <[EMAIL PROTECTED]>
# 2000 oct 19, thurs

DEBIAN'S ADVANCED PACKAGE TOOL -- apt

        debian uses a cool packaging system that takes care of
        dependencies for you -- packageA may require packageB, which
        requires packageC, and the Advanced Package Tool (apt) will
        take care of installing packageC and packageB if you request
        packageA. very nice!

        to see what apt-* commands you have available, try this:
        type 'apt' at the command prompt of your shell, and then
        press CONTROL-D... most shells will then display for you all
        the commands (avilable on your $PATH list) that start with
        those letters. a great way to find useful nuggets!


SETUP -- Advanced Package Tool (apt)

        this little gizmo sets up the configuration file for you:

                apt-setup

        it asks you some questions and winds up configuring your
        /etc/apt/sources.list file, which is used by the apt
        utilities to download and upgrade packages on your debian
        system.

        /etc/apt/sources.list is the file that tells your
        AdvancedPackageTool (apt) where to look when you want to
        update current packages or install new ones.

        try

                man sources.list

        to learn about the format of this file.  for a list of
        debian mirrors to use in sources.list, try

                http://www.debian.org/misc/README.mirrors

        or just re-run the apt-setup utility.

        NOTE -- keep in mind that debian is a work-in-progress,
        meaning that as holes are found and bugs are kilt in the
        stable distribution, a whole new world is developing on the
        UNSTABLE distribution. if you need something from 'unstable'
        go ahead and try it; this is fine if you don't mind being on
        the "front lines" so to speak. most of us stick with the
        STABLE distribution, which has no new gizmos being created;
        only patches and fixes are added to the STABLE release. you
        might occasionaly want to delve into UNSTABLE territory, for
        some new functionality that's not available in the stodgy,
        old, >>dependable<< stable area.  it's up to you, but don't
        expect a refund if something breaks -- it's called UNSTABLE
        for a reason!

        you can hop back and forth between the two by changing
        'stable' to 'unstable' or vice-versa, in your sources.list
        file. stick with STABLE, though, if you can.

        if you're running a production server, definitely shy away
        from UNSTABLE unless you like soothing the frazzled nerves
        of management, and their paying customers, and your spouse,
        who keeps asking why you're always looking for a new job.


UPDATING YOUR SYSTEM -- apt-get upgrade

        once sources.list is set up and you're online, first you

                apt-get update

        to refresh the package list to include the latest fixes,
        and then simply

                apt-get upgrade

        to download, configure and then install any packages you've
        got that have been tweaked. you'll probably wanna do this
        periodically to squash bugs and plug security holes.


INSTALLING PACKAGES -- apt-get install

        when you're online, to install new packages you want to use,
        simply use something like

                apt-get install vim traceroute mysql-server mysql-client
                apt-get install logcheck

        to download, configure and install whichever packages you want


FINDING PACKAGES -- apt-cache search

        whether you're online or not--

        how do you find the package that's got the feature you want?
        there are several options, and all require that you know
        some of the accepted terminology of the feature you're
        after:

                apt-get update

        then when your package list is up-to-date,

                apt-cache search tunnel
                apt-cache search 'php.*sql'
                apt-cache search apache.\*perl
                apt-cache search elvis\|vim

        search packages with REGEX -- if your pattern uses any
        keystrokes that mean something to the shell (e.g. [|?*])
        you'll need to quote them so that apt-cache will be able to
        see them, instead of having the shell expand the term to
        a list of file names that mean something else entirely.

        NOTE -- apt-cache only knows about the package descriptions
        you've already downloaded. if there are new ones to be had,
        browse to http://packages.debian.org/PACKAGESUBSTRING to
        see what's available. for example:

                http://packages.debian.org/vnc
        
        will get you a listing of packages that contain the term
        "vnc" somewhere in the title.


DESCRIBING PACKAGES -- apt-cache show

        the simplest way to see the description of a package:

                apt-cache show postgresql
                apt-cache show iproute

        this displays what the package is designed to do, version
        info and so forth.


LISTING PACKAGES -- dpkg -l

        which packages are installed? do any need configuring?

                dpkg -l

        (that's a lower-case EL, not a one.) lists all INSTALLED
        packages.

                dpkg -l \*
        
        lists all packages.

                dpkg -l '*postgres*'

        list status of packages matching GLOB (not regex: a regex
        uses .* to mean 'any character, zero or more times'; in a
        glob, .* means a dot, followed by zero or more characters).
        if your pattern uses metacharacters (* ? | etc.) you'll need
        to quote it so that your command shell doesn't interpret it
        -- you want dpkg to see the pattern, instead.

        combine that with grep for some powerful searches:

                dpkg -l \* | grep ^pi

        finds installed packages marked to be purged.

                dpkg -l \* | grep "^i[^i]"
        
        lists packages marked for installation, that aren't
        installed yet.

                dpkg -l \* | grep '^[^i]i'
        
        shows installed packages that won't stay that way. see 'man
        grep' for more info on grep and 'man dpkg' for more on the
        listing format.


PACKAGE CONTENTS -- dpkg -L

                dpkg -L mysql
                dpkg -L apt

        (with an upper-case EL) shows all the files -- with full
        path names -- that are provided by the package.


FINDING WHICH PACKAGE SUPPLIES... -- dpkg -S

        how to find which package contains a certain file:

                dpkg -S postmaster
                dpkg -S 'doc/*sql' | cut -f1 -d: | sort -u

        search for packages that supply files whose paths contain
        the GLOB. see 'man cut' and 'man sort' for info on how to
        use these tools in your day-to-day mungings.


LEARN MORE

        try
        
                man apt-get
                man sources.list
                man dpkg

                man grep
                man cut
                man sort

        to learn more.


handy-dandy stuff, once you get used to it.


-- 
self-reference, n: see self-reference.

[EMAIL PROTECTED]   ***   http://www.dontUthink.com/

Reply via email to