mirror of https://github.com/fspc/dswim
freesource
23 years ago
1 changed files with 755 additions and 0 deletions
@ -0,0 +1,755 @@ |
|||||
|
<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 <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 |
||||
|
</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 <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) |
||||
|
</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 <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) |
||||
|
</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 |
||||
|
<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. |
||||
|
|
||||
|
<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 <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. |
||||
|
</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 <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. |
||||
|
</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-< = move to the beginning of the history |
||||
|
<br>Esc-> = 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> |
||||
|
|
Loading…
Reference in new issue