mirror of https://github.com/fspc/dswim
freesource
23 years ago
4 changed files with 2146 additions and 0 deletions
@ -0,0 +1,140 @@ |
|||
READ THE REQUIREMENTS |
|||
|
|||
Now you can skip the next three steps if you have an installed Debian |
|||
distribution and you are in a hurry for a demonstration, but you will miss |
|||
out on swim's more awesome capabilities. With that said..... |
|||
|
|||
FIRST GET SWIMRC PREPARED |
|||
|
|||
Edit the swimrc configution file, you should read swimrc(5), but I'll ask |
|||
you some question right now. You can find swimrc in /etc/swim, and in |
|||
your home directory in the subdirectory .swim. Entries in the home |
|||
directory swimrc override ones in /etc/swim. |
|||
|
|||
Are you using an installed Debian system? If so, you almost definitely |
|||
have dpkg installed. So uncomment this line in /etc/swim/swimrc by |
|||
removing the pound sign. |
|||
|
|||
$package_tool = "/usr/bin/dpkg"; |
|||
|
|||
otherwise |
|||
|
|||
$package_tool = "/usr/bin/ar"; |
|||
|
|||
Do you have the apt package installed? Configure this, or -xyz will not |
|||
work. |
|||
|
|||
$apt = "yes"; |
|||
|
|||
Now you need to decide what architecture you would like to be swim's |
|||
default value when you download, build, and query the not-installed |
|||
databases. |
|||
|
|||
What flavor, do you want alpha, arm, hurd-i386, i386, m68k, powerpc, |
|||
or sparc? (more coming :*) I decided on ..... |
|||
|
|||
$architecture = "i386"; |
|||
|
|||
What kind of distribution do you want to be your default? stable, |
|||
unstable, frozen, or experimental (rare) I like the ever changing ... |
|||
|
|||
$distribution = "unstable"; |
|||
|
|||
Decide which sections you want? You can have this |
|||
|
|||
@user_defined_section = qw(main contrib non-free); |
|||
|
|||
or this. |
|||
|
|||
@user_defined_section = qw(main); |
|||
|
|||
or ..... |
|||
|
|||
|
|||
SECOND GET SWIMZ.LIST PREPARED |
|||
|
|||
Now grab a copy of the README.mirrors from |
|||
http://www.debian.org/misc/README.mirrors, you will need this to set-up |
|||
the configuration file /etc/swim/swimz.list. |
|||
|
|||
If your using apt make sure to read swim(8) to get the nitty gritty on how |
|||
you can synchronize swim along with apt :*} using swimz.list. |
|||
|
|||
Humm, you found a site which has the distribution you want, and you know |
|||
which section you want, and you are happy knowing about packages which can |
|||
install on the architecture you computer happens to have. |
|||
|
|||
So what site is that? |
|||
|
|||
deb ftp://ftp.swimz.org |
|||
|
|||
What was the directory you happened to notice in the README.mirrors page? |
|||
|
|||
deb ftp://ftp.swimz.org/pub/debian |
|||
|
|||
What distribution did you want? Note: You won't want to use the Release |
|||
code name for the distribution, see swimz.list. |
|||
|
|||
deb ftp://ftp.swimz.org/pub/debian unstable |
|||
|
|||
What sections did you want? |
|||
|
|||
deb ftp://ftp.swimz.org/pub/debian unstable main contrib non-free |
|||
|
|||
Now put this line in the swimz.list, exactly like written, and ofcourse |
|||
use the values you want. |
|||
|
|||
THIRD GET THE DEBIAN DATABASE WITH FTP |
|||
|
|||
Just issue this command. |
|||
|
|||
swim --ftp --Contents DF --Packages DF |
|||
|
|||
and wait a little bit. |
|||
|
|||
|
|||
FOURTH BUILD THE DATABASES |
|||
|
|||
This is for a computer system with a Debian distribution installed. |
|||
|
|||
swim --initdb |
|||
|
|||
This next part applies to people who followed all the steps to get here, |
|||
and also read the important requirements at the top. This makes the |
|||
not-installed databases. Go take a walk, or a swim :*} |
|||
|
|||
swim --initndb --Contents DF DF |
|||
|
|||
When either of these commands are complete they will say "over and out". |
|||
|
|||
NOW WHAT? |
|||
|
|||
Now the real fun begins. If you happen to have some experience with rpm |
|||
you already know some of the options which swim uses, but be prepared for |
|||
surpises. swim(8) goes into more detail, the "Maximum RPM" book by |
|||
Edward C. Bailey which is freely available may provide help for swim's |
|||
--query option, but you will find that swim greatly diverges from rpm. |
|||
|
|||
Try something like this, and do not use the -n unless you made the |
|||
not-installed databases, on the other hand, REMEMBER to use -n if you |
|||
do not have an installed system.... |
|||
|
|||
swim -n --search swim |
|||
|
|||
now do this.. |
|||
|
|||
swim -qnSi or swim -hn |
|||
|
|||
go to the directory /usr/bin and do |
|||
|
|||
swim -qnf . |
|||
|
|||
you probably will have to do |
|||
|
|||
swim -qnft . |
|||
|
|||
...the fun is just beginning... |
|||
|
|||
Where are you swimming to today? |
|||
|
|||
|
@ -0,0 +1,90 @@ |
|||
REQUIRMENTS: |
|||
|
|||
Don't get intimidated, this is just to cover all bases, most computer |
|||
systems meet the requirements. |
|||
|
|||
PERL: Yes, preferably Perl 5.004.04 or greater. |
|||
|
|||
FTP CAPABILITIES: (optional) You may need to get Net::FTP (Debian |
|||
libnet-perl package) which depends on Data::Dumper (Debian data-dumper |
|||
package). Also check the CPAN mirrors or the PACKAGES below. You also |
|||
need gcc if you do not have a Debian system so that swim can figure out |
|||
what architecture your machine is. You can also find these modules at the |
|||
CPAN mirrors or the PACKAGES below. |
|||
|
|||
READLINE CAPABILITIES: (optional) For nice readline cpabilities get |
|||
Term::ReadLine::Gnu or alternatively Term::ReadLine::Perl which depends on |
|||
Term::ReadKey. Term::ReadLine::Gnu may be tricky to set-up on non Debian |
|||
systems because it depends on ncurses3.4 and the GNU Readline Library |
|||
version 2.1 or later, but Term::ReadLine::Perl is much easier to set-up |
|||
and allows a huge amount of package names to be present on the command |
|||
line without a segmentation fault. You could get swim's ftp capabilities |
|||
working first, and then just fetch the Debian ReadLine package(s) and then |
|||
use swim's --extract option to set the package(s) up, but, it is sure fun |
|||
doing a 'make test' when setting up the ReadLine modules! You can also |
|||
find these modules at the CPAN mirrors or the PACKAGES below. |
|||
|
|||
DATABASE CAPABILITIES: DB_File comes standard with Perl. But, this |
|||
doesn't mean it is compiled for the newer Berkeley Database Libraries. DB |
|||
1.85 has known bugs which effect SWIM. SWIM can work with 1.85, but |
|||
--rebuildflatdb and --rebuildflatndb will not work properly. You can run |
|||
a test to find out whether or not you need to make the change if you have |
|||
db_dump available on your system (which db_dump). Enter this: |
|||
|
|||
perl -e 'use DB_File; tie %testdb,'DB_File',"testdb";'; |
|||
db_dump testdb |
|||
|
|||
If 'db_dump testdb' produces an error you need to make the change by |
|||
installing the newest DB_File. If you have a version of libc6 less than |
|||
2.1, first, install a new version (2.3.4 or greater) of the Berkeley DB if |
|||
you don't already have it installed. If you get DB_File from CPAN you |
|||
will need to edit config.in to point to the location of where libdb2 |
|||
installed db.h, where libdb2 is installed on your system, and the name of |
|||
the library. For Debian this would be: |
|||
|
|||
INCLUDE = /usr/include/db2 |
|||
LIB = /usr/lib |
|||
DBNAME = -ldb2 |
|||
|
|||
PACKAGES - You can get the CPAN modules in some package formats. Debian |
|||
2.1 and Red Hat 5.0 have been tested with these packages: |
|||
|
|||
Debian - |
|||
|
|||
libnet-perl and |
|||
data-dumper and |
|||
libterm-readline-gnu-perl (plus a lot more) or |
|||
libterm-readline-perl-perl and |
|||
libterm-readkey-perl |
|||
libdb2 |
|||
|
|||
Red Hat - |
|||
|
|||
perl-libnet and |
|||
perl-Data-Dumper |
|||
db-? |
|||
|
|||
USER: root. Some of swim's most important functions will not work |
|||
properly unless you are running the program as root. |
|||
|
|||
HARD DRIVE SPACE: Make sure you have enough hard drive space. 1500 |
|||
installed packages produces a 10MB fileindex.deb, and the virtual |
|||
not-installed filesystem database for the unstable distribution is now |
|||
over 40MB. 100MB of free space on your hard drive is probably a good |
|||
safety margin, if you run out of hard drive space the program will just |
|||
hang or quit. |
|||
|
|||
MEMORY: Databases made for an installed Debian system require memory in |
|||
proportion to the amount of packages actually installed; the --lowmem |
|||
option is an excellent alternative for making the databases if the |
|||
computer system is either overloaded or low on memory. If you get "out of |
|||
memory" warnings try to free up some memory first then make the databases. |
|||
You can also avoid making the virtual filesystem by not using the |
|||
--Contents option or using the FDB argument for that option. Updating the |
|||
databases uses very little memory. |
|||
|
|||
OTHER SWIM FUNCTIONS: Most free operating systems have these packages |
|||
installed: On a non Debian system, ar from binutils is used to query |
|||
Debian binary packages. These next packages are essential in a free |
|||
operating system (Linux) - textutils, fileutils, grep, tar, gzip, and |
|||
mount. |
File diff suppressed because it is too large
@ -0,0 +1,294 @@ |
|||
|
|||
swimrc - swim configuration file |
|||
-------------------------------- |
|||
Jonathan D. Rosenbaum<mttrader@access.mountain.net> |
|||
27 May 1999 |
|||
|
|||
0.1 Contents |
|||
------------ |
|||
|
|||
1. DESCRIPTION |
|||
|
|||
2. USAGE |
|||
|
|||
3. VARIABLES |
|||
3.1. OUTPUT VARIABLE |
|||
3.2. HISTORY |
|||
3.3. AR or DPKG? |
|||
3.4. APT |
|||
3.5. PAGER |
|||
3.6. NOT-INSTALLED VARIABLES |
|||
3.7. DF LOCATION |
|||
3.8. TEMPORARY DIRECTORY |
|||
3.9. FTP |
|||
|
|||
4. OTHER VARIABLES |
|||
|
|||
5. FILES |
|||
|
|||
6. BUGS |
|||
|
|||
0.2 Copyright Notice |
|||
-------------------- |
|||
|
|||
Copyright © 1999 Jonathan D. Rosenbaum |
|||
|
|||
SWIM, including this manual, is free software; you may redistribute it |
|||
and/or modify it under the terms of the GNU General Public License as |
|||
published by the Free Software Foundation; either version 2, or (at |
|||
your option) any later version. |
|||
|
|||
This is distributed in the hope that it will be useful, but *without |
|||
any warranty*; without even the implied warranty of merchantability or |
|||
fitness for a particular purpose. See the GNU General Public License |
|||
for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License with |
|||
the swim source as the file `COPYING'. If not, write to the Free |
|||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|||
|
|||
|
|||
------------------------------------------------------------------------------- |
|||
|
|||
|
|||
1. DESCRIPTION |
|||
--------------- |
|||
|
|||
swimrc is the configuartion file for swim allowing many default values |
|||
to be set so that they do not have to be mentioned on the command |
|||
line. Swimrc interacts directly with Perl allowing a wide variety of |
|||
variables found in SWIW::Conf to be altered. |
|||
|
|||
|
|||
------------------------------------------------------------------------------- |
|||
|
|||
|
|||
2. USAGE |
|||
--------- |
|||
|
|||
Values for variable can be altered for *swim* by assigning different |
|||
values enclosed in quotes or quoted whitespace (qw()), and ending with |
|||
a semi-colon. |
|||
|
|||
` $variable = ``value'';' |
|||
|
|||
`$variable = ``(value1 value2 ..)'';' |
|||
|
|||
|
|||
|
|||
------------------------------------------------------------------------------- |
|||
|
|||
|
|||
3. VARIABLES |
|||
------------- |
|||
|
|||
This is a list of variables with explanations. The default values for |
|||
*swim* are shown. |
|||
|
|||
|
|||
3.1. OUTPUT VARIABLE |
|||
--------------------- |
|||
|
|||
`$my_number' can be changed to how many lines you would like ``swim |
|||
-qf <>'' to print out, before the program asks for `-t' or `--total'. |
|||
Exception: If `-i' is used in the query and there is more than one |
|||
package then the total will be presented. |
|||
|
|||
Hint: `-t' can be used with all the various `--scripts' family members |
|||
to view the title of the script file regardless of this variable |
|||
setting, and if `-t' has to be used, the titles will be displayed, |
|||
which makes sense. |
|||
|
|||
*$my_number = 23;* |
|||
|
|||
|
|||
3.2. HISTORY |
|||
------------- |
|||
|
|||
This is a shell-like history kept in relation to searches and the most |
|||
recent edit when `--stdin' is used. |
|||
|
|||
*$HISTORY = 10;* |
|||
|
|||
|
|||
3.3. AR or DPKG? |
|||
----------------- |
|||
|
|||
Debian packages are ar archives. If you are using a Debian |
|||
Distribution assign ``dpkg'' to $package_tool, otherwise assign ``ar'' |
|||
to $package_tool. |
|||
|
|||
*$package_tool = "/usr/bin/ar";* |
|||
|
|||
|
|||
3.4. APT |
|||
--------- |
|||
|
|||
*Swim* does not assign a value for apt. To use `--apt' and `-xyz' |
|||
assign `$apt' the value ``yes''. |
|||
|
|||
Example: *$apt = "yes";* |
|||
|
|||
|
|||
3.5. PAGER |
|||
----------- |
|||
|
|||
*less* is a nice pager, unless you like *more*! Pager is used for |
|||
`--help' and *swim* called without any options. There is an option |
|||
`--nopager' or `-n'. *more* comes from the required package |
|||
util-linux, whereas *less* comes from a standard package called less. |
|||
Values: ``less'', ``more'', or ``most'' or... |
|||
|
|||
*$ENV{PAGER} = "less";* |
|||
|
|||
|
|||
3.6. NOT-INSTALLED VARIABLES |
|||
----------------------------- |
|||
|
|||
Assign values for `$architecture' and/or `$distribution' to avoid |
|||
having to use `--arch' and `--dists' everytime the not-installed |
|||
databases are accessed with `-n' or made or altered. |
|||
|
|||
Architectures are always being added so check with Debian to find a |
|||
list. There is *alpha, arm, hurd-i386 (alternative kernel to linux), |
|||
i386, m68k, powerpc, sparc*. Just use the arch found after the hyphen |
|||
in the Contents-(arch) file. |
|||
|
|||
*$architecture = "i386";* |
|||
|
|||
The distribution can be either *stable, unstable, frozen, or |
|||
experimental (rare)*. These represent the state of development that |
|||
the packages are under. The unstable distribution can have lot's of |
|||
changes within a very short time period, and frozen may or may not be |
|||
available. |
|||
|
|||
*$distribution = "unstable";* |
|||
|
|||
Distributions are divided into sections. These sections were called |
|||
distributions in the version 2.4.1.0 packaging manual, because they |
|||
were at one time separate distributions, but this has since changed. |
|||
|
|||
You can determine which of the sections *main, non-free, contrib or |
|||
non-US* to pull out of the Contents file if you don't want to use |
|||
`--main', `--contrib', `--non-free', and `--non-us' to selectively |
|||
pick the sections. |
|||
|
|||
For efficiency, you should choose the sections which you will be |
|||
pulling out of the Packages `file(s)' being targetted. |
|||
|
|||
Rule: Use ``non-US'' not ``non-us''. |
|||
|
|||
*@user_defined_section = qw(main contrib non-free non-US);* |
|||
|
|||
|
|||
3.7. DF LOCATION |
|||
----------------- |
|||
|
|||
A little philosophy: *swim* was developed for maximum versatility, so |
|||
whether you are just interested in researching, and keeping tabs on |
|||
the newest packages, or maintaining a Debian virtual distribution on a |
|||
non-Debian distribution, or you are a using *swim* for distribution |
|||
development, *swim* provides a way. |
|||
|
|||
The next two variables determine the location of the DF (default |
|||
directory/file system) |
|||
|
|||
The default directory keeps track of Contents and/or Packages |
|||
databases retrieved with --ftp. The Contents and Packages databases |
|||
and Release file are give names specific to the distribution and |
|||
architectures they represent using the naming convention found in |
|||
apt's sources directory. You also have the freedom not to use the |
|||
default directory, in which case swim will still do the renaming and |
|||
keeping track of the mtime, but you will have to remember where you |
|||
put the files. |
|||
|
|||
*$default_directory = '/root/.swim';* |
|||
|
|||
The default root directory (DRD) is the key to easy management of |
|||
binary packages, source, dsc, and diff files received from --ftp, and |
|||
provides an easy way to put together a personalized distribution. This |
|||
directory can be a real ftp site on your computer, or put wherever |
|||
else you are allowed to have directories. The DRD is always placed |
|||
below the value assigned to $default_directory. According to the |
|||
previous assignment to $default_directory, if the DRD is |
|||
``/pub/a/debian'' then the full path would be |
|||
``/root/.swim/pub/a/debian''. |
|||
|
|||
Example: When a package is downloaded it will be placed in |
|||
dists/distribution/section/architecture/subject below the DRD. |
|||
|
|||
Rule: debian must be the final directory before dists, this is because |
|||
other distributions are placed alongside debian, like debian-non-US or |
|||
personal (specialized distribution). |
|||
|
|||
*$default_root_directory = '/pub/debian';* |
|||
|
|||
Because you may be using a real ftp site, this variable allows you to |
|||
determine what permissions *swim* will assign for directories it |
|||
creates below the DRD. |
|||
|
|||
*$permission = '0755';* |
|||
|
|||
|
|||
3.8. TEMPORARY DIRECTORY |
|||
------------------------- |
|||
|
|||
If you want to set an alternative directory for the temporary files |
|||
created when the databases are made, change here. You may want to make |
|||
`$tmp' a RAM disk. See package loadlin for initrd documentation and an |
|||
explanation for making such a disk. There is also documentation in |
|||
/usr/src/kernel-source.version/Documentation. Whether this will speed |
|||
things up is a subject of experimentation. |
|||
|
|||
*$tmp = "/tmp";* |
|||
|
|||
|
|||
3.9. FTP |
|||
--------- |
|||
|
|||
You can alter the Firewall, Port, Timeout, Debug and Passive |
|||
characteristics of the ftp client as defined in Net::FTP(3pm) by |
|||
providing arguments to these variables. All variables but $timeout are |
|||
set to untrue by default. |
|||
$firewall = 0; (FTP firewall machine name) |
|||
$port = 0; (defaults to 23) |
|||
$timeout = 120; (120 seconds) |
|||
$debug = 0; (1 will turn on STDERR) |
|||
$passive = 0; (1 will enable) |
|||
|
|||
|
|||
------------------------------------------------------------------------------- |
|||
|
|||
|
|||
4. OTHER VARIABLES |
|||
------------------- |
|||
|
|||
see SWIM::Conf |
|||
|
|||
|
|||
------------------------------------------------------------------------------- |
|||
|
|||
|
|||
5. FILES |
|||
--------- |
|||
|
|||
` /etc/swim/swimrc' |
|||
|
|||
`~/.swim/swimrc' |
|||
|
|||
|
|||
------------------------------------------------------------------------------- |
|||
|
|||
|
|||
6. BUGS |
|||
------- |
|||
|
|||
Send directly to mttrader@access.mountain.net. |
|||
|
|||
|
|||
------------------------------------------------------------------------------- |
|||
|
|||
|
|||
swimrc - swim configuration file |
|||
Jonathan D. Rosenbaum<mttrader@access.mountain.net> 27 May 1999 |
|||
|
Loading…
Reference in new issue