mirror of
				https://github.com/fspc/dswim.git
				synced 2025-10-31 08:25:35 -04: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>
 |