Show
Ignore:
Timestamp:
07/17/13 22:08:37 (11 years ago)
Author:
jerome
Message:

Removed references to psyco.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/branches/1.26_fixes/docs/installation.sgml

    r3202 r3570  
    33<chapter> 
    44  <title id="installation">Installation</title> 
    5    
     5 
    66  <para>Last modified on $Date$</para> 
    7    
     7 
    88  <para> 
    99    Before being able to use <application>PyKota</application>, you have of course to 
    1010    install it first. But before installing, you must carefully plan your installation. 
    1111  </para> 
    12    
     12 
    1313  <para> 
    1414    First you have to determine which machine will be the <application>PyKota</application> 
     
    1616    for keeping a centralized database of print usage for all your printers, users and groups. 
    1717  </para> 
    18    
     18 
    1919  <para> 
    2020    Then you have to list all the <firstterm>Print Servers</firstterm> for which 
    2121    you plan to use print quota facilities. 
    2222  </para> 
    23    
     23 
    2424  <para> 
    2525    With most database backends, several print servers can share a single database, however 
     
    2727    as your print quota database backend. 
    2828  </para> 
    29    
     29 
    3030  <para> 
    3131    Finally you have to download <application>PyKota</application>'s latest version 
    32     or buy an official package, from  
     32    or buy an official package, from 
    3333    <ulink url="http://www.pykota.com/software/pykota">http://www.pykota.com/software/pykota</ulink>. 
    3434    If you've just bought an official package, then as soon as you've receive it you 
    3535    have to decompress and visit its archive, to do so just type the following commands : 
    3636    <screen> 
    37 jerome@nordine:~$ tar -zxf pykota-1.26_official.tar.gz     
     37jerome@nordine:~$ tar -zxf pykota-1.26_official.tar.gz 
    3838jerome@nordine:~$ cd pykota-1.26_official 
    3939jerome@nordine:~/pykota-1.26_official$ 
    4040    </screen> 
    4141  </para> 
    42    
     42 
    4343  <para> 
    4444    You can see many files in this directory, the first ones to read are <filename>README</filename>, 
    4545    then <filename>COPYING</filename> and <filename>LICENSE</filename>. They will give you 
    46     basic installation instructions and explain the licensing terms under which  
     46    basic installation instructions and explain the licensing terms under which 
    4747    <application>PyKota</application> is distributed. Of course they are also mostly 
    4848    boring to read ! Detailed installation and operating instructions are defined 
     
    5454    know this because that's what you are currently reading ! 
    5555  </para> 
    56    
     56 
    5757  <sect1> 
    5858    <title>Interactive step-by-step installation of PyKota with pksetup</title> 
    59      
     59 
    6060    <para> 
    6161      <command>pksetup</command> is a command line tool with which you'll be able 
     
    6666      several servers to install identically. 
    6767    </para> 
    68      
     68 
    6969    <para> 
    7070      Currently, <command>pksetup</command> is experimental, and only works 
    71       with <ulink url="http://www.debian.org">Debian</ulink> and  
     71      with <ulink url="http://www.debian.org">Debian</ulink> and 
    7272      <ulink url="http://www.ubuntu.com">Ubuntu</ulink> distributions. 
    7373      In addition, the database backend which will be installed with 
     
    7777      the installation manually, then read and follow the instructions in the next section. 
    7878    </para> 
    79      
     79 
    8080    <para> 
    8181      To launch the installation procedure, just type <literal>pksetup</literal> 
    8282      followed with the name of your distribution, like : 
    83     <screen>     
     83    <screen> 
    8484jerome@nordine:~/pykota-1.26_official$ ./bin/pksetup debian 
    85     </screen>   
     85    </screen> 
    8686      and then follow the instructions and answer to the several questions you'll 
    8787      be asked. 
    8888    </para> 
    8989  </sect1> 
    90    
     90 
    9191  <sect1> 
    9292    <title>Manual installation</title> 
     
    100100          This is especially the case if you've got only one server. 
    101101        </para> 
    102       </note>   
     102      </note> 
    103103    </para> 
    104      
     104 
    105105    <sect2> 
    106106      <title>Database server installation</title> 
    107        
     107 
    108108      <para> 
    109109        Depending on <application>PyKota</application>'s version number, different 
     
    111111        them how to configure it. 
    112112      </para> 
    113        
     113 
    114114      <sect3> 
    115115        <title>PostgreSQL</title> 
    116          
     116 
    117117        <para> 
    118118          <application>PostgreSQL</application> is an <firstterm>Object Relationnal DataBase 
    119119          Management System</firstterm> distributed under a <firstterm>Free Software</firstterm> 
    120           license from the  
     120          license from the 
    121121          <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink> 
    122122          web site. It certainely is the free <acronym>RDBMS</acronym> which has the most advanced 
    123123          features, and is widely used all over the world. 
    124124        </para> 
    125          
     125 
    126126        <para> 
    127127          To configure your database, you must have PostgreSQL already working. 
    128128          The complete installation of <application>PostgreSQL</application> is not covered by 
    129           the present manual, please refer to your system's documentation or to  
     129          the present manual, please refer to your system's documentation or to 
    130130          <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink> for 
    131131          details. 
    132132        </para> 
    133          
     133 
    134134        <para> 
    135135          One thing you have to check, though, is that every Print Server on which you 
     
    146146          is not necessary though if your print quota database server and your Print Server are 
    147147          the very same host. 
    148         </para>   
    149          
     148        </para> 
     149 
    150150        <para> 
    151151          Here's an excerpt from a <filename>pg_hba.conf</filename> file. This one rejects all 
    152152          connections to PyKota's database excepted when made from the same host by <application>PostgreSQL</application> users 
    153153          <literal>pykotauser</literal> or <literal>pykotaadmin</literal> with the correct password. 
    154     <screen>         
     154    <screen> 
    155155          local all    postgres                              ident sameuser 
    156156          local all    all                                   reject 
     
    160160    </screen> 
    161161       </para> 
    162         
     162 
    163163       <para> 
    164164          Of course if your print server and your database servers have different <acronym>IP</acronym> 
     
    173173              any of its configuration files, in order for the changes to take effect. 
    174174            </para> 
    175           </tip>   
    176         </para> 
    177          
     175          </tip> 
     176        </para> 
     177 
    178178        <para> 
    179179          Be careful, you may be unable to connect from a Print Server to the <application>PostgreSQL</application> 
     
    186186            <title>Note</title> 
    187187            <para> 
    188               The TCP/IP network port used by PostgreSQL may be different. When in doubt, ask your  
    189               <firstterm>System Administrator</firstterm> for the correct value.  
    190             </para> 
    191           </note>   
    192         </para> 
    193          
     188              The TCP/IP network port used by PostgreSQL may be different. When in doubt, ask your 
     189              <firstterm>System Administrator</firstterm> for the correct value. 
     190            </para> 
     191          </note> 
     192        </para> 
     193 
    194194        <para> 
    195195          Now that your <application>PostgreSQL</application> server is up and running, and 
     
    203203          itself, he is only defined in <application>PostgreSQL</application> and don't 
    204204          have to exist on any system, nor in the print quota database. His default name 
    205           is <literal>pykotaadmin</literal>.  
     205          is <literal>pykotaadmin</literal>. 
    206206          A print quota database read-only user is also created under the name of <literal>pykotauser</literal>. 
    207           This read-only user is used by <application>PyKota</application> to connect to the  
    208           print quota database when an user who is not a <application>PyKota</application> administrator  
     207          This read-only user is used by <application>PyKota</application> to connect to the 
     208          print quota database when an user who is not a <application>PyKota</application> administrator 
    209209          <footnote><para>a <application>PyKota</application> administrator is an user who can read the <filename>~pykota/pykotadmin.conf</filename> file.</para></footnote> 
    210210          launches a pykota command. This prevents normal 
     
    217217            <title>Note</title> 
    218218            <para> 
    219               You can choose other names and passwords if you want by modifying the  
     219              You can choose other names and passwords if you want by modifying the 
    220220              <filename>initscripts/postgresql/pykota-postgresql.sql</filename> file 
    221221              accordingly, and report your changes into <application>PyKota</application>'s 
    222222              configuration files. 
    223223            </para> 
    224           </note>   
    225         </para> 
    226          
     224          </note> 
     225        </para> 
     226 
    227227        <para> 
    228228          To run this script, you can use the <command>psql</command> frontend to 
     
    236236    jerome@nordine:~/pykota-1.26_official/initscripts$ psql -h localhost -U postgres template1 
    237237    Welcome to psql, the PostgreSQL interactive terminal. 
    238      
     238 
    239239    Type:  \copyright for distribution terms 
    240240         \h for help with SQL commands 
     
    242242         \g or terminate with semicolon to execute query 
    243243         \q to quit 
    244      
    245     template1=# \i pykota-postgresql.sql  
     244 
     245    template1=# \i pykota-postgresql.sql 
    246246              ... a lot of output lines 
    247     pykota=#        
     247    pykota=# 
    248248          </screen> 
    249249          <note> 
     
    252252              If you use RPM or DEB packages, usually the 
    253253              <filename>pykota-postgresql.sql</filename> file gets installed into the 
    254               <filename>/usr/share/pykota/postgresql</filename> directory, along  
     254              <filename>/usr/share/pykota/postgresql</filename> directory, along 
    255255              with a README file. 
    256256            </para> 
    257           </note>   
    258         </para> 
    259          
     257          </note> 
     258        </para> 
     259 
    260260        <para> 
    261261          If you want to you can change passwords later in 
    262           <application>PostgreSQL</application> for the  
     262          <application>PostgreSQL</application> for the 
    263263          <literal>pykotaadmin</literal> and <literal>pykotauser</literal> users. 
    264264          To do so, just type the following lines while still being at the <command>psql</command> 
     
    272272          </screen> 
    273273        </para> 
    274          
     274 
    275275        <para> 
    276276          The <literal>\q</literal> command above will quit the <command>psql</command> 
    277277          program and return you to the shell's command line prompt. 
    278278        </para> 
    279          
     279 
    280280        <para> 
    281281          To improve security further, you could encrypt your database connections, or 
    282282          take any other step as needed. Please refer to <application>PostgreSQL</application>'s 
    283           documentation for details.  
     283          documentation for details. 
    284284          <warning> 
    285285            <title>Warning</title> 
     
    293293              though, it is just a general rule to keep in mind. 
    294294            </para> 
    295           </warning>   
    296         </para> 
    297          
     295          </warning> 
     296        </para> 
     297 
    298298        <para> 
    299299          For more details, please see <filename>initscripts/mysql/README.postgresql</filename>. 
    300300        </para> 
    301          
     301 
    302302        <para> 
    303303          If no error occured, then your print quota database is ready to be used. 
     
    312312              can try to fix the problem. Thanks in advance. 
    313313            </para> 
    314           </tip>   
    315         </para> 
    316          
    317       </sect3>   
    318        
     314          </tip> 
     315        </para> 
     316 
     317      </sect3> 
     318 
    319319      <sect3> 
    320320        <title>LDAP</title> 
    321          
    322         <para> 
    323           Any <acronym>LDAP</acronym> server, and particularly <application>OpenLDAP</application>, can be used  
     321 
     322        <para> 
     323          Any <acronym>LDAP</acronym> server, and particularly <application>OpenLDAP</application>, can be used 
    324324          as a print quota database backend. 
    325325          Some other LDAP servers can be used, but this is currently untested in production. 
    326326        </para> 
    327          
     327 
    328328        <para> 
    329329          <application>OpenLDAP</application> is a Lightweight Directory Access Protocol server 
     
    331331          You can download it from <ulink url="http://www.openldap.org">http://www.openldap.org</ulink>. 
    332332        </para> 
    333          
     333 
    334334        <para> 
    335335          To use <application>OpenLDAP</application> as your print quota database backend, you have to copy the 
    336           <filename>pykota/initscripts/ldap/pykota.schema</filename> into <application>OpenLDAP</application>'s  
     336          <filename>pykota/initscripts/ldap/pykota.schema</filename> into <application>OpenLDAP</application>'s 
    337337          schemas directory. 
    338338          Under Debian GNU/Linux, this is something like : 
    339           <screen>         
     339          <screen> 
    340340    $ cp pykota.schema /etc/ldap/schema 
    341341          </screen> 
     
    349349              your <acronym>LDAP</acronym> server's schemas directory. 
    350350            </para> 
    351           </note>   
     351          </note> 
    352352       </para> 
    353        <para>    
    354          Then edit <filename>/etc/ldap/slapd.conf</filename> and add a line to     
     353       <para> 
     354         Then edit <filename>/etc/ldap/slapd.conf</filename> and add a line to 
    355355         include the PyKota schema. You should have something 
    356356         like : 
    357          <screen>     
     357         <screen> 
    358358    # Schema and objectClass definitions 
    359359    include         /etc/ldap/schema/core.schema 
     
    362362    include         /etc/ldap/schema/inetorgperson.schema 
    363363    include         /etc/ldap/schema/pykota.schema 
    364           </screen>         
    365         </para> 
    366          
     364          </screen> 
     365        </para> 
     366 
    367367        <para> 
    368368          While this is not mandatory, it is recommended that you setup 
     
    379379          </screen> 
    380380        </para> 
    381          
    382         <para> 
    383           Now you must ensure that the DNs you'll use to bind to     
     381 
     382        <para> 
     383          Now you must ensure that the DNs you'll use to bind to 
    384384          your OpenLDAP server don't have search queries size limits, 
    385385          which gives for example (OpenLDAP 2.1.x or above) : 
    386            
    387     <screen>         
     386 
     387    <screen> 
    388388    # No Limits for PyKota's administrator and read-only user 
    389389    limits dn="cn=pykotaadmin,dc=example,dc=com" size.soft=-1 size.hard=soft 
    390390    limits dn="cn=pykotauser,dc=example,dc=com" size.soft=-1 size.hard=soft 
    391     </screen>         
    392      
     391    </screen> 
     392 
    393393          Where pykotaadmin and pykotauser are the usernames used to bind to your 
    394           OpenLDAP server within PyKota, respectively in ReadWrite mode  
     394          OpenLDAP server within PyKota, respectively in ReadWrite mode 
    395395          (as set in pykotadmin.conf) and in ReadOnly mode (as set in pykota.conf). 
    396396        </para> 
    397          
     397 
    398398        <para> 
    399399          Finally, stop the <application>OpenLDAP</application> server, generate 
    400400          the index files, and restart <application>OpenLDAP</application> 
    401           <screen>     
     401          <screen> 
    402402    $ /etc/init.d/slapd stop 
    403403    $ slapindex 
     
    405405          </screen> 
    406406        </para> 
    407          
     407 
    408408        <para> 
    409409          With an <acronym>LDAP</acronym> backend, PyKota will need some branches 
     
    416416          entries, this may ease the maintainance. 
    417417        </para> 
    418          
     418 
    419419        <para> 
    420420          PyKota needs at least an <literal>ou</literal> for printers, for users quotas, for 
     
    423423          will probably be attached to each printer. 
    424424        </para> 
    425          
     425 
    426426        <para> 
    427427          Actually PyKota doesn't create these <literal>ou</literal>s for you, because it's 
     
    436436              If you use RPM or DEB packages, usually the 
    437437              <filename>pykota-sample.ldif</filename> file is installed into the 
    438               <filename>/usr/share/pykota/ldap</filename> directory, along  
     438              <filename>/usr/share/pykota/ldap</filename> directory, along 
    439439              with a README file. 
    440440            </para> 
    441           </note>   
    442         </para> 
    443          
     441          </note> 
     442        </para> 
     443 
    444444        <para> 
    445445          If no error occured, then your print quota database is ready to be used. 
     
    454454              can try to fix the problem. Thanks in advance. 
    455455            </para> 
    456           </tip>   
    457         </para> 
    458       </sect3>   
    459        
     456          </tip> 
     457        </para> 
     458      </sect3> 
     459 
    460460      <sect3> 
    461461        <title>MySQL</title> 
    462          
     462 
    463463        <para> 
    464464          <application>MySQL</application> is a simple Relationnal DataBase 
    465465          Management System distributed under a <firstterm>Free Software</firstterm> 
    466           license from the  
     466          license from the 
    467467          <ulink url="http://www.mysql.org">http://www.mysql.org</ulink> 
    468           web site.  
    469         </para> 
    470          
     468          web site. 
     469        </para> 
     470 
    471471        <para> 
    472472          To configure your database, you must have MySQL version 4.1 or higher already working. 
    473473          We recommend that you use MySQL 5.0 or higher though. 
    474474          The complete installation of <application>MySQL</application> is not covered by 
    475           the present manual, please refer to your system's documentation or to  
     475          the present manual, please refer to your system's documentation or to 
    476476          <ulink url="http://www.mysql.org">http://www.mysql.org</ulink> for 
    477477          details. 
    478478        </para> 
    479          
     479 
    480480        <para> 
    481481          One thing you have to check, though, is that every Print Server on which you 
     
    492492              any of its configuration files, in order for the changes to take effect. 
    493493            </para> 
    494           </tip>   
    495         </para> 
    496          
     494          </tip> 
     495        </para> 
     496 
    497497        <para> 
    498498          Be careful, you may be unable to connect from a Print Server to the <application>MySQL</application> 
     
    505505            <title>Note</title> 
    506506            <para> 
    507               The TCP/IP network port used by MySQL may be different. When in doubt, ask your  
    508               <firstterm>System Administrator</firstterm> for the correct value.  
    509             </para> 
    510           </note>   
    511         </para> 
    512          
     507              The TCP/IP network port used by MySQL may be different. When in doubt, ask your 
     508              <firstterm>System Administrator</firstterm> for the correct value. 
     509            </para> 
     510          </note> 
     511        </para> 
     512 
    513513        <para> 
    514514          Now that your <application>MySQL</application> server is up and running, and 
     
    517517          <filename>pykota-1.26_official/initscripts/mysql/pykota-mysql.sql</filename> file. 
    518518          This file will create an empty 
    519           print quota database and set some permissions on it.  
     519          print quota database and set some permissions on it. 
    520520          The database which will be created will be named <literal>pykota</literal> by default. 
    521521          Two database users will be defined to have access in readonly and read+write modes under 
     
    527527            <title>Note</title> 
    528528            <para> 
    529               You can choose other names and passwords if you want by modifying the  
     529              You can choose other names and passwords if you want by modifying the 
    530530              <filename>initscripts/mysql/pykota-mysql.sql</filename> file 
    531531              accordingly, and report your changes into <application>PyKota</application>'s 
    532532              configuration files. 
    533533            </para> 
    534           </note>   
    535         </para> 
    536          
     534          </note> 
     535        </para> 
     536 
    537537        <para> 
    538538          To run this script, you can use the <command>mysql</command> frontend to 
     
    550550              If you use RPM or DEB packages, usually the 
    551551              <filename>pykota-mysql.sql</filename> file gets installed into the 
    552               <filename>/usr/share/pykota/mysql</filename> directory, along  
     552              <filename>/usr/share/pykota/mysql</filename> directory, along 
    553553              with a README file. 
    554554            </para> 
    555           </note>   
    556         </para> 
    557          
     555          </note> 
     556        </para> 
     557 
    558558        <para> 
    559559          To improve security further, you could encrypt your database connections, or 
    560560          take any other step as needed. Please refer to <application>MySQL</application>'s 
    561           documentation for details.  
    562         </para> 
    563          
     561          documentation for details. 
     562        </para> 
     563 
    564564        <para> 
    565565          For more details, please see <filename>initscripts/mysql/README.mysql</filename>. 
    566566        </para> 
    567          
     567 
    568568        <para> 
    569569          If no error occured, then your print quota database is ready to be used. 
     
    578578              can try to fix the problem. Thanks in advance. 
    579579            </para> 
    580           </tip>   
    581         </para> 
    582          
    583       </sect3>   
    584        
     580          </tip> 
     581        </para> 
     582 
     583      </sect3> 
     584 
    585585      <sect3> 
    586586        <title>SQLite</title> 
    587          
     587 
    588588        <para> 
    589589          <application>SQLite</application> is an embeddable Relationnal DataBase 
    590590          distributed under a Free Software 
    591           license from the  
     591          license from the 
    592592          <ulink url="http://www.sqlite.org">http://www.sqlite.org</ulink> 
    593           web site.  
     593          web site. 
    594594          If is very easy to configure and use, offers a very small memory footprint, 
    595595          is very fast, but can only be used on the print server because it doesn't include 
    596596          a server daemon : the database is directly embedded in the application. 
    597597        </para> 
    598          
     598 
    599599        <para> 
    600600          To configure your database, you must have SQLite already working. 
    601601          The complete installation of <application>SQLite</application> is not covered by 
    602           the present manual, please refer to your system's documentation or to  
     602          the present manual, please refer to your system's documentation or to 
    603603          <ulink url="http://www.sqlite.org">http://www.sqlite.org</ulink> for 
    604604          details. 
    605605        </para> 
    606          
     606 
    607607        <para> 
    608608          Once <application>SQLite</application> is installed, you have to decide where 
    609609          you'll put your database. A good idea is to store it into the <literal>pykota</literal> 
    610610          user's home directory. Then to create the database, just type : 
    611     <screen>         
     611    <screen> 
    612612    # sqlite3 ~pykota/pykota.db &lt;pykota/initscripts/sqlite/pykota.sqlite 
    613613    # chown pykota.pykota ~pykota/pykota.db 
     
    620620          follow the instructions a bit below which explain how to install PyKota on the print server. 
    621621        </para> 
    622          
     622 
    623623        <para> 
    624624          Once this is done, you'll want to set in <filename>~pykota/pykota.conf</filename> the 
    625625          following lines in the <literal>[global]</literal> section : 
    626     <screen>         
     626    <screen> 
    627627    storagebackend : sqlitestorage 
    628628    storagename : /etc/pykota/pykota.db 
     
    643643              can try to fix the problem. Thanks in advance. 
    644644            </para> 
    645           </tip>   
    646         </para> 
    647       </sect3>   
    648        
     645          </tip> 
     646        </para> 
     647      </sect3> 
     648 
    649649      <sect3> 
    650650        <title>Berkeley DB</title> 
    651          
     651 
    652652        <para> 
    653653          A <application>Berkeley DB</application> backend is planned, but it actually 
     
    656656          each print server. This may still prove to be useful for small configurations. 
    657657        </para> 
    658       </sect3>   
    659     </sect2>   
    660      
     658      </sect3> 
     659    </sect2> 
     660 
    661661    <sect2> 
    662662      <title>Print Server Installation</title> 
    663        
     663 
    664664      <para> 
    665665        For each Print Server on which you plan to implement the print quota 
    666         mechanism, you have, of course, to have an already working printing environment.  
    667         Currently <application>PyKota</application> works with  
     666        mechanism, you have, of course, to have an already working printing environment. 
     667        Currently <application>PyKota</application> works with 
    668668        <ulink url="http://www.cups.org"><application>CUPS</application></ulink> 
    669669        but older releases also supported <ulink url="http://lprng.sourceforge.net"><application>LPRng</application></ulink>. 
    670670        <application>LPRng</application> support might be re-added in the future. 
    671671      </para> 
    672        
     672 
    673673      <para> 
    674674        Here's the list of software you have to install on each Print Server, version numbers 
    675         are given as an indication of which was successfully tested, but older versions may  
     675        are given as an indication of which was successfully tested, but older versions may 
    676676        work too. 
    677677        <itemizedlist> 
     
    682682              You can download it from <ulink url="http://www.cups.org">http://www.cups.org</ulink> 
    683683            </para> 
    684           </listitem>   
     684          </listitem> 
    685685          <listitem> 
    686686            <para> 
     
    692692              of this language. 
    693693            </para> 
    694           </listitem>   
     694          </listitem> 
    695695          <listitem> 
    696696            <para> 
     
    706706                          version used on your print quota database server. 
    707707                        </para> 
    708                       </listitem>   
     708                      </listitem> 
    709709                      <listitem> 
    710710                        <para> 
    711                           The <application>PygreSQL</application> python module.  
     711                          The <application>PygreSQL</application> python module. 
    712712                          <application>PygreSQL</application> is normally included in 
    713713                          <application>PostgreSQL</application>, but you may want to 
    714714                          download it from <ulink url="http://www.pygresql.org">http://www.pygresql.org</ulink> 
    715715                        </para> 
    716                       </listitem>   
    717                     </itemizedlist>   
     716                      </listitem> 
     717                    </itemizedlist> 
    718718                  </para> 
    719                 </listitem>   
     719                </listitem> 
    720720                <listitem> 
    721721                  <para> 
    722                     OpenLDAP backend :  
     722                    OpenLDAP backend : 
    723723                    <itemizedlist> 
    724724                      <listitem> 
     
    727727                          the <application>OpenLDAP</application> version used on your print quota database server. 
    728728                        </para> 
    729                       </listitem>   
     729                      </listitem> 
    730730                      <listitem> 
    731731                        <para> 
     
    733733                          You may download this module from <ulink url="http://python-ldap.sourceforge.net">http://python-ldap.sourceforge.net</ulink> 
    734734                        </para> 
    735                       </listitem>   
     735                      </listitem> 
    736736                    </itemizedlist> 
    737737                  </para> 
     
    746746                          version used on your database server. 
    747747                        </para> 
    748                       </listitem>   
     748                      </listitem> 
    749749                      <listitem> 
    750750                        <para> 
    751                           The <application>Python-MySQL</application> python module, version 1.2.x or higher.  
     751                          The <application>Python-MySQL</application> python module, version 1.2.x or higher. 
    752752                          You can download it from <ulink url="http://sourceforge.net/projects/mysql-python">http://sourceforge.net/projects/mysql-python</ulink> 
    753753                        </para> 
    754                       </listitem>   
    755                     </itemizedlist>   
     754                      </listitem> 
     755                    </itemizedlist> 
    756756                  </para> 
    757757                </listitem> 
     
    759759                  <para> 
    760760                    SQLite backend : SQLite is not a database server, but an embeddable database, so 
    761                     if you want to use it you MUST install SQLite on your print server. With  
     761                    if you want to use it you MUST install SQLite on your print server. With 
    762762                    <application>PostgreSQL</application>, <application>MySQL</application> or 
    763763                    <application>OpenLDAP</application> you can store your datas on a different 
     
    767767                        <para> 
    768768                          <application>SQLite</application> version 3.2.1 or higher and its library. 
    769                           You can download it from  
     769                          You can download it from 
    770770                          <ulink url="http://www.sqlite.org">http://www.sqlite.org</ulink> 
    771771                        </para> 
    772                       </listitem>   
     772                      </listitem> 
    773773                      <listitem> 
    774774                        <para> 
    775775                          The <application>Python-SQLite</application> python module version 2.0.5 or higher. 
    776                           You can download it from  
     776                          You can download it from 
    777777                          <ulink url="http://www.pysqlite.org">http://www.pysqlite.org</ulink> 
    778778                        </para> 
    779                       </listitem>   
     779                      </listitem> 
    780780                    </itemizedlist> 
    781781                  </para> 
     
    786786                  </para> 
    787787                </listitem> 
    788               </itemizedlist>   
    789             </para> 
    790           </listitem>   
     788              </itemizedlist> 
     789            </para> 
     790          </listitem> 
    791791          <listitem> 
    792792            <para> 
     
    797797              printers. 
    798798            </para> 
    799           </listitem>   
     799          </listitem> 
    800800          <listitem> 
    801801            <para> 
     
    805805              You only need this if you plan to query your printers for their internal page counter via AppleTalk. 
    806806            </para> 
    807           </listitem>   
     807          </listitem> 
    808808          <listitem> 
    809809            <para> 
     
    811811              You can download it from <ulink url="http://www.egenix.com">http://www.egenix.com</ulink>. 
    812812            </para> 
    813           </listitem>   
    814           <listitem> 
    815             <para> 
    816               The Python acccelerator <application>Psyco</application>. It must match your default Python version. 
    817               You can download it from <ulink url="http://psyco.sourceforge.net">http://psyco.sourceforge.net</ulink>. 
    818               You only need this if you run on the <literal>x86</literal> architecture because  
    819               <application>Psyco</application> doesn't yet exist on other architectures. 
    820             </para> 
    821           </listitem>   
     813          </listitem> 
    822814          <listitem> 
    823815            <para> 
     
    825817              You can download it from <ulink url="http://pysnmp.sourceforge.net">http://pysnmp.sourceforge.net</ulink>. 
    826818            </para> 
    827           </listitem>   
    828           <listitem> 
    829             <para> 
    830               The <application>JAXML</application> Python module.  
     819          </listitem> 
     820          <listitem> 
     821            <para> 
     822              The <application>JAXML</application> Python module. 
    831823              You can download it from <ulink url="http://www.librelogiciel.com/software/">http://www.librelogiciel.com/software/</ulink>. 
    832824            </para> 
    833           </listitem>   
    834           <listitem> 
    835             <para> 
    836               The <application>ReportLab</application> Toolkit Python module.  
     825          </listitem> 
     826          <listitem> 
     827            <para> 
     828              The <application>ReportLab</application> Toolkit Python module. 
    837829              You can download it from <ulink url="http://www.reportlab.org">http://www.reportlab.org</ulink>. 
    838830            </para> 
    839           </listitem>   
    840           <listitem> 
    841             <para> 
    842               The <application>Python Imaging Library - PIL</application> module.  
     831          </listitem> 
     832          <listitem> 
     833            <para> 
     834              The <application>Python Imaging Library - PIL</application> module. 
    843835              You can download it from <ulink url="http://www.pythonware.com">http://www.pythonware.com</ulink>. 
    844836            </para> 
    845           </listitem>   
    846           <listitem> 
    847             <para> 
    848               The <application>PyOSD</application> Python module.  
     837          </listitem> 
     838          <listitem> 
     839            <para> 
     840              The <application>PyOSD</application> Python module. 
    849841              You can download it from <ulink url="http://repose.cx/pyosd/">http://repose.cx/pyosd/</ulink>. 
    850842            </para> 
    851           </listitem>   
    852           <listitem> 
    853             <para> 
    854               The <application>pkpgcounter</application> Generic Page Description Language parser.  
     843          </listitem> 
     844          <listitem> 
     845            <para> 
     846              The <application>pkpgcounter</application> Generic Page Description Language parser. 
    855847              You can download it from <ulink url="http://www.pykota.com.com/software/pkpgcounter">http://www.pykota.com/software/pkpgcounter</ulink>. 
    856848            </para> 
    857           </listitem>   
     849          </listitem> 
    858850          <listitem> 
    859851            <para> 
     
    863855              If needed, you can download it from <ulink url="http://www.pangalactic.org/PyPAM/">http://www.pangalactic.org/PyPAM/</ulink>. 
    864856            </para> 
    865           </listitem>   
     857          </listitem> 
    866858          <listitem> 
    867859            <para> 
     
    869861              You can download it from <ulink url="http://www.pykota.com/software/pkipplib">http://www.pykota.com/software/pkipplib</ulink>. 
    870862            </para> 
    871           </listitem>   
    872         </itemizedlist>   
    873       </para> 
    874        
     863          </listitem> 
     864        </itemizedlist> 
     865      </para> 
     866 
    875867      <para> 
    876868        Instead of downloading all these programs' sources and compiling them, which really 
     
    882874        distributions. 
    883875      </para> 
    884        
     876 
    885877      <para> 
    886878         You can check that all needed software is installed by launching the <command>checkdeps.py</command> 
    887879         command : 
    888         <screen>       
    889     $ python checkdeps.py       
     880        <screen> 
     881    $ python checkdeps.py 
    890882        </screen> 
    891883      </para> 
    892        
     884 
    893885      <para> 
    894886        Once all these software are installed, installing PyKota itself is a breeze. 
    895         PyKota being written entirely in the Python language, which is interpreted,  
     887        PyKota being written entirely in the Python language, which is interpreted, 
    896888        there's no need to compile anything. You just have to execute the installation 
    897889        script : 
    898         <screen>       
    899     $ python setup.py install       
     890        <screen> 
     891    $ python setup.py install 
    900892        </screen> 
    901893      </para> 
    902        
    903       <para> 
    904         The setup script will automatically create the  
    905         <filename>/usr/share/pykota/conf</filename> directory and put the sample  
     894 
     895      <para> 
     896        The setup script will automatically create the 
     897        <filename>/usr/share/pykota/conf</filename> directory and put the sample 
    906898        configuration files <filename>conf/pykota.conf.sample</filename> and 
    907899        <filename>conf/pykotadmin.conf.sample</filename> there, along with 
    908900        a <filename>README</filename> file explaining their purpose. 
    909901      </para> 
    910        
     902 
    911903      <para> 
    912904        Now you have to create a <literal>pykota</literal> system user and group. The <application>PyKota</application> 
     
    914906        home directory. For example we could create the user and group, and set <filename>/etc/pykota</filename> 
    915907        as the home directory, but any other home directory will do : 
    916     <screen>       
     908    <screen> 
    917909      adduser --system --group --home /etc/pykota --gecos PyKota pykota 
    918910    </screen> 
    919911      </para> 
    920        
     912 
    921913      <para> 
    922914        You now have to copy the sample configuration files into the <filename>~pykota</filename> 
    923         directory, under the respective names <filename>pykota.conf</filename> and  
     915        directory, under the respective names <filename>pykota.conf</filename> and 
    924916        <filename>pykotadmin.conf</filename>. Once copied there, you just 
    925917        have to modify these files to adapt them to your own setup. 
     
    934926        to any external command of your choice. 
    935927      </para> 
    936        
     928 
    937929      <para> 
    938930        Please create a backup copy of the <filename>~pykota</filename> 
    939931        directory before modifying a working installation. 
    940932      </para> 
    941        
     933 
    942934      <para> 
    943935        PyKota features some interesting possibilities which allow you to 
     
    945937        or on a per printer basis. Please see the sample configuration files 
    946938        to see what I mean. In the simplest form, only a <literal>[global]</literal> section is 
    947         needed. In more complex configurations, you will have to create  
     939        needed. In more complex configurations, you will have to create 
    948940        one section per printer. Each section in the configuration files 
    949941        begins with a name between square brackets <literal>[]</literal>. 
     
    951943        of the print queue you want to manage with PyKota. 
    952944      </para> 
    953        
     945 
    954946      <para> 
    955947        After you have modified <application>PyKota</application>'s configuration files, you have to 
     
    965957        file contains the read-write user's identity and password. You must then 
    966958        ensure that no normal user can read this file. It should only be readable 
    967         by the <literal>root</literal> user, which is always the case, and by  
     959        by the <literal>root</literal> user, which is always the case, and by 
    968960        <application>PyKota</application> administrators. In addition, 
    969         users for which <application>CUPS</application> doesn't run as user <literal>root</literal> will  
     961        users for which <application>CUPS</application> doesn't run as user <literal>root</literal> will 
    970962        have to ensure that the user their printing system is run as 
    971963        can read both of these files. An easy way to do so is to put the <literal>lp</literal> user 
     
    973965        to give the correct permissions to <application>PyKota</application>'s configuration files : 
    974966        <screen> 
    975     $ chown -R pykota.pykota ~pykota/       
     967    $ chown -R pykota.pykota ~pykota/ 
    976968    $ chmod 750 ~pykota/ 
    977     $ chmod 644 ~pykota/pykota.conf       
    978     $ chmod 640 ~pykota/pykotadmin.conf       
     969    $ chmod 644 ~pykota/pykota.conf 
     970    $ chmod 640 ~pykota/pykotadmin.conf 
    979971        </screen> 
    980          
     972 
    981973        <warning> 
    982974          <title>Warning</title> 
    983975          <para> 
    984             All the users allowed to read the <filename>~pykota/pykotadmin.conf</filename>  
     976            All the users allowed to read the <filename>~pykota/pykotadmin.conf</filename> 
    985977            are considered to be <application>PyKota</application> administrators. So be 
    986978            careful with these files permissions. 
     
    988980        </warning> 
    989981      </para> 
    990        
     982 
    991983      <para> 
    992984        On some systems, you may be able to strenghten permissions like this : 
    993985        <screen> 
    994     $ chown -R pykota.pykota ~pykota/       
     986    $ chown -R pykota.pykota ~pykota/ 
    995987    $ chmod 750 ~pykota/ 
    996     $ chmod 640 ~pykota/pykota.conf       
    997     $ chmod 600 ~pykota/pykotadmin.conf       
     988    $ chmod 640 ~pykota/pykota.conf 
     989    $ chmod 600 ~pykota/pykotadmin.conf 
    998990        </screen> 
    999991      </para> 
    1000        
     992 
    1001993      <para> 
    1002994        And on other ones, you may need to relax them, and change the files' owner : 
    1003995        <screen> 
    1004     $ chown pykota.pykota ~pykota/       
     996    $ chown pykota.pykota ~pykota/ 
    1005997    $ chmod 755 ~pykota/ 
    1006     $ chown lp.pykota ~pykota/pykota.conf       
    1007     $ chmod 640 ~pykota/pykota.conf       
    1008     $ chown lp.pykota ~pykota/pykotadmin.conf       
    1009     $ chmod 640 ~pykota/pykotadmin.conf       
     998    $ chown lp.pykota ~pykota/pykota.conf 
     999    $ chmod 640 ~pykota/pykota.conf 
     1000    $ chown lp.pykota ~pykota/pykotadmin.conf 
     1001    $ chmod 640 ~pykota/pykotadmin.conf 
    10101002        </screen> 
    10111003      </para> 
    1012        
     1004 
    10131005      <para> 
    10141006        This all depends on the printing system you are using, and the user the 
    10151007        printing system is usually running as. You need to remember three things : 
    1016          
     1008 
    10171009        <itemizedlist> 
    10181010          <listitem> 
     
    10201012              The user your printing system runs as MUST be allowed to read 
    10211013              both <application>PyKota</application>'s configuration files. 
    1022             </para>   
    1023           </listitem>   
    1024           <listitem>         
     1014            </para> 
     1015          </listitem> 
     1016          <listitem> 
    10251017            <para> 
    10261018              Any user who can read <filename>pykotadmin.conf</filename> 
     
    10291021            </para> 
    10301022          </listitem> 
    1031           <listitem>         
     1023          <listitem> 
    10321024            <para> 
    10331025              If <filename>cupsd.conf</filename> contains <literal>RunAsUser</literal>, then 
     
    10371029            </para> 
    10381030          </listitem> 
    1039         </itemizedlist>   
    1040       </para> 
    1041        
     1031        </itemizedlist> 
     1032      </para> 
     1033 
    10421034      <para> 
    10431035        Don't forget to restart your print server sofware if you changed group membership for the user it runs 
    10441036        as, otherwise your change wouldn't be taken into account. 
    10451037      </para> 
    1046        
     1038 
    10471039      <para> 
    10481040        Now depending on your printing system, the configuration to do is particular. 
     
    10501042        is not supported anymore. 
    10511043      </para> 
    1052        
     1044 
    10531045      <sect3> 
    10541046        <title>With CUPS</title> 
    1055          
     1047 
    10561048        <para> 
    10571049          From version 1.16alpha7 on, configuring <application>PyKota</application> to integrate 
    10581050          within <application>CUPS</application> is more than easy. 
    10591051        </para> 
    1060          
     1052 
    10611053        <para> 
    10621054          You just have to create a symbolic link to the <command>cupspykota</command> 
    10631055          command in <application>CUPS</application>' backend directory : 
    1064           <screen>         
    1065     $ cd /usr/lib/cups/backend         
     1056          <screen> 
     1057    $ cd /usr/lib/cups/backend 
    10661058    $ ln -s /usr/share/pykota/cupspykota cupspykota 
    10671059          </screen> 
    10681060        </para> 
    1069          
     1061 
    10701062        <para> 
    10711063          If you use CUPS v1.2 or higher, you must 
     
    10731065          backend to correctly support other backends which must be run 
    10741066          as the root user (e.g. the <command>lpd</command> backend) : 
    1075           <screen>         
     1067          <screen> 
    10761068    $ chmod 700 /usr/share/pykota/cupspykota 
    10771069          </screen> 
    10781070        </para> 
    1079          
     1071 
    10801072        <para> 
    10811073          You have to restart <application>CUPS</application> for this modification to 
    1082           take effect :  
     1074          take effect : 
    10831075          <screen> 
    1084     $ /etc/init.d/cupsys restart         
     1076    $ /etc/init.d/cupsys restart 
    10851077          </screen> 
    10861078        </para> 
    1087          
    1088         <para> 
    1089           Now point your web browser to CUPS configuration page, usually at  
     1079 
     1080        <para> 
     1081          Now point your web browser to CUPS configuration page, usually at 
    10901082          <ulink url="http://localhost:631">http://localhost:631</ulink> on 
    10911083          your print server. 
    10921084        </para> 
    1093          
     1085 
    10941086        <para> 
    10951087          Then when creating new printers or reconfiguring existing ones, just 
     
    10991091              Debian 3.0 Woody is known to have problems : CUPS 1.1.14 doesn't automatically 
    11001092              detect <literal>PyKota managed</literal> devices. So you have to manually 
    1101               modify CUPS' <filename>printers.conf</filename> file as explained in  
     1093              modify CUPS' <filename>printers.conf</filename> file as explained in 
    11021094              PyKota's toplevel <filename>README</filename> file. 
    11031095            </para> 
     
    11081100          one. 
    11091101        </para> 
    1110          
     1102 
    11111103        <para> 
    11121104          Repeat the above procedure for each print queue on which you want to use 
    11131105          PyKota. That's all ! 
    11141106        </para> 
    1115          
     1107 
    11161108        <sect4> 
    11171109          <title>Troubleshooting</title> 
     
    11211113            well as the hardware and software you use. 
    11221114          </para> 
    1123            
     1115 
    11241116          <para> 
    1125             A searchable FAQ is now available at  
     1117            A searchable FAQ is now available at 
    11261118            <ulink url="http://otrs.librelogiciel.com/otrs/public.pl">http://otrs.librelogiciel.com/public.pl</ulink>. 
    11271119            A FAQ entry explaining in great details how to diagnose a problem correctly is 
    1128             available at  
     1120            available at 
    11291121            <ulink url="http://otrs.librelogiciel.com/otrs/public.pl?ID=2">http://otrs.librelogiciel.com/public.pl?ID=2</ulink>. 
    11301122          </para> 
    1131            
     1123 
    11321124          <para> 
    11331125            You can also ask questions on IRC : 
    11341126            <screen> 
    1135     /server irc.freenode.net           
     1127    /server irc.freenode.net 
    11361128    /join #pykota 
    11371129            </screen> 
    1138           </para>   
    1139         </sect4>   
    1140          
     1130          </para> 
     1131        </sect4> 
     1132 
    11411133      </sect3> 
    1142        
    1143     </sect2>   
     1134 
     1135    </sect2> 
    11441136  </sect1> 
    11451137</chapter>