%% $Header: /cvsroot/lcdp/lpic/general-linux-1/slides/gl1.102.5.slides.tex,v 1.2 2003/05/30 05:09:04 waratah Exp $

\input{gl1.slide-header.tex}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----10->|-----20->|-----30->|-----40->|-----50->|-----60->|-----70->|-----80->
\begin{slide} %================================================================
\begin{center} \LARGE \textsf{-- General Linux 1 -- \\
Use Debian package management}
\LARGE \textsf{[5] } \\[2mm]
\large  \textsf{(Linux Professional Institute Certification)}\\[1mm]

\normalsize\end{center}

\footnote{Copyright \copyright\ 2002 Geoffrey Robertson. Permission is granted to make and distribute verbatim copies or modified versions of this document provided that this copyright notice and this permission notice are preserved on all copies under the terms of the GNU General Public License as published by the Free Software Foundation---either version 2 of the License or (at your option) any later version.}
 
\scriptsize
\begin{verbatim} 
   .~.     Slides based on a talk by Jeff Waugh
   /V\     by: geoffrey robertson        
  // \\        geoffrey@zip.com.au
  @._.@ 
\end{verbatim} 
\tiny
\begin{verbatim}
$Id: gl1.102.5.slides.tex,v 1.2 2003/05/30 05:09:04 waratah Exp $ 
\end{verbatim} 
\normalsize  
\vfill \end{slide} %-----------------------------------------------------------
%----10->|-----20->|-----30->|-----40->|-----50->|-----60->|-----70->|-----80->

%==============================================================================
\begin{slide} %ghr
  \listofslides
\vfill \end{slide}
%------------------------------------------------------------------------------

%==============================================================================
\begin{slide}{} %ghr
\Slidecontents
\vfill \end{slide} %-----------------------------------------------------------
 
%==============================================================================
%==============================================================================
\begin{slide} %ghr
\slideheading{(2.2) 102 Installation \& Package Mgt. [24]}
\begin{description}
  \item[1.102.1] Design hard disk layout [2]
  \item[1.102.2] Install a boot manager [3]
  \item[1.102.3] Make and install programs from source [5]
  \item[1.102.4] Manage shared libraries [3]
  \item[1.102.5] {\bf \underline{Use Debian package management [5]}}
  \item[1.102.6] Use Red Hat Package Manager (RPM) [6] 
\end{description}
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
%==============================================================================
\begin{slide} %ghr
\slideheading{Use Debian package management}
\slidesubheading{Objective} 

Candidates should be able to perform Debian package management.

This objective includes being able to use command-line and interactive
tools to install, upgrade, or uninstall packages, as well as find
packages containing specific files or software (such packages might or
might not be installed).

This objective also includes being able to obtain package information
like version, content, dependencies, package integrity and
installation status (whether or not the package is installed).

\vfill \end{slide} %-----------------------------------------------------------
 
%==============================================================================
\begin{slide} %ghr
\Slideheading{Use Debian package management}
\slidesubheading{Key files, terms, and utilities}
\begin{alltt}
/etc/dpkg/dpkg.cfg
/var/lib/dpkg/*
/etc/apt/apt.conf
/etc/apt/sources.list
dpkg
dselect
dpkg-reconfigure
apt-get
alien
\end{alltt}
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide} %ghr
\Slideheading{Use Debian package management}
\slidesubheading{Resources of interest}
\begin{description}
\item[The Debian GNU/Linux FAQ]: 
\begin{alltt}
http://www.debian.org/doc/FAQ/index.html  
\end{alltt}
\item[lcdp slides]: 
\begin{alltt}
gl1.102.5.slides.tex    
\end{alltt}
\item[Quick Reference for Debian GNU/Linux]: 
\begin{alltt}
http://qref.sourceforge.net/    
\end{alltt}
\end{description}

\vfill \end{slide} %-----------------------------------------------------------
 
%==============================================================================
\begin{slide}{} %ghr
\Slidecontents
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
%==============================================================================
\begin{slide}
\slideheading{Debian Package Management Overview}
\slidesubheading{Basic tool---\texttt{dpkg}}
\texttt{dpkg} is the back end for all Debian package management.\\

\slidesubheading{Old Menu System---\texttt{dselect}}
\texttt{ncurses} menu system for \texttt{dselect}---bizarre interface.\\

\slidesubheading{The Ultimate Package Tool---\texttt{apt-get}}
``Once you've been spoiled by the apt thing you just can't go back.''

\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
%==============================================================================
\begin{slide}{}
\slideheading{Debian Package Management Tool---\texttt{dpkg}}
%\slidesubheading{}
\begin{itemize}
\item Basic package management: installation, removal, extraction and
  building.
\item Does not handle or fulfil dependencies, that's left for higher
  level software such as apt.
\end{itemize}

\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
\Slideheading{Debian Package Management Tool---\texttt{dpkg}}
\slidesubheading{Tasks}
\begin{itemize}
\item Install a package: \texttt{dpkg -i <package-file>}
\item Remove a package: \texttt{dpkg -r <package-name>}
\item Purge a package: \texttt{dpkg -P <package-name>}
\item Find out which files a package owns: \texttt{dpkg -L <package-name>}
\item Find out which package a file belongs to: \texttt{dpkg -S <file-name>}
\item Extract information from package: \texttt{dpkg -e <package-file>}
\item List contents of package file: \texttt{dpkg -c <package-file>}
\end{itemize}

\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
  \Slideheading{Debian Package Management Tool---\texttt{dpkg}}
  \slidesubheading{\texttt{/etc/dpkg/dpkg.cfg}}
 \begin{itemize}
 \item Configuration file for dpkg(1)
 \item Each line contains a single option which is exactly the same as
   a normal command line option for dpkg except for the leading dashes.
   Hashes for comments.
\item See 'man dpkg' or 'dpkg --help' for commands.

\end{itemize}
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
  \Slideheading{Debian Package Management Tool---\texttt{dpkg}}
  \slidesubheading{\texttt{/etc/dpkg/dpkg.cfg}}
 \begin{itemize}
 
\item Example:
\begin{alltt}
# dpkg configuration file
#
# This file can contain default options for dpkg. 
# All commandline options are allowed. Values can
# be specific by putting them after the option,
# separated by whitespace and/or an `=' sign.
#
no-debsig
abort-after 2
no-act    
\end{alltt}
\end{itemize}
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
\Slideheading{Debian Package Mgt. Tool---\texttt{dpkg}}
\slidesubheading{\texttt{/var/lib/dpkg/*}}
\begin{itemize}
\item Package management status and system files, generally not
  directly manipulated.
\item Most important files:
  \begin{description}
  \item [alternatives:] Contains files that define and store
    configuration for the command alternatives on the system. (Good
    examples: editor and x-window-manager.)
  \item [available:] Information about packages available to the system,
    retrieved from every specified sources. (See also:
    grep-available.)   
  \item [status:] Information about packages installed on, or removed from your system.
  \end{description}
\end{itemize}
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{} %ghr
\Slidecontents
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
\slideheading{Debian Package Mgt. Utility---\texttt{apt-get}}
\slidesubheading{\texttt{apt-get}}

Dependency resolving package management utility.
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
\Slideheading{Debian Package Mgt. Utility---\texttt{apt-get}}
\slidesubheading{\texttt{/etc/apt/apt.conf}}
\begin{itemize}
\item Configuration files for \texttt{apt(1)}.
\item \texttt{apt.conf} used by administrator for unique system
  configurations.
\item Example: Setting apt's HTTP proxy:
\begin{alltt}
 Acquire::http "http://192.168.10.1/";   
\end{alltt}                       
\item \texttt{apt.conf.d} managed by software that integrates with
  apt, such as our examples: \texttt{dpkg-reconfigure} and
  \texttt{apt-listchanges}.
\item See '\texttt{man apt.conf}' for configuration directives and format.
\item \texttt{apt-config(1)} is useful for troubleshooting
  \texttt{apt.conf} problems.
\end{itemize}
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
\Slideheading{Debian Package Mgt. Utility---\texttt{apt-get}}
\slidesubheading{}

\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
\Slideheading{Debian Package Mgt. Utility---\texttt{apt-get}}
\slidesubheading{\texttt{/etc/apt/sources.list}}
\begin{itemize}
\item Administrator-configured list of package repositories used by apt.
\item Numerous retrieval methods: file, cdrom, http, ftp, copy, rsh and ssh.
\item Many repositories exist for developers, specific software, other
  distributions, etc.
\item Example:
\scriptsize
\begin{alltt}
deb http://mirror.aarnet.edu.au/debian woody main contrib non-free
deb file:/mnt/devserver/packages woody main contrib non-free
deb http://user:pass@example.com/path distro section section
deb ssh://user@example.com/path distro section section    
\end{alltt}
\end{itemize}
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{} %ghr
\Slidecontents
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
%==============================================================================
\begin{slide}{}
\slideheading{Debian Package Mgt. Utility---\texttt{deselect}}
\slidesubheading{\texttt{dselect}}
\begin{itemize}
\item Hideous! Ugh! Run for your lives!
\item Original frontend to apt/dpkg.
\item Subject of many jokes:
  \begin{quote}
    ''All package managers feature creep until they're as complicated
    and horrible as dselect.''
  \end{quote}
  \begin{quote}
    ''Debian's extensive features provide not only to ability shoot
    yourself in the foot, but to blow off each toe individually.''
  \end{quote}
\item Offers more help than apt-get, but is incredibly baroque and hard to use.
\end{itemize}
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
\Slideheading{Debian Package Mgt. Utility---\texttt{deselect}}
\slidesubheading{}

\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
%==============================================================================
\begin{slide}{}
\slideheading{The Debian Configuration System}
\slidesubheading{}

\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
\begin{slide}{}
\slideheading{\texttt{dpkg-reconfigure}}
\slidesubheading{}

\vfill \end{slide} %-----------------------------------------------------------


%==============================================================================
\begin{slide}{} %ghr
\Slidecontents
\vfill \end{slide} %-----------------------------------------------------------

%==============================================================================
%==============================================================================
\begin{slide}{}
\slideheading{Debian Package Conversion Utility---\texttt{alien}}
%\slidesubheading{\texttt{alien}}
\begin{description}
\item[Theory]:
  \begin{quote}
    ''alien is a program that converts between Redhat rpm, Debian deb,
    Stampede slp, Slackware tgz, and Solaris pkg file formats. If you
    want to use a package from another linux distribution than the one
    you have installed on your system, you can use alien to convert it
    to your preferred package format and install it. It also supports
    LSB packages.''
  \end{quote}
\item[Reality]:
  \begin{itemize}
  \item You are completely bat shit insane, and/or,
  \item You are using proprietary software.
  \end{itemize}
\end{description}

Useful for quick stuff, or pulling apart RPMs and SRPMs without too
much hassle.
\vfill \end{slide} %-----------------------------------------------------------


%==============================================================================
%==============================================================================
\begin{slide}{}
\slideheading{}
\slidesubheading{}

\vfill \end{slide} %-----------------------------------------------------------




%==============================================================================
\begin{slide}{} %ghr
\heading{The End}
 \Slidecontents
\vfill \end{slide} %-----------------------------------------------------------


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%==============================================================================
%==============================================================================
\begin{slide}{}
\slideheading{}


\vfill \end{slide} %-----------------------------------------------------------

=============================================================================
\begin{slide}{}

\end{slide} %------------------------------------------------------------------

