From 8f41e5c5e97f83283c734f1d7115ad33778b4291 Mon Sep 17 00:00:00 2001 From: freesource Date: Fri, 12 Oct 2001 02:14:55 +0000 Subject: [PATCH] Here I am. --- swim-doc/html/swim_by_example.html | 755 +++++++++++++++++++++++++++++ 1 file changed, 755 insertions(+) create mode 100644 swim-doc/html/swim_by_example.html diff --git a/swim-doc/html/swim_by_example.html b/swim-doc/html/swim_by_example.html new file mode 100644 index 0000000..01f2330 --- /dev/null +++ b/swim-doc/html/swim_by_example.html @@ -0,0 +1,755 @@ + +swim by example + +

+ +
+

The Swift, Wise, and Intuitive package Manager.

+
+

+We run a search for case-insensitive matches for the word "quake." +Because we don't know how many matches the search will find, the +descriptions of all packages found are supressed with "--no." Note: "-n" +pertains to the not-installed (uninstalled) distribution. + +

+linuxalive:/home/swim/SWIMANIA$ swim -n --search quake/i --no
+swim: found 17 package(s)
+
+ +

swim keeps a history for all searches. + +

+linuxalive:/home/swim/SWIMANIA$ swim -hn
+    5  dpsclient-demos dgs dgs-dev freefont gs-aladdin gs-aladdin-manual
+gs-aladdin-manual-de gsfonts-other xpacman abc2ps efax ghostview gnome-gv
+gs gsfonts gsfonts-x11 gv hatman libroxen-tex pacman ppd-gs pstotext
+python-imaging svgalib1-altdev svgalibg1-dev tex4ht type1inst yorick
+    4  lsof-2.2
+    3  libwine-dev
+    2  libwine libwine-dev libwings-dev
+    1  gtkpak pak qstat quake-lib quake2 quake2-bin quake2-ctf quake2-dm
+xqf quake-3dfx quake-ggi quake-gl quake-lib-stub quake-sdl quake-server
+quake-svga quake-x11
+
+ +

+We can access any part of the history which we want. The first command looks at the +information pertaining to the package. The second command shows a listing of the packages +found for "quake." Note: When no numbers are specified for "-S", the number 1 is assumed. + +

+linuxalive:/home/swim/SWIMANIA$ swim -qnSi 3
+Package: libwine-dev                 Status: install ok installed
+Version: 0.0.20000109-1              Essential: no
+Section: otherosfs                   Priority: optional
+Installed-Size: 3680                 Source: wine
+Size: 729818                         Architecture: i386
+Distribution: unstable
+Maintainer: Andrew D. Lenharth <andrewl@debian.org>
+Description: Windows Emulator (Development files)
+ This is an ALPHA release of Wine, the MS-Windows emulator.  This is
+ still a developers release and many applications may still not work.
+ .
+ This package consists of the C header files.
+ .
+ Wine is often updated.
+
+linuxalive:/home/swim/SWIMANIA$ swim -qnS  
+gtkpak_0.2-1
+pak_0.2-1
+qstat_2.3e-1
+quake-lib_1.06-9
+quake2_3.20-5
+quake2-bin_3.20-1
+quake2-ctf_1.50-1
+quake2-dm_3.13-1
+xqf_0.8.99-1
+quake-3dfx_0.0.9-1
+quake-ggi_0.0.9-1
+quake-gl_0.0.9-1
+quake-lib-stub_1.9-1
+quake-sdl_0.0.9-1
+quake-server_0.0.9-1
+quake-svga_0.0.9-1
+quake-x11_0.0.9-1
+
+ +

+After looking at the descriptions for the packages found through the "quake" search we decide +to narrow down the search to "tools." Notes: We could have done this for any part of the +history by specifying a number. "--research" will not write the changes to the history, +"--refinesearch" will write the changes to the history. The qstat package is installed, but +there is a newer version. + +

+linuxalive:/home/swim/SWIMANIA$ swim -n --research tool
+Package: gtkpak                      Status: not-installed
+Version: 0.2-1                       Essential: no
+Section: games                       Priority: optional
+Installed-Size: 105                  Source: pak
+Size: 32182                          Architecture: i386
+Distribution: unstable
+Maintainer: Joseph Carter <knghtbrd@debian.org>
+Description: GTK program for manipulating pak archives
+ gtkpak is a nifty GTK tool for manipulating the pak archives used by Quake,
+ Quake 2, and QuakeWorld.  It can view, extract, create, and append pak
+ archives.  pak contains basic command-line utilities that can do much of
+ what gtkpak does without X or GTK, but gtkpak is easier to work with by
+ far.  Installing both won't hurt anything.
+
+Package: pak                         Status: not-installed
+Version: 0.2-1                       Essential: no
+Section: games                       Priority: optional
+Installed-Size: 110
+Size: 37412                          Architecture: i386
+Distribution: unstable
+Maintainer: Joseph Carter <knghtbrd@debian.org>
+Description: command-line tools for pak archives
+ This package contains pakx and pakc, a couple of tools for working with the
+ pak archives used by Quake, Quake 2, and QuakeWorld.  pakc can create and
+ add files to archives, pakx can list and extract files from them.  gtkpak
+ is a bit fancier but then again it requires X and GTK.
+
+Package: qstat                       Status: > hold ok installed (2.0b-1)
+Version: 2.3e-1                      Essential: no
+Section: games                       Priority: optional
+Installed-Size: 236
+Size: 68652                          Architecture: i386
+Distribution: unstable
+Maintainer: Michael Alan Dorman <mdorman@debian.org>
+Description: Command-line tool for querying quake (and other) servers
+ Qstat provides a simple interface for querying servers for a number
+ of games, including but not limited to quake, quakeworld, quake2,
+ quake3arena, unreal tournament, kingpin and others.
+
+swim: found 3 package(s)
+linuxalive:/home/swim/SWIMANIA$ swim -n --refinesearch tool --no
+swim: found 3 package(s)
+
+ +

This is what 1 now looks like in the history: +

+    1  gtkpak pak qstat
+
+ +

If apt is installed it is possible to find out how other packages will +be installed. + +

+linuxalive:/home/swim/SWIMANIA$ swim -qxnS
+gtkpak_0.2-1
+pak_0.2-1
+qstat_2.3e-1
+Reading Package Lists...
+Building Dependency Tree...
+The following packages will be REMOVED:
+  xqf 
+The following NEW packages will be installed:
+  gtkpak pak 
+The following held packages will be changed:
+  qstat xqf 
+1 packages upgraded, 2 newly installed, 1 to remove and 1065 not upgraded.
+Inst gtkpak
+Remv xqf
+Inst qstat
+Inst pak
+Conf gtkpak
+Conf qstat
+Conf pak
+
+ +

+Oh no, xqf is going to be removed! Let's make sure that this isn't a +package we want removed, but since we noticed a newer version of this +package is included in the unstable distribution, let's find out what's +going on here! + +

+linuxalive:/home/swim/SWIMANIA$ swim -qnxi xqf
+Package: xqf                         Status: > hold ok installed (0.5-1)
+Version: 0.8.99-1                    Essential: no
+Section: games                       Priority: optional
+Installed-Size: 182
+Size: 80426                          Architecture: i386
+Distribution: unstable
+Maintainer: Michael Alan Dorman <mdorman@debian.org>
+Description: X-based Quake Server Browser
+ XQF allows one to browse and choose quake servers to play on.
+Reading Package Lists...
+Building Dependency Tree...
+Some packages could not be installed. This may mean that you have
+requested an impossible situation or if you are using the unstable
+distribution that some required packages have not yet been created
+or been moved out of Incoming.
+
+Since you only requested a single operation it is extremely likely that
+the package is simply not installable and a bug report against
+that package should be filed.
+The following information may help to resolve the situation:
+
+Sorry, but the following packages have unmet dependencies:
+  xqf: Conflicts: qstat (< 2.1z-2.1a-0.1) but 2.0b-1 is to be installed
+E: Sorry, broken packages
+linuxalive:/home/swim/SWIMANIA$ swim -qnT qstat
+qstat_2.3e-1
+Depends: libc6 (>= 2.1.2)
+Conflicts: xqf (<< 0.9.2-1)
+
+ +

As seen above, the reason why xqf has to be removed is due to a +dependency in qstat which the packager (Michael Alan Dorman +<mdorman@debian.org>) will have to resolve by uploading a newer version of +xqf to the distribution. Sometimes necessary packages are still in +Debian's Incoming directory at the ftp site, and not in the distribution, +so we may want to check there first. If this isn't the case we will send +a bug report to Debian's Bug Tracking System pointing out that there needs +to be a newer version of xqf. In the meantime we have decided that we +only want gtkpak and pak. We will use swim's editing capabilities to take +gstat off the list. Notes: Another possibility for the bug shown above +is that apt's cache needs to be updated to reflect the changes in Debain's +distribution by using "swim --apt --update." When the history is edited +with "--stdin" the history makes a new entry reflecting the change. The +full history is accessible from "--stdin." Anybody can send a bug to +Debian's Bug Tracking System. + +

+linuxalive:/home/swim/SWIMANIA$ swim -qxznS --stdin 
+swim: type exit to finish --stdin
+swim: gtkpak pak      
+swim: exit
+Reading Package Lists... Done
+Building Dependency Tree... Done
+The following NEW packages will be installed:
+  gtkpak pak 
+0 packages upgraded, 2 newly installed, 0 to remove and 1067 not upgraded.
+Need to get 69.6kB of archives. After unpacking 220kB will be used.
+Get:1 ftp://ftp.debian.org unstable/main gtkpak 0.2-1 [32.2kB]
+Get:2 ftp://ftp.debian.org unstable/main pak 0.2-1 [37.4kB]                    
+Fetched 69.6kB in 1m15s (922B/s)                                               
+Selecting previously deselected package gtkpak.
+(Reading database ... 106015 files and directories currently installed.)
+Unpacking gtkpak (from .../archives/gtkpak_0.2-1_i386.deb) ...
+Selecting previously deselected package pak.
+Unpacking pak (from .../archives/pak_0.2-1_i386.deb) ...
+Setting up gtkpak (0.2-1) ...
+
+Setting up pak (0.2-1) ...
+gtkpak_0.2-1
+pak_0.2-1
+
+ +

+If we don't have apt we can still download these packages, and their sources. Here is another +way to do the same thing we did above without using apt. Notes: This time we saved some +typing by doing "--stdin" with "--research." We specified "--source" with "--ftp" to get the +sources as well as the packages, or we could have just gotten the sources by themselves by +specifying "--source_only" with "--ftp." Changes made while in "--stdin" are written to the +history. + +

+linuxalive:/home/swim/SWIMANIA$ swim -n --search quake/i --no
+swim: found 17 package(s)
+linuxalive:/home/swim/SWIMANIA$ swim -n --research tool --no --stdin --ftp --source
+swim: found 3 package(s)
+swim: type exit to finish --stdin
+swim: gtkpak pak      
+swim: exit
+swim: connected to ftp.debian.org
+swim: logged in to ftp.debian.org
+swim: downloading gtkpak_0.2-1.deb (32182 bytes)
+gtkpak_0.2-1  49823b28c9599dbf94e290e28e695bc2  OK
+swim: successful retrieval of gtkpak_0.2-1.deb
+swim: downloading pak_0.2-1.diff.gz (2623 bytes)
+swim: successful retrieval of pak_0.2-1.diff.gz
+swim: downloading pak_0.2-1.dsc (825 bytes)
+swim: successful retrieval of pak_0.2-1.dsc
+swim: downloading pak_0.2.orig.tar.gz (26972 bytes)
+swim: successful retrieval of pak_0.2.orig.tar.gz
+swim: downloading pak_0.2-1.deb (37412 bytes)
+pak_0.2-1  55842f97f80c5c37415a93a7f0709171  OK
+swim: successful retrieval of pak_0.2-1.deb
+swim: pak_0.2-1.diff.gz already exists
+swim: pak_0.2-1.dsc already exists
+swim: pak_0.2.orig.tar.gz already exists
+swim: logged out
+
+ +

+We notice that the sources only had to be downloaded once. Looking at the packages' +information we notice both packages share the same sources as indicated in the "Source" field. +The field is absent for the pak package because the source name is exactly the same as the +package's name, but for the gtkpak package this isn't the case, so the "Source" field is +present. + +

+We can find the packages and the sources in their proper location on our local archive mirror. + +

+linuxalive:/home/swim/SWIMANIA$ ls ~/.swim/pub/debian/dists/unstable/main/source/games
+pak_0.2-1.diff.gz  pak_0.2-1.dsc  pak_0.2.orig.tar.gz
+linuxalive:/home/swim/SWIMANIA$ ls ~/.swim/pub/debian/dists/unstable/main/binary-i386/games/
+gtkpak_0.2-1.deb  pak_0.2-1.deb
+
+ +

+We can go examine the packages. It is useful to check out the changelog and the copyright. +This is the initial release for this program. Note: "-v" will show the files in long format +(ls -l), "--df" show the directories as well as the files. + +

+linuxalive:/home/swim/SWIMANIA$ cd ~/.swim/pub/debian/dists/unstable/main/binary-i386/games/
+linuxalive:~/.swim/pub/debian/dists/unstable/main/binary-i386/games$ swim -qpl --copyright --changelog gtkpak_0.2-1.deb 
+#####copyright for gtkpak_0.2-1.deb#####
+
+taken from the README:
+
+(c) Michael Vance, 1999
+    briareos@lokigames.com
+    mkv102@psu.edu
+
+0. Intro
+
+gtkpak is a PAK file viewer for Gtk+. What are PAK files? A PAK file is used
+in id software games such as Quake and Quake 2, and their spin-offs. Just
+imagine collapsing an entire directory scheme into a big wad of files, and
+there you have a PAK file.
+
+The three binaries are built around the interface provided in pakfile.h,
+which is a C++ class that allows access to the contents of a PAKFile, including
+searching and extracting from an already existing PAK file, to add files and
+then writing a new PAK file. The three binaries are then just front-ends
+to this functionality, in one way or another.
+
+While it's tempting to make the classes provided in pakfile.h into a shared
+library, it's probably unnecessary. But it does make one tingly, eh?
+
+And all this is GPL'ed, of course. See the file COPYING for license details.
+
+
+#####changelog.Debian.gz for gtkpak_0.2-1.deb#####
+
+pak (0.2-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Joseph Carter   Thu,  8 Jul 1999 17:35:38 -0700
+
+Local variables:
+mode: debian-changelog
+End:
+
+usr/bin/gtkpak
+usr/share/man/man6/gtkpak.6.gz
+usr/doc/gtkpak/README
+usr/doc/gtkpak/copyright
+usr/doc/gtkpak/examples/pak0.pak
+usr/doc/gtkpak/changelog.Debian.gz
+usr/lib/menu/gtkpak
+
+ +

Let's see if there is a menu entry, and check the MD5 checksum. + +

+linuxalive:~/.swim/pub/debian/dists/unstable/main/binary-i386/games$ swim -qpm gtkpak_0.2-1.deb --md5sum
+#####menu for gtkpak_0.2-1.deb(gtkpak)#####
+?package(gtkpak):needs=X11 section=Games/Adventure\
+  title="GtkPak" hints=Quake command="/usr/bin/gtkpak"
+
+gtkpak_0.2-1  49823b28c9599dbf94e290e28e695bc2  OK
+
+ +

It would be interesting to look at the man page for gtkpak. + +

+linuxalive:~/.swim/pub/debian/dists/unstable/main/binary-i386/games$ swim -qpd gtkpak_0.2-1.deb 
+gtkpak_0.2-1
+
+usr/share/man/man6/gtkpak.6.gz
+usr/doc/gtkpak/README
+usr/doc/gtkpak/copyright
+usr/doc/gtkpak/examples/pak0.pak
+usr/doc/gtkpak/changelog.Debian.gz
+
+linuxalive:~/.swim/pub/debian/dists/unstable/main/binary-i386/games$ swim -qp gtkpak_0.2-1.deb --extract PWD\!usr/share/man/man6/gtkpak.6.gz
+gtkpak_0.2-1
+
+
+swim: gtkpak.6.gz has been extracted
+linuxalive:~/.swim/pub/debian/dists/unstable/main/binary-i386/games$ ls
+gtkpak.6.gz  gtkpak_0.2-1.deb  pak_0.2-1.deb
+linuxalive:~/.swim/pub/debian/dists/unstable/main/binary-i386/games$ zcat gtkpak.6.gz | nroff -man | less
+"man page for gtkpak will be visible"
+
+ +

+We could also extract the whole archive onto our system. Note: First, we checked to make +sure we wouldn't copy over any files from other installed packages. + +

+linuxalive:~/.swim/pub/debian/dists/unstable/main/binary-i386/games/test$ cd /
+linuxalive:/$ swim -qp ~/.swim/pub/debian/dists/unstable/main/binary-i386/games/gtkpak_0.2-1.deb --extract ALL
+gtkpak_0.2-1
+
+
+swim: gtkpak_0.2-1.deb has been extracted
+
+ +

+If we have installed the packages with apt, we can check to see what kind of changes have been +made to our system. + +

+linuxalive:/home/swim/SWIMANIA$ swim --db --check
+checking for new, changed, and removed packages
+NEW gtkpak
+NEW pak
+
+       TOTAL
+       -----
+NEW 2
+GONE 0
+CHANGED 0
+CHANGED STATUS 0
+
+ +

At this point the database for our installation hasn't been updated. + +

+linuxalive:/home/swim/SWIMANIA$ swim -q pak 
+package pak is not installed
+linuxalive:/home/swim/SWIMANIA$ 
+
+To update the database we will issue "--db" without "--check."
+
+linuxalive:/home/swim/SWIMANIA$ swim --db        
+checking for new, changed, and removed packages
+NEW gtkpak
+NEW pak
+
+       TOTAL
+       -----
+NEW 2
+GONE 0
+CHANGED 0
+CHANGED STATUS 0
+
+
+N|C|CS 2
+#2 N|C pak.list
+linuxalive:/home/swim/SWIMANIA$ swim -q pak
+pak_0.2-1
+
+ +

+We can check to see if the uninstalled distribution had any changes. Notes: The results below +indicate the changes found in the new Package databases that have been downloaded by updating +apt; if we don't have apt then swim's major mode "--ftp" can be used with "DF." With "--ndb" +use APT to indicate apt sources, or DF to indicate Package databases gotten directly through +swim's "--ftp". If we originally made the uninstalled distribution with an uninstalled +filesystem by using "--Contents DF" then to update the uninstalled distribution "--Contents +DF" should be used again; this isn't necessary when running a check. To rebuild +(--rebuildndb), update (--ndb), or check a distribution other than the default one, use +"--dists stable", "--dists frozen" or "--dists unstable." The newest Packages can +automatically be picked by using "--cron." + +

+A little blurb: Although not Debian approved or sanctioned, we find the unstable distribution +acceptably stable in relation to certain well-known commercial distributions despite +infrequent packaging bugs like the one shown in the xqf example above. The Debian +distribution adheres to a self-imposed level of quality found in no other distribution in the +world. Usually, unstable undergoes many changes so there isn't a time advantage over updating +DF versus rebuilding DF, but this process is easier on system resources. On the other hand, +updating FDBDF (no uninstalled filesystem) is faster. + + +

+linuxalive:/home/swim/SWIMANIA$ swim --apt --update; swim --ftp --Contents DF --onec;
+"output not shown"
+linuxalive:/home/swim/SWIMANIA$ swim --ndb --check APT 2> changes-today
+###         Site                     Date              Size (bytes)  Release
+
+                                     CONTRIB
+  1     ftp.debian.org       Mon Jan 17 17:57:57 2000    112774        2.2
+
+                                     NON-FREE
+  1     ftp.debian.org       Sun Jan 16 17:26:23 2000    279821        2.2
+
+                                       MAIN
+  1     ftp.debian.org       Mon Jan 17 17:57:12 2000    3048732       2.2
+
+swim: for CONTRIB, which ### do you want?: 1
+swim: for NON-FREE, which ### do you want?: 1
+swim: for MAIN, which ### do you want?: 1
+checking for new, changed, and removed packages
+
+       TOTAL
+       -----
+NEW 12
+GONE 16
+CHANGED 54
+CHANGED REVISION 162
+
+ +

+We can view all the changes because we stored them in a file. We can use swim to look at all +the changed packages except for the new ones which will be visible once we rebuild or update. +By looking at this file we are provided a view of the inner workings of Debian development. + +

+linuxalive:/home/swim/SWIMANIA$ cat changed-today | less
+CHANGED-REVISION gnujsp
+CHANGED iraf
+CHANGED iraf-common
+CHANGED iraf-ibin
+CHANGED iraf-noaobin
+CHANGED-REVISION jserv
+CHANGED-REVISION mailcrypt
+CHANGED plugger
+CHANGED-REVISION sarien
+NEW webrt
+"part of output not shown"
+GONE tinytable-zope
+GONE tip
+
+ +

We decide to update with "--ndb" rather than to rebuild with +"--rebuildndb." + +

+linuxalive:/home/swim/SWIMANIA$ swim --ndb APT --Contents DF --cron 2> changed-today
+checking for new, changed, and removed packages
+
+       TOTAL
+       -----
+NEW 12
+GONE 16
+CHANGED 54
+CHANGED REVISION 162
+G|C|CR 232
+#232 VIRTUAL G|C|CR zicq.list                                        
+Copying new Contents
+Compressing Contents
+N|C|CR 228
+#228 VIRTUAL N|C|CR zicq.list                                         
+#22 NO-C zope-siteaccess.list                        
+Appending search databases
+Updating status
+
+Sun Jan 23 14:59:04 2000  to  Sun Jan 23 16:39:23 2000
+
+ +

+We were wondering whether it was time to update gv, but we found out that there was only a +debian-revision change "r>" which means that the source code hasn't changed. There is no need +to update right now. + +

+linuxalive:/usr/lib/perl5/SWIM$ which gv
+/usr/X11R6/bin/gv
+linuxalive:/usr/lib/perl5/SWIM$ cd /usr/X11R6/bin
+linuxalive:/usr/X11R6/bin$ swim -qf gv
+gv_1:3.5.8-7
+linuxalive:/usr/X11R6/bin$ swim -qfni gv
+Package: gv                          Status: r> hold ok installed (1:3.5.8-7)
+Version: 1:3.5.8-15                  Essential: no
+Section: text                        Priority: optional
+Installed-Size: 477
+Size: 224778                         Architecture: i386
+Distribution: unstable
+Maintainer: Marco Pistore <pistore@debian.org>
+Description: A PostScript and PDF viewer for X using 3d Athena Widgets
+ `gv' is a comfortable viewer of PostScript and PDF files for the X
+ Window System.
+ .
+ It uses the `ghostscript' PostScript(tm) interpreter and is based
+ on the classic X front-end for `gs', `ghostview'. It is more
+ comfortable and more powerful than `ghostview'.
+ .
+ Some features as e.g. PDF files or anti-aliasing are only supported
+ if a recent ghostscript (4.0 or later) is installed.  With
+ anti-aliasing turned on, the text is very crisp and readable, with no
+ `stepping' on the slants at all.
+
+ +

+While we were in this directory we decided to do a little research. It is interesting to note +that for the installed system there are 14 files which don't belong to any packages. There +could be a variety of reasons for this (maybe we are slobs); this is good stuff to know. +Notes: To see the total list just add "-t" to the existing command-line options. There is a +big difference in using "." and "*", "." is the same as saying "./" but it only lists the +same package once, whereas "*" would look at all the files in the immediate directory and if +two files belong to the same package, that package will be shown twice for each file, it also +reports if a file doesn't belong to a package. + +

+linuxalive:/usr/X11R6/bin$ swim -qf .
+use --total or -t to see all 202 packages
+linuxalive:/usr/X11R6/bin$ swim -qfn .
+use --total or -t to see all 420 packages
+linuxalive:/usr/X11R6/bin$ swim -qft * | grep "not owned" | wc -l
+     14
+linuxalive:/usr/X11R6/bin$ swim -qfnt * | grep "not owned" | wc -l
+    162
+
+ +

+We notice a file in the lib directory, and we wonder what it belongs to. + +

+linuxalive:/lib$ swim -qf libthread_db-1.0.so --shlibs
+libc6_2.1.2-11
+Shlibs:
+ld-linux 2 libc6 (>= 2.1.2)
+libBrokenLocale 1 libc6 (>= 2.1.2)
+.. everything not shown ..
+libthread_db 1 libc6 (>= 2.1.2)
+libutil 1 libc6 (>= 2.1.2)
+
+ +

+We want to find out what dependencies apt has. + +

+linuxalive:/lib$ swim -qfnT /usr/bin/apt-get
+apt_0.3.16
+Depends: libc6, libc6 (>= 2.1), libc6 (>= 2.1.2), libstdc++2.10
+Suggests: dpkg-dev
+Provides: libapt-pkg2.6
+Replaces: deity, libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
+Conflicts: deity
+
+ +

+We need a header file called w32skrnl.h. We are in luck it's already on our system. Notes: +We could have done "locate w32skrnl.h" and then done a "swim -qf", but we haven't updated our +locatedb in months. The package installation will be tested by apt if it exists. + +

+linuxalive:/usr/include/wine$ swim -xn --ps w32skrnl\.h
+Package: libwine-dev                 Status: install ok installed
+Version: 0.0.20000109-1              Essential: no
+Section: otherosfs                   Priority: optional
+Installed-Size: 3680                 Source: wine
+Size: 729818                         Architecture: i386
+Distribution: unstable
+Maintainer: Andrew D. Lenharth <andrewl@debian.org>
+Description: Windows Emulator (Development files)
+ This is an ALPHA release of Wine, the MS-Windows emulator.  This is
+ still a developers release and many applications may still not work.
+ .
+ This package consists of the C header files.
+ .
+ Wine is often updated.
+
+swim: found 1 package(s)
+Reading Package Lists...
+Building Dependency Tree...
+Sorry, libwine-dev is already the newest version
+0 packages upgraded, 0 newly installed, 0 to remove and 1067 not upgraded.
+
+ +

+Sometimes it is nice to know the total of what we have installed. + +

+linuxalive:/usr/X11R6/bin$ swim -qa
+use --total or -t to see all 1449 packages
+linuxalive:/usr/X11R6/bin$ swim -qf /
+use --total or -t to see all 1449 packages
+linuxalive:/home/swim/SWIMANIA$ swim -qan   
+use --total or -t to see all 4525 packages
+
+ +

+We can check the MD5 checksum for all the configuation files on the system. Notes: MD5 +checksum can be performed on "-l", "-d", "-c", or "-p." This can only be performed on the +installed system. + +

+linuxalive:/home/swim/SWIMANIA$ swim -qact --md5sum
+a2ps_4.10.2-4
+ /etc/a2ps.cfg  eb909349a1bb2d1f4b4adc7ab1f75e56  OK
+
+acct_6.3.2-4
+ /etc/cron.daily/acct  d5e16c7f601c3a43d88fc8ede714c6e2  OK
+ /etc/cron.monthly/acct  9ca2c358e430f94c9ae00a1ce54e6e96  OK
+ /etc/init.d/acct  2f978d8517077c77e3262d7a6096fe2f  OK
+
+autolog_0.34-5
+ /etc/autolog.conf  b6ae10782ce13c45cbe72f9308b4caa1  OK
+ /etc/cron.d/autolog  805d268ea44c645299defc1c14495282  MISSING
+
+cfengine_1.4.9-2
+ /etc/cfengine/cfengine.conf  fd79d9462e92f88aa6c563f39e3e10d5  OK
+ /etc/cron.daily/cfengine  ac6a42f3be907b50e52834ae9d41fdbd  FAILED
+ /etc/cron.weekly/cfengine  fbdd90ecf2e68a4ced6a6abbffd32f62  OK
+"rest of output not shown"
+
+ +

We check to see what groups exist. + +

+linuxalive:/usr/lib/perl5/SWIM$ swim -q --allgroups
+"output not shown"
+linuxalive:/usr/lib/perl5/SWIM$ swim -qn --allgroups
+admin                     base                      comm
+contrib/admin             contrib/devel             contrib/doc
+contrib/games             contrib/graphics          contrib/interpreters
+contrib/libs              contrib/mail              contrib/math
+contrib/misc              contrib/net               contrib/news
+"rest of output not shown"
+
+ +

+We happen to be hamradio enthusiasts. Let's see what packages exist in the hamradio group. + +

+linuxalive:/usr/lib/perl5/SWIM$ swim -qng hamradio
+acfax_981011-3
+ax25-apps_0.0.4-1
+ax25-tools_0.0.5-1
+colrconv_0.99.2-4
+dgipip_0.1-2
+gc_1.07-3
+hamsoft_0.1.1-1
+"rest of the output not shown"
+
+ +

+We edit the hamradio group package list with "--stdin." Notes: "--stdin" needs to be +called with either "--ftp", "-x", "-xyz", "-xz", "--purge", "-r", or "--remove" to work. This +is a readline interface. If we are in emacs mode (see man bash) here are some commands we can +use to make the process easier. + +

+Note: The key bindings may be different on your system. +
Ctrl-a = move to the beginning of the line +
Ctrl-e = move to the end of the line +
Ctrl-w = erase (kill) one word backward +
Esc-d = kill one word forward +
Esc-b = move one word backward +
Esc-f = move one word forward +
Ctrl-k = kill forward to the end of the line +
Ctrl-y = retrieve (yank) last item killed +
Ctrl-r = search backward +
Esc-< = move to the beginning of the history +
Esc-> = move to the end of the history + +

+linuxalive:/usr/lib/perl5/SWIM$ swim -qng hamradio --stdin --ftp  
+swim: type exit to finish --stdin
+swim: acfax ax25-apps ax25-tools colrconv dgipip gc hamsoft icom jiffy jiffy-per
+l-tk libax25 libax25-dev logconv morse nec node p10cfgd pileup predict rspfd sccw twclock twcw
+twlog unixcw wwl wxd xconvers xnecview z8530-utils z8530-utils2
+
+ +

+We are finding new ways to swim everyday; we often solve problems in minutes which used +to take an hour or more to solve. If you find a novel use for swim, please tell us, and we +will add it to these examples. + + + +