Provided by: dpkg-www_2.60_all bug

NAME

       dpkg-www, dpkg-www-installer - WWW Debian package browser

SYNOPSIS

       https://<hostname>/cgi-bin/dpkg

DESCRIPTION

       A  typical  Debian  system can have hundreds installed packages and thousands available for installation.
       Information about installed and available packages can usually be obtained with the dpkg(1) command,  but
       navigating  through  the  package  dependencies and the documentation files can be a very frustrating and
       time-consuming task.

       With the dpkg-www CGI you can instead browse Debian packages info with a web browser,  following  package
       dependencies  and  locating  documentation  (man  pages,  Info  files, READMEs, and so on) with few mouse
       clicks. If you have superuser privileges you can even install, upgrade or remove packages from  your  web
       browser.   The  output  provided by dpkg-www is basically that of dpkg(1) with the addition of HREF's for
       packages dependencies and documentation files.

       The CGI program can take an optional query argument which can be given in the URL or entered in the query
       field of the html form. This can be:

       <empty>
              list concisely all installed packages

       * (asterisk)
              list concisely all installed and available packages

       <list of packages>
              list concisely the requested packages

       <wildcard expession>
              list concisely all packages whose name matches the expression, for example '*image*' will find all
              packages which contain the string 'image'.

       <package>
              list verbosely a package and, if the package is installed, all its files.  If the package  is  not
              installed  and  the  web  installation  is enabled you can install it by clicking on the 'Install'
              button. If the package is installed you can remove it or upgrade to a new version,  if  available,
              by clicking on the respective buttons.

       <absolute pathname>
              list  all  the  packages  owners  of  a  file.  This can be used for example to find which package
              installed a program.

       /<regexp>
              list all the packages owners of a file. The regexp form can be used to find which packages  own  a
              non installed file.

       <field>=<value>
              list all the packages with control field matching value. If the field name is omitted the value is
              searched  in any control field. The default search is a case-insensitive fixed substring match but
              it can be changed with the GREP_DCTRL_OPTS option in the config file.  This feature works only  if
              the grep-dctrl(1) package is installed.

       ? (question mark)
              show a concise help about the CGI usage.

       <space> (a single space)
              print only the input form, for use from window-manager menus.

   Configuration
       dpkg-www  can  be  configured by the local system administrator via the optional /etc/dpkg-www.conf file.
       This file is a simple Bourne shell (/bin/sh) script that defines some  or  all  the  following  variables
       (defaults are used if the file doesn't exist, or doesn't define the variable):

       CHECK_BUTTONS
              If  this option is enabled dpkw-www will add a small 'install' check-button for each package shown
              in the package list. Default is 0 (disabled) because the resulting interface  is  not  very  nice.
              The use of this option is therefore not recommended.

       INSTALL_BUTTON
              If this option is set the 'Install' or 'Upgrade' and 'Remove' buttons will be added to the verbose
              info  of  a  package.  By  clicking on these button you will start the installation of removal the
              package as described in the section Web Installation.  Since this option can potentially introduce
              security holes it is disabled (0) by default. Use at your own risk.  If the  variable  is  set  to
              "top" the button will be located before the file list, default is the bottom of the page.

       SHOW_LOCAL_FILES
              If  this  variable  is set, dpkg-www will use file:/ style URL's to access html files -- bypassing
              the CGI script. This is faster on slow machines. Default is not defined,  which  means  use  local
              files for connection from localhost and https:// URL's for remote connections.

       CHECK_PACKAGE_VERSION
              If  this  variable  is  set,  dpkg-www  will  check  if a newer version of an installed package is
              available.  On slow machines you may want to set this option to false since  it  can  considerably
              slow down the execution.

       LIST_UNAVAILABLE
              This option enables listing also unavailable packages in the packages list.  Disabled by default.

       LIST_DOCUMENTATION
              This  option enables the display of references to documents registered with install-docs(8) to the
              detailed package info, providing a quick path to  relevant  package  documentation.  Unfortunately
              this  feature  is  not  totally  reliable  because  currently  there  is  no way to find documents
              registered by a package with install-docs(8) and the search is done with an ugly  hack.  Hopefully
              things will change in woody. This option is enabled (1) by default.

       FORCE_SSH_PASSWD
              This  option  forces  ssh  passwd  prompt for package installation on a remote host even if an ssh
              agent holds the private key.

       GREP_DCTRL_OPTS
              These options are passed to grep-dctrl(1) when doing a query by field. Default is "-i"  for  case-
              insensitive fixed substring match. See grep-dctrl(1) for more info.

       DPKG   Command  providing  the dpkg(1) query functionalities. This can be dpkg(1) or dlocate(1), or auto.
              Default is auto, meaning that the CGI will  use  dlocate(1)  if  installed,  otherwise  revert  to
              dpkg(1)  which  should  always  be available on a Debian system. By specifying this option you can
              force the use of one of the two program.

       MAN    Manpage to HTML translation command. Can be dwww(7), man2html or auto .  Default is auto,  meaning
              that  the  CGI  will  use  man2thml if installed, otherwise revert to dwww(7).  By specifying this
              option you can force the use of one of the two program.

       DEBIAN_CONTENTS
              Optional list of one or more Contents-xxx.gz files mapping  each  file  available  in  the  Debian
              system  to  the  package  from  which it originates. If available these files are used to find the
              owner packages of non installed files. This can be useful  for  quickly  finding  the  package  to
              install when a needed command is missing.

       BGCOLOR
              background color of the HTML body.

       DEBUG  Internal option used only for debugging. Disabled by default since it is useless for normal users.

       DWWW_PATH
              Path on webserver to dwww(7) cgi-bin.

       INFO2WWW_PATH
              Path on webserver to info2www(1) cgi-bin.

       The following is an exaple /etc/dpkg-www.conf file:

         # Enable install check-buttons in package list.
         CHECK_BUTTONS=0

         # Enable install, upgrade and remove buttons in package info.
         INSTALL_BUTTON=1

         # List registered package documentation.
         LIST_DOCUMENTATION=1

         # Options passed to grep-dctrl in queryPackagesByField()
         GREP_DCTRL_OPTS="-i"

         # Show local files directly. Automatically set.
         SHOW_LOCAL_FILES=auto

         # Force ssh passwd prompt even if an ssh agent holds
         # the private key.
         FORCE_SSH_PASSWD=true

         # List of Contents-xxx.gz files, if available.
         DEBIAN_CONTENTS="
                 /debian/dists/buster/Contents-amd64.gz
                 /debian/dists/buster-updates/Contents-amd64.gz                                         /debian-
         security/dists/buster/updates/Contents-amd64.gz"

         # Dpkg command (dpkg|dlocate|auto). Automatically detected.
         # DPKG=auto

         # Manpage conversion command (dwww|man2html|auto). Automatically detected.
         # MAN=auto

         # HTML background color.
         # BGCOLOR="#c0c0c0"

         # Enable CGI debugging. Not really useful.
         # DEBUG=1

   CGI access
       The information provided by dpkg-www and the ability to install or  remove  packages  also  remotely  can
       potentially give useful information to crackers and open security holes. For these reasons access to this
       CGI  program  should  be  allowed  only  from  localhost and trusted hosts or domains. Unfortunately this
       configuration is dependent on the particular installed web server.  The dpkg-www package  configures  the
       apache  server,  if  installed, to allow access only from localhost. Other web servers must be configured
       manually by the system administrator to restrict access to trusted hosts. If you administer  many  Debian
       system  on a local network you may want to enable access to the CGI from your network and browse packages
       on any host from any other machine.

   Web installation
       If this option is enabled in the /etc/dpkg-www.conf file, the 'Install', 'Upgrade' and  'Remove'  buttons
       are  added  to the info page of installed or uninstalled packages.  By clicking on this button the system
       administrator, or more precisely any user who has the ability to become system administrator  (since  you
       don't  want  to  run  a  web  browser  as root!), will be able to install or remove a package on the fly,
       provided he has properly configured his browser for web installation.

       For security reasons the installation is done entirely from the browser side, so that you don't  need  to
       gain  root  privileges from the CGI program which is run on the server. The only thing done on the server
       is to generate an installation request which is downloaded to the browser for  the  execution,  which  is
       started  under  control  of  the  user and with his privileges.  The real installation is done by a small
       helper   script   run   from    the    user's    browser    when    a    document    with    content-type
       'application/dpkg-www-installer' is received from the web server. The helper script opens an XTerm on the
       user's  display  and  runs a script which becomes superuser, after asking the root password, and execs an
       apt-get(8) command to install the requested packages.

       The web browser must have been configured to  handle  the  above  content-type  by  running  the  command
       "/usr/sbin/dpkg-www-installer  -x  -f '%s'", which must obviously be installed also on the client side if
       installing remotely.  If the dpkg-www package is not installed on the browser client you can simply  copy
       the script /usr/sbin/dpkg-www-installer and hope it works...

       You  can  configure  your Firefox browser from the General -> Application menu of the Preferences window.
       You  must  add  a  new   item   with   MIME   type   "application/dpkg-www-installer"   and   application
       "/usr/sbin/dpkg-www-installer  -x  -f  '%s'".  This should add the following line to your Firefox mailcap
       file:

         application/dpkg-www-installer;/usr/sbin/dpkg-www-installer -x -f '%s'

       The dpkg-www web installation has been successfully tested only with Firefox.  With other web browsers it
       is untested and it may not work correctly.

       In order to be able to install the packages the user must known the root password  asked  for  'su  root'
       when  installing  on  the  local  server,  or  have  the  ability  to ssh as root to the remote host when
       installing from a remote client.

       From the security point of view, executing a web installation is functionally  equivalent  to  opening  a
       shell in an XTerm, becoming superuser after having supplied the proper password and running apt-get(8) as
       root  to  install  or  remove  the  required  packages.   Starting this from the web could be potentially
       vulnerable to man-in-the-middle (MITM) attacks, but since it requires a password on the client  it  seems
       quite safe.  If you are really paranoid connect to a secure server from an SSL-enabled browser.

       The dpkg-www web installation is not intended to replace the normal use of apt-get(8) from the shell.  It
       is  provided  only  as a shortcut to allow the installation of a package after having located it with the
       browser without needing to open a root shell and run apt-get(8) manually.  For normal package maintenance
       and system upgrade the use of apt-get(8) from the shell is recommended.

ENVIRONMENT

       DPKG_WWW_HOST
              The hostname to use.

FILES

       /etc/dpkg-www.conf
              Configuration file for dpkg-www.  It is not necessary for this file to exist, there  are  sensible
              defaults for everything.

SEE ALSO

       dpkg(1), dwww(1), dwww(7), dlocate(1), man2html(8), grep-dctrl(1).

                                                   2019-02-26                                        DPKG-WWW(8)