Debian System Wide Information Manager
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

756 lines
27 KiB

<html>
<head><title>swim by example</title></head>
<body text="#000000" bgcolor="#FFFFe0" link="#0000EF" vlink="#51188E"
alink="#FF0000">
</p>
<br>
<h2 align=center>The Swift, Wise, and Intuitive package Manager.</h2>
<br>
<p>
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.
<pre>
linuxalive:/home/swim/SWIMANIA$ swim -n --search quake/i --no
swim: found 17 package(s)
</pre>
<p>swim keeps a history for all searches.
<pre>
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
</pre>
<p>
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.
<pre>
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 &lt;andrewl@debian.org&gt;
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
</pre>
<p>
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.
<pre>
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 &lt;knghtbrd@debian.org&gt;
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 &lt;knghtbrd@debian.org&gt;
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 &lt;mdorman@debian.org&gt;
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)
</pre>
<p>This is what 1 now looks like in the history:
<pre>
1 gtkpak pak qstat
</pre>
<p>If apt is installed it is possible to find out how other packages will
be installed.
<pre>
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
</pre>
<p>
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!
<pre>
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 &lt;mdorman@debian.org&gt;
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)
</pre>
<p> As seen above, the reason why xqf has to be removed is due to a
dependency in qstat which the packager (Michael Alan Dorman
&lt;mdorman@debian.org&gt;) 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.
<pre>
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
</pre>
<p>
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.
<pre>
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
</pre>
<p>
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.
<p>
We can find the packages and the sources in their proper location on our local archive mirror.
<pre>
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
</pre>
<p>
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.
<pre>
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 <knghtbrd@debian.org> 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
</pre>
<p>Let's see if there is a menu entry, and check the MD5 checksum.
<pre>
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
</pre>
<p>It would be interesting to look at the man page for gtkpak.
<pre>
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"
</pre>
<p>
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.
<pre>
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
</pre>
<p>
If we have installed the packages with apt, we can check to see what kind of changes have been
made to our system.
<pre>
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
</pre>
<p>At this point the database for our installation hasn't been updated.
<pre>
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
</pre>
<p>
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."
<p>
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.
<pre>
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
</pre>
<p>
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.
<pre>
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
</pre>
<p> We decide to update with "--ndb" rather than to rebuild with
"--rebuildndb."
<pre>
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
</pre>
<p>
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.
<pre>
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 &lt;pistore@debian.org&gt;
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.
</pre>
<p>
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.
<pre>
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
</pre>
<p>
We notice a file in the lib directory, and we wonder what it belongs to.
<pre>
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)
</pre>
<p>
We want to find out what dependencies apt has.
<pre>
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
</pre>
<p>
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.
<pre>
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 &lt;andrewl@debian.org&gt;
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.
</pre>
<p>
Sometimes it is nice to know the total of what we have installed.
<pre>
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
</pre>
<p>
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.
<pre>
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"
</pre>
<p>We check to see what groups exist.
<pre>
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"
</pre>
<p>
We happen to be hamradio enthusiasts. Let's see what packages exist in the hamradio group.
<pre>
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"
</pre>
<p>
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.
<p>
Note: The key bindings may be different on your system.
<br>Ctrl-a = move to the beginning of the line
<br>Ctrl-e = move to the end of the line
<br>Ctrl-w = erase (kill) one word backward
<br>Esc-d = kill one word forward
<br>Esc-b = move one word backward
<br>Esc-f = move one word forward
<br>Ctrl-k = kill forward to the end of the line
<br>Ctrl-y = retrieve (yank) last item killed
<br>Ctrl-r = search backward
<br>Esc-&lt; = move to the beginning of the history
<br>Esc-&gt; = move to the end of the history
<pre>
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
</pre>
<p>
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.
</body>
</html>