mirror of
				https://github.com/fspc/dswim.git
				synced 2025-11-04 00:35:34 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			331 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			331 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<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 <20> 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>
 |