mirror of https://github.com/fspc/dswim
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.
331 lines
13 KiB
331 lines
13 KiB
24 years ago
|
<html><head>
|
||
|
<title>swim - IMPORTANT DEBIAN DATABASES FOR NOT-INSTALLED
|
||
|
DATABASES
|
||
|
</title>
|
||
|
<link rev=made href="mailto:mttrader@access.mountain.net">
|
||
|
</head><body>
|
||
|
<h1>
|
||
|
swim - chapter 6<br>
|
||
|
IMPORTANT DEBIAN DATABASES FOR NOT-INSTALLED
|
||
|
DATABASES
|
||
|
|
||
|
</h1>
|
||
|
<hr>
|
||
|
<h2><A name="s-downimportant">
|
||
|
6.1 A. downloading the important databases with --ftp.
|
||
|
|
||
|
</A></h2>
|
||
|
|
||
|
<pre>usage: swim --ftp
|
||
|
|
||
|
options: --Contents <DF|directory>
|
||
|
--Packages <DF|directory>
|
||
|
[--dists <distribution>] [--arch <architecture>]
|
||
|
[--onec] [--Release_only]</pre>
|
||
|
<hr>
|
||
|
<h2><A name="s6.2">
|
||
|
6.2 OVERVIEW
|
||
|
|
||
|
</A></h2>
|
||
|
<strong>swim</strong> provides a method so that all information about
|
||
|
an existing Debian distribution is quickly accessible through databases.
|
||
|
Debian already provides flat file databases for all its distributions. One
|
||
|
database called ``<em>Contents-(architecture)</em>'' provides a complete
|
||
|
listing of all the files associated with each package, the other much more
|
||
|
important database called ``<em>Packages</em>'' provides everything from
|
||
|
the Package's description, to all the dependencies for that package. The
|
||
|
Packages database is a crucial database for other important Debian
|
||
|
administrative tools like <strong>dpkg</strong> and <strong>apt</strong>.
|
||
|
<hr>
|
||
|
<h2><A name="s-dd">
|
||
|
6.3 DISTRIBUTION DEFINED
|
||
|
|
||
|
</A></h2>
|
||
|
Debian Distributions choose a name which reflect the development state of
|
||
|
that distribution. The distribution named ``<em>unstable</em>'' is where
|
||
|
the majority of the development processing occurs, after <em>unstable</em>
|
||
|
has reached a certain level of maturity, it's copied over to a new
|
||
|
distribution called ``<em>frozen</em>'' which is tested extensively before
|
||
|
becoming the new ``<em>stable</em>'' distribution. The <em>frozen
|
||
|
distribution</em> retains the <em>Release version number</em> of the
|
||
|
<em>unstable distribution</em>, and the <em>unstable distribution</em>
|
||
|
receives a new <em>Release version number</em>. Eventually,
|
||
|
<em>frozen</em> becomes <em>stable</em>, and at this point both
|
||
|
<em>frozen</em>, and the older <em>stable distribution</em> are removed.
|
||
|
Code names are associated with the <em>Release Version number</em> given
|
||
|
for each of the distributions. This is much better for mirroring Debian
|
||
|
sites.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<strong>swim</strong> was designed to ignore these code names, and instead
|
||
|
shows the user the <em>Release version number</em> associated with the
|
||
|
distribution. Swim users must always use the real distribution name, or
|
||
|
swim will not work properly. This is a nice feature because it allows user
|
||
|
to make decisions related to the management of their databases, and makes
|
||
|
research much more easier.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
The other Debian distribution which swim recognizes is
|
||
|
<em>experimental</em>. This distribution <em>does not have any Release
|
||
|
version number</em>, and contains packages which are considered risky
|
||
|
because of their development level.
|
||
|
|
||
|
|
||
|
<P>
|
||
|
<hr>
|
||
|
<h2><A name="s6.4">
|
||
|
6.4 SECTIONS
|
||
|
|
||
|
</A></h2>
|
||
|
Each Debian distribution has sections related to the relationship of
|
||
|
each of the packages to the <em>Debian's Policy Manual</em>. In
|
||
|
``<em>main</em>'' there are packages which have a correct relationship
|
||
|
with these Policies. Packages in ``<em>contrib</em>'' comply with the
|
||
|
<em>DFSG</em> (<em>Debian Free Software Guidelines</em> found in the
|
||
|
<em>Debian Policy Manual</em>) but have various limitations like requiring
|
||
|
a package which is found in non-free, or is not in the Debian archive.
|
||
|
Packages in ``<em>non-free</em>'' do not comply with the <em>DFSG</em> but
|
||
|
are electronically distributable across international borders. The
|
||
|
``<em>non-us</em>'' section is found outside of the United States and
|
||
|
exists for packages which have export restrictions.
|
||
|
|
||
|
|
||
|
<P>
|
||
|
<hr>
|
||
|
<h2><A name="s6.5">
|
||
|
6.5 ARCHITECTURES
|
||
|
|
||
|
</A></h2>
|
||
|
Distributions also have architecture specific sections since not all
|
||
|
packages compiled for one architecture can run on all other
|
||
|
archictectures, however, there are a large percentage of packages which do
|
||
|
run on all architectures. The architectures are <em>alpha</em>,
|
||
|
<em>arm</em>, <em>i386</em>, <em>m68k</em>, <em>powerpc</em>,
|
||
|
<em>sparc</em>, and more recently <em>hurd-i386</em> which represents
|
||
|
packages for the hurd GNU kernel for the i386 architecture.
|
||
|
|
||
|
<P>
|
||
|
<hr>
|
||
|
<h2><A name="s6.6">
|
||
|
6.6 SWIMZ.LIST
|
||
|
|
||
|
</A></h2>
|
||
|
<strong>--ftp</strong> uses a file called <em>swimz.list</em> which
|
||
|
has the same type of format (see format below) as the
|
||
|
<em>sources.list(5)</em> which <strong>apt</strong> uses. There are some
|
||
|
differences. The <strong>first difference</strong> mentioned above (see
|
||
|
<A href="#s-dd">DISTRIBUTION DEFINED
|
||
|
, section 6.3</A>) requires that the distribution names never should be the
|
||
|
code names for the <em>Release version</em>. <strong>Secondly</strong>,
|
||
|
<strong>apt</strong> only retrieves databases specific to one
|
||
|
archictecture, normally the one you are running <strong>apt</strong> on.
|
||
|
With <strong>swim</strong> though you can fetch databases for any, or
|
||
|
every architecture by adding the architecture to ``deb'' with a hyphen
|
||
|
(deb-hurd-i386). If deb has no architecture appended it is assumed that
|
||
|
the architecture you want is the same as the system you are running
|
||
|
<strong>swim</strong> on. <strong>Thirdly</strong>, at this time
|
||
|
<strong>swim</strong> only supports the ftp method.
|
||
|
<strong>Fourthly</strong>, you can change <em>swimz.list</em> as often as
|
||
|
you want without worrying about databases being removed so that that the
|
||
|
<em>swimz.list</em> and the downloaded databases match. This would occur
|
||
|
with <strong>apt's</strong> <em>sources.list(5)</em> if you removed a
|
||
|
site. <strong>Fifthly</strong>, databases are kept in a compressed state.
|
||
|
<strong>Sixthly</strong> because the list is used for both Contents and
|
||
|
Packages, more flexibility is provided by only allowing the default
|
||
|
distribution/archictecture or distribution/architecture provided on the
|
||
|
commandline to be downloaded.
|
||
|
<P>
|
||
|
|
||
|
|
||
|
For <strong>apt</strong> users: If you are using <strong>apt</strong>, and
|
||
|
<strong>swim</strong> together it is a good strategy to use the real
|
||
|
distribution name in the <em>sources list(8)</em>, and to have an exact
|
||
|
copy of the <em>sources.list(5)</em> ftp sites in the <em>swimz.list</em>.
|
||
|
Packages databases specific to the architecture <strong>apt</strong> is
|
||
|
using can be retrieved using <strong>swim --apt --update</strong> (this
|
||
|
also will keep track of the Release version), and then
|
||
|
<strong>swim</strong> can be used to fetch the architecture specific
|
||
|
<em>Contents database</em> as shown below. It should also be of interest
|
||
|
to note that Packages downloaded by either swim or apt can be used
|
||
|
interchangeably by using 'cp -a' and 'gzip -d' or 'gzip -9'.
|
||
|
<P>
|
||
|
|
||
|
Here is a brief outline of the format required by <em>swimz.list</em>.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<strong>deb uri distribution [section ... ]</strong>
|
||
|
<P>
|
||
|
|
||
|
<strong>deb</strong> - represents a standard Debian distribution. And is
|
||
|
simply written as deb or with the architecture appended
|
||
|
(<strong>deb</strong> or <strong>deb-alpha</strong>).
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<strong>uri</strong> - Universal Resource Identifier is exactly how you
|
||
|
would enter an address into a web browser. This address is the base of a
|
||
|
Debian distribution, generally this is right before the directory called
|
||
|
``<em>dists</em>''. So if <em>dists</em> is found in
|
||
|
<em>/stuff/pub/debian/dists</em>, and the site is
|
||
|
<strong>somewhere.com</strong> then the uri would be
|
||
|
<em>ftp://somewhere.com/stuff/pub/debian</em>.
|
||
|
<P>
|
||
|
|
||
|
<strong>distribution</strong> - This can be <em>unstable</em>,
|
||
|
<em>frozen</em>, <em>stable</em>, <em>experimental</em>. Distribution can
|
||
|
also be a path which must end with a slash like
|
||
|
<em>unstable/binary-i386/</em>. This is used when there is no section as
|
||
|
in the experimental distribution or in sites which do not have symlinks to
|
||
|
the non-us section. No section would be mentioned in this situation.
|
||
|
<P>
|
||
|
<strong>section</strong> - <em>main</em>, <em>contrib</em>,
|
||
|
<em>non-free</em>, <em>non-US</em> (write it this way).
|
||
|
|
||
|
<P>
|
||
|
<hr>
|
||
|
<h2><A name="s6.7">
|
||
|
6.7 SWIMZ.LIST EXAMPLES
|
||
|
|
||
|
</A></h2>
|
||
|
Examples (each on one line):
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<strong>deb-alpha ftp://somewhere.com/stuff/pub/debian unstable main contrib non-US</strong>
|
||
|
<P>
|
||
|
|
||
|
This will fetch the alpha databases from somewhere.com for the unstable
|
||
|
distribution for the main, contrib and non-US sections.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
Note: In these next two examples you can not append any architecture to deb
|
||
|
with a hyphen.
|
||
|
<P>
|
||
|
|
||
|
<strong>deb ftp://somewhere.com/stuff/pub/debian project/experimental/</strong>
|
||
|
|
||
|
<P>
|
||
|
|
||
|
This will fetch the experimental database, but there is not a
|
||
|
Contents-(architecture) database for this distribution. Notice that it ends
|
||
|
with a slash.
|
||
|
|
||
|
<P>
|
||
|
|
||
|
<strong>deb ftp://somewhere.com/stuff/pub/debian-non-US stable/binary-i386/</strong>
|
||
|
<P>
|
||
|
|
||
|
This will fetch the i386 databases for the stable distribution for non-us,
|
||
|
|
||
|
<hr>
|
||
|
<h2><A name="s-ftp">
|
||
|
6.8 FTP OR APT?
|
||
|
|
||
|
</A></h2>
|
||
|
How you use major mode <strong>--ftp</strong> depends on your goals.
|
||
|
Even if you are using <strong>apt</strong>, you may be interested in
|
||
|
keeping tabs on different architectures. In this case you would have to
|
||
|
download the <em>Packages databases</em> specific to these architectures.
|
||
|
If you are only interested in the architecture which <strong>apt</strong>
|
||
|
is interested in, then you only need to use <strong>--ftp</strong> to
|
||
|
fetch the <em>Contents database(s)</em>. But, because it isn't a
|
||
|
requirement to set up a virtual filesystem, you are not required to fetch
|
||
|
the Contents database. The <strong>advantages</strong> of fetching the
|
||
|
Contents database is determined by the method you choose to make the
|
||
|
database (see <A href="ch-notinstalled.html">MAKING NOT-INSTALLED DATABASES
|
||
|
, chapter 7</A>). These advantages include the
|
||
|
ability to <em>view a listing of the files and directories</em> associated
|
||
|
with a package, the ability to <em>query files and directories</em> to
|
||
|
find out which packages relate to them, and the ability to perform a
|
||
|
<em>powersearch</em> on all the files and directories to find the
|
||
|
associated packages.
|
||
|
<P>
|
||
|
<hr>
|
||
|
<h2><A name="s6.9">
|
||
|
6.9 OPTIONS
|
||
|
|
||
|
</A></h2>
|
||
|
<strong>Remember:</strong> If you want to download a different
|
||
|
distribution/architecture other than the default specified in your
|
||
|
configuration file, you must specify this on the commandline.
|
||
|
<P>
|
||
|
<strong>--Packages</strong> determines where you want the Packages
|
||
|
database as well as the Release data put when they are downloaded. The
|
||
|
<strong>DF argument</strong> implies that the databases will be put in
|
||
|
your default directory (see <code>swimrc(5)).</code> These databases can later
|
||
|
be located by the major modes <strong>--initndb and --rebuildndb</strong>
|
||
|
just by using <strong>DF</strong> as an argument. Alternatively, these
|
||
|
databases can be put in any directory you choose by providing a
|
||
|
<strong>directory as an argument</strong>.
|
||
|
<P>
|
||
|
|
||
|
<strong>--Contents</strong> determines where you want the
|
||
|
<em>Content-(architecture)</em> <code>database(s)</code> put. (see
|
||
|
--Packages).
|
||
|
<P>
|
||
|
|
||
|
<strong>--onec</strong> will download only one Contents-arch per
|
||
|
distribution/architecture specified on the commandline or by default.
|
||
|
<P>
|
||
|
|
||
|
<strong>--Release_only</strong> will download only the Release data for
|
||
|
the <em>swimz.list</em> or particular <em>Package(s)</em> mentioned on the
|
||
|
command line.
|
||
|
<P>
|
||
|
|
||
|
<strong>--dists</strong> will only find the distribution which corresponds
|
||
|
to the argument provided this option.
|
||
|
<P>
|
||
|
|
||
|
<strong>--arch</strong> will only find the architecture which corresponds
|
||
|
to the argument provided this option. The different architecture needs to
|
||
|
be specified in swimz.list with a hyphen and the architecture appended to
|
||
|
deb (deb-(arch)).
|
||
|
<hr>
|
||
|
<h2><A name="s6.10">
|
||
|
6.10 B. downloading the important databases with apt, and maintenance
|
||
|
options.
|
||
|
|
||
|
</A></h2>
|
||
|
usage: <strong>swim --apt</strong>
|
||
|
<P>
|
||
|
|
||
|
options: <strong>[--update] [--clean] [--autoclean] [--check]</strong>
|
||
|
|
||
|
<P>
|
||
|
|
||
|
Please read <A href="#s-downimportant">A. downloading the important databases with --ftp.
|
||
|
, section 6.1</A> for more information.
|
||
|
<P>
|
||
|
|
||
|
<strong>--update</strong> calls <strong>apt</strong> to download the
|
||
|
Packages databases.
|
||
|
<P>
|
||
|
|
||
|
<strong>--clean</strong> is a call to an <strong>apt</strong> option to
|
||
|
remove any packages stored in <strong>apt's</strong> storage area for
|
||
|
downloaded packages. The default for this storage area is
|
||
|
<em>/var/cache/apt/arhives</em>
|
||
|
<P>
|
||
|
|
||
|
<strong>--autoclean</strong> will only clean out packages which are not
|
||
|
found in apt's cache.
|
||
|
<P>
|
||
|
|
||
|
<strong>--check</strong> tests and updates apt's cache.
|
||
|
<hr>
|
||
|
swim
|
||
|
- <A href="index.html#copyright">
|
||
|
Copyright � 1999 Jonathan D. Rosenbaum
|
||
|
</A>
|
||
|
<br>
|
||
|
<A href="index.html#toc">Contents</A>; <A href="ch-notinstalled.html">next</A>; <A href="ch-makinginst.html">back</A>.
|
||
|
<br>
|
||
|
<address>15 June 1999<br>
|
||
|
Jonathan D. Rosenbaum<A href="mailto:mttrader@access.mountain.net">mttrader@access.mountain.net</A></address>
|
||
|
</body></html>
|