root / pykota / trunk / docs / installation.sgml @ 1600

Revision 1600, 34.4 kB (checked in by jalet, 20 years ago)

LPRng support early version

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<!-- $Id$ -->
2
3<chapter>
4  <title id="installation">Installation</title>
5 
6  <para>Last modified on $Date$</para>
7 
8  <para>
9    Before being able to use <application>PyKota</application>, you have of course to
10    install it first. But before installing, you must carefully plan your installation.
11  </para>
12 
13  <para>
14    First you have to determine which machine will be the <application>PyKota</application>
15    <firstterm>Storage Server</firstterm>. The Storage Server is the host responsible
16    for keeping a centralized database of print usage for all your printers, users and groups.
17  </para>
18 
19  <para>
20    Then you have to list all the <firstterm>Print Servers</firstterm> for which
21    you plan to use <firstterm>print quota</firstterm> facilities.
22  </para>
23 
24  <para>
25    Finally you have to download <application>PyKota</application>'s latest version
26    or buy an official package, from
27    <ulink url="http://www.librelogiciel.com/software/">http://www.librelogiciel.com/software/</ulink>.
28    If you've just bought an official package, then as soon as you've receive it you
29    have to decompress and visit its archive, to do so just type the following commands :
30    <screen>
31jerome@nordine:~$ tar -zxf pykota-1.19_official.tar.gz   
32jerome@nordine:~$ cd pykota-1.19_official
33jerome@nordine:~/pykota-1.19_official$
34    </screen>
35  </para>
36 
37  <para>
38    You can see many files in this directory, the first ones to read are <filename>README</filename>,
39    then <filename>COPYING</filename> and <filename>LICENSE</filename>. They will give you
40    basic installation instructions and explain the licensing terms under which
41    <application>PyKota</application> is distributed. Of course they are also mostly
42    boring to read ! Detailed installation and operating instructions are defined
43    in the <filename>./docs</filename> directory, in the form of <acronym>SGML</acronym>
44    documentation in the <ulink url="http://www.docbook.org">DocBook</ulink> format.
45    You have to compile these files into readable documentation like the <acronym>HTML</acronym>
46    or <acronym>PDF</acronym> formats, or buy an official <application>PyKota</application> package
47    which already contains these compiled forms of the documentation. Of course you already
48    know this because that's what you are currently reading !
49  </para>
50 
51  <para>
52    Now we will see what has to be done on each of the servers we are planning to use.
53    <note>
54      <title>Note</title>
55      <para>
56        Of course, depending on the size of your network, you may very well
57        use the same machine as both a Print Server and a Storage Server.
58        This is especially the case if you've got only one server.
59      </para>
60    </note> 
61  </para>
62 
63  <sect1>
64    <title>Storage Server Installation</title>
65   
66    <para>
67      Depending on <application>PyKota</application>'s version number, different
68      types of storage backends may be supported, so we will see for each one of
69      them how to configure it.
70    </para>
71   
72    <sect2>
73      <title>PostgreSQL</title>
74     
75      <para>
76        <application>PostgreSQL</application> is an <firstterm>Object Relationnal DataBase
77        Management System</firstterm> distributed under a <firstterm>Free Software</firstterm>
78        license from the
79        <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink>
80        web site. It certainely is the free <acronym>RDBMS</acronym> which has the most advanced
81        features, and is widely used all over the world.
82      </para>
83     
84      <para>
85        To configure your Storage Server, you must have PostgreSQL already working.
86        The complete installation of <application>PostgreSQL</application> is not covered by
87        the present manual, please refer to your system's documentation or to
88        <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink> for
89        details.
90      </para>
91     
92      <para>
93        One thing you have to check, though, is that every Print Server on which you
94        want to install the print quota mechanism, must be able to connect to the
95        <application>PostgreSQL</application> server. In the default installation of
96        <application>PostgreSQL</application> this may not be the case for security reasons, except if both
97        servers are in fact the same machine. In any case, it is recommended that you
98        check the <filename>/etc/postgresql/pg_hba.conf</filename> file and modify it if
99        needed. This file is self documented and its modification is straightforward.
100        You also have to make sure that <application>PostgreSQL</application> accepts <acronym>TCP/IP</acronym> connections.
101        To do so you either have to launch it with the <option>-i</option> option or
102        modify the <filename>/etc/postgresql/postgresql.conf</filename> file, which is
103        self documented and easy to modify too. Allowing <acronym>TCP/IP</acronym> connections
104        is not necessary though if your Quota Storage Server and your Print Server are
105        the very same host.
106        <tip>
107          <title>Tip</title>
108          <para>
109            Don't forget to restart <application>PostgreSQL</application> if you modify
110            any of its configuration files, in order for the changes to take effect.
111          </para>
112        </tip> 
113      </para>
114     
115      <para>
116        Be careful, you may be unable to connect from a Print Server to the <application>PostgreSQL</application>
117        server even if the configuration is correct. Sometimes your connections may be blocked by
118        one or more network firewalls along the route from one machine to the other. If this
119        is the case, then the best thing you can do is to ask your <firstterm>Network Administrator</firstterm>
120        to not filter the IP port used by <application>PostgreSQL</application>, which is
121        usually port <literal>5432/tcp</literal>.
122        <note>
123          <title>Note</title>
124          <para>
125            The TCP/IP network port used by PostgreSQL may be different. When in doubt, ask your
126            <firstterm>System Administrator</firstterm> for the correct value.
127          </para>
128        </note> 
129      </para>
130     
131      <para>
132        Now that your <application>PostgreSQL</application> server is up and running, and
133        is waiting for your connections, you have to create the Quota Storage DataBase.
134        To do so, you'll have to feed <application>PostgreSQL</application> with the
135        <filename>pykota-x.xx/initscripts/postgresql/pykota-postgresql.sql</filename> file.
136        This file will create a Quota DataBase administrator in the <application>PostgreSQL</application> system, then create an empty
137        Quota DataBase and set some permissions on it. The Quota DataBase administrator
138        is the <application>PostgreSQL</application>'s user used to manage the Quota database.
139        The Quota DataBase Administrator is not present in the Quota Database
140        itself, he is only defined in <application>PostgreSQL</application> and don't
141        have to exist on any system, nor in the Quota DataBase. His default name
142        is <literal>pykotaadmin</literal>.
143        A Quota Storage read-only user is also created under the name of <literal>pykotauser</literal>.
144        This read-only user is used by <application>PyKota</application> to connect to the
145        Quota Storage when a non-root user launches a pykota command. This prevents normal
146        users from being able to modify their own, or other users', quota information.
147        The database which will be created will be named <literal>pykota</literal> by default.
148        <note>
149          <title>Note</title>
150          <para>
151            You can choose other names if you want, just modify the
152            <filename>initscripts/postgresql/pykota-postgresql.sql</filename> file
153            accordingly, and report your changes into <application>PyKota</application>'s
154            configuration files.
155          </para>
156        </note> 
157      </para>
158     
159      <para>
160        To run this script, you can use the <application>psql</application> frontend to
161        <application>PostgreSQL</application>, but your priviledges must be sufficient
162        to be allowed to create users and databases. You can launch <application>psql</application>
163        as the <literal>postgres</literal> user which is <application>PostgreSQL</application>'s
164        default administrator, and connect to the default database named <literal>template1</literal>.
165        From a command line interpreter (i.e. shell), type the following commands :
166        <screen>
167jerome@nordine:~$ cd pykota-1.19_official/initscripts/postgresql
168jerome@nordine:~/pykota-1.19_official/initscripts$ psql -h localhost -U postgres template1
169Welcome to psql, the PostgreSQL interactive terminal.
170
171Type:  \copyright for distribution terms
172       \h for help with SQL commands
173       \? for help on internal slash commands
174       \g or terminate with semicolon to execute query
175       \q to quit
176
177template1=# \i pykota-postgresql.sql
178            ... a lot of output lines
179pykota=#       
180        </screen>
181      </para>
182     
183      <para>
184        For security reasons, you may want to set passwords in
185        <application>PostgreSQL</application> for the
186        <literal>pykotaadmin</literal> and <literal>pykotauser</literal> users.
187        Otherwise any user able to connect to
188        <application>PostgreSQL</application> on your Quota Storage Server
189        could connect to the quota database, and either see it, or even modify it without problem.
190      </para>
191     
192      <para>
193        To do so, just type the following lines while still being at the <application>psql</application>
194        prompt (replace the password values by your own, and do the same for the <literal>pykotauser</literal> user) :
195        <screen>
196pykota=# ALTER USER pykotaadmin PASSWORD 'somepassword';
197ALTER USER
198pykota=# \q
199jerome@nordine:~/pykota-1.19_official/initscripts/postgresql$
200        </screen>
201      </para>
202     
203      <para>
204        The <literal>\q</literal> command above will quit the <application>psql</application>
205        program and return you to the shell's command line prompt.
206      </para>
207     
208      <para>
209        To improve security further, you could encrypt your database connections, or
210        take any other step as needed. Please refer to <application>PostgreSQL</application>'s
211        documentation for details. Also if <application>PyKota</application>'s configuration
212        file <filename>/etc/pykota/pykotadmin.conf</filename> is readable by anyone with access on your file system,
213        a local user could create some script to modify his own print quota.
214        <warning>
215          <title>Warning</title>
216          <para>
217            Defining passwords may not be sufficient if your database access rule is
218            set to <literal>trust</literal> in the <filename>/etc/postgresql/pg_hba.conf</filename>.
219            Again, please refer to <application>PostgreSQL</application>'s documentation
220            for details. Also, passwords will fly unencrypted over the network by default,
221            so be sure to take any necessary step to secure your database server from
222            unauthorized use. This has nothing to do with <application>PyKota</application>
223            though, it is just a general rule to keep in mind.
224          </para>
225        </warning> 
226      </para>
227     
228      <para>
229        If no error occured, then your Quota DataBase is ready to be used.
230        Now you can let the Quota Storage Server alone, the remaining work
231        will have to be done on each one of the print servers which will
232        use this particular Quota Storage Server.
233        <tip>
234          <title>Tip</title>
235          <para>
236            If an error occured, maybe your PostgreSQL version is too old, or
237            an unexpected problem (like a bug) happened. Please contact us via email so that we
238            can try to solve the problem. Thanks in advance.
239          </para>
240        </tip> 
241      </para>
242     
243    </sect2> 
244   
245    <sect2>
246      <title>OpenLDAP</title>
247     
248      <para>
249        From version 1.09 on, <application>OpenLDAP</application> can be used as a Quota Storage Backend.
250        Some other LDAP servers can be used, but this is currently untested in production.
251      </para>
252     
253      <para>
254        <application>OpenLDAP</application> is a Lightweight Directory Access Protocol server
255        implementation published as Free Software.
256        You can download it from <ulink url="http://www.openldap.org">http://www.openldap.org</ulink>.
257      </para>
258     
259      <para>
260        To use <application>OpenLDAP</application> as your Quota Storage Backend, you have to copy the
261        <filename>pykota/initscripts/ldap/pykota.schema</filename> in <application>OpenLDAP</application>'s
262        schemas directory.
263        Under Debian GNU/Linux, this is something like :
264        <screen>       
265$ cp pykota.schema /etc/ldap/schema
266        </screen>
267     </para>
268     <para>   
269       Then edit <filename>/etc/ldap/slapd.conf</filename> and add a line to   
270       include the PyKota schema. You should have something
271       like :
272       <screen>   
273# Schema and objectClass definitions
274include         /etc/ldap/schema/core.schema
275include         /etc/ldap/schema/cosine.schema
276include         /etc/ldap/schema/nis.schema
277include         /etc/ldap/schema/inetorgperson.schema
278include         /etc/ldap/schema/pykota.schema
279        </screen>       
280      </para>
281     
282      <para>
283        While this is not mandatory, it is recommended that you setup
284        some indexes for some often accessed PyKota attributes.
285        Here are the minimal indexes
286        lines you may want to put in <filename>slapd.conf</filename> :
287        <screen>
288# Indexes for PyKota
289index pykotaUserName pres,eq,sub
290index pykotaGroupName pres,eq,sub
291index pykotaPrinterName pres,eq,sub
292index pykotaLastJobIdent eq
293        </screen>
294      </para>
295     
296      <para>
297        Now you must ensure that the DNs you'll use to bind to   
298        your OpenLDAP server don't have search queries size limits,
299        which gives for example (OpenLDAP 2.1.x or above) :
300       
301<screen>        
302# No Limits for PyKota's administrator and read-only user
303limits dn="cn=RWadmin,dc=example,dc=com" size.soft=-1 size.hard=soft
304limits dn="cn=ROadmin,dc=example,dc=com" size.soft=-1 size.hard=soft
305</screen>       
306
307        Where RWadmin and ROadmin are the usernames used to bind to your
308        OpenLDAP server within PyKota, respectively in ReadWrite mode
309        (as set in pykotadmin.conf) and in ReadOnly mode (as set in pykota.conf).
310      </para>
311     
312      <para>
313        Finally, restart the <application>OpenLDAP</application> server :   
314        <screen>   
315$ /etc/init.d/slapd restart
316        </screen>
317      </para>
318     
319      <para>
320        With an <acronym>LDAP</acronym> backend, PyKota will need some branches
321        in your <acronym>LDAP</acronym> directory to put its own datas.
322        You can configure PyKota to either attach its datas to your existing
323        users and groups, or to put them in their own <literal>ou</literal>.
324        But some <literal>ou</literal>s dedicated to PyKota are needed in any case,
325        so the best bet may be to put all PyKota's datas below an <literal>ou=PyKota</literal>
326        branch. While this will separate these datas from your existing users and groups
327        entries, this may ease the maintainance.
328      </para>
329     
330      <para>
331        PyKota needs at least an <literal>ou</literal> for printers, for users quotas, for
332        groups quotas, for print jobs, and for pointers to the last job of each printer.
333        In the future, this last <literal>ou</literal> may disappear as its content
334        will probably be attached to each printer.
335      </para>
336     
337      <para>
338        Actually PyKota doesn't create these <literal>ou</literal>s for you, because it's
339        difficult to guess what is the best configuration for you. So you have to
340        create them by yourself, either directly with a text editor and the
341        <application>ldapadd</application> command, or with some specialized tool
342        like <application>gq</application>.
343      </para>
344     
345      <para>
346        Once you have chosen and created your directory structure, you have to modify PyKota's configuration files <filename>/etc/pykota/pykota.conf</filename>
347        and <filename>/etc/pykota/pykotadmin.conf</filename>
348        to set some LDAP specific options and binding <literal>dn</literal>s. The easiest is
349        probably to give a look at
350        <filename>pykota/conf/pykota.conf.sample</filename> to see all the options that are
351        needed. Adapt the values to your own configuration, and finally initialize your
352        Quota Storage with the help of the <application>edpykota</application> command.
353      </para>
354    </sect2> 
355   
356    <sect2>
357      <title>MySQL</title>
358     
359      <para>
360        A <application>MySQL</application> Storage Backend is planned, but it actually
361        doesn't exist.
362      </para>
363    </sect2> 
364   
365    <sect2>
366      <title>Berkeley DB</title>
367     
368      <para>
369        A <application>Berkeley DB</application> Storage Backend is planned, but it actually
370        doesn't exist. It seems that remote storage won't be possible with such a backend,
371        so in other terms this means that you will have a different quota database on
372        each print server. This may still prove to be useful for small configurations.
373      </para>
374    </sect2> 
375  </sect1> 
376 
377  <sect1>
378    <title>Print Server Installation</title>
379   
380    <para>
381      For each Print Server on which you plan to implement the print quota
382      mechanism, you have, of course, to have an already working printing environment.
383      Currently <application>PyKota</application> works with either
384      <ulink url="http://www.cups.org"><application>CUPS</application></ulink>
385      or <ulink url="http://lprng.sourceforge.net"><application>LPRng</application></ulink>,
386      but more printing systems may be added in the future.
387    </para>
388   
389    <para>
390      Here's the list of software you have to install on each Print Server, version numbers
391      are given as an indication of which was successfully tested, but older versions may
392      work too.
393      <itemizedlist>
394        <listitem>
395          <para>
396            <application>CUPS</application> version 1.1 or above, or <application>LPRng</application>
397            version 3.8.27 or above (it probably works with older versions but this is untested).
398            You can download them from <ulink url="http://www.cups.org">http://www.cups.org</ulink>
399            or <ulink url="http://lprng.sourceforge.net">http://lprng.sourceforge.net</ulink>
400          </para>
401        </listitem> 
402        <listitem>
403          <para>
404            Python version 2.1 or above.
405            You can download it from <ulink url="http://www.python.org">http://www.python.org</ulink>.
406          </para>
407        </listitem> 
408        <listitem>
409          <para>
410            Quota Storage client libraries, depending on your Quota Storage Backend :
411            <itemizedlist>
412              <listitem>
413                <para>
414                  PostgreSQL backend :
415                  <itemizedlist>
416                    <listitem>
417                      <para>
418                        <application>PostgreSQL</application> client libraries. They must match the <application>PostgreSQL</application>
419                        version used on your Quota Storage Server.
420                      </para>
421                    </listitem> 
422                    <listitem>
423                      <para>
424                        The <application>PygreSQL</application> python module.
425                        It must have been compiled against the same
426                        <application>PostgreSQL</application> client libraries.
427                        <application>PygreSQL</application> is normally included in
428                        <application>PostgreSQL</application>, but you may want to
429                        download it from <ulink url="http://www.pygresql.org">http://www.pygresql.org</ulink>
430                      </para>
431                    </listitem> 
432                  </itemizedlist> 
433                </para>
434              </listitem> 
435              <listitem>
436                <para>
437                  OpenLDAP backend :
438                  <itemizedlist>
439                    <listitem>
440                      <para>
441                        <application>OpenLDAP</application> client libraries. They must match
442                        the <application>OpenLDAP</application> version used on your Quota Storage Server.
443                      </para>
444                    </listitem> 
445                    <listitem>
446                      <para>
447                        The <application>Python-LDAP</application> python module.
448                        It must have been compiled against the same
449                        <application>OpenLDAP</application> client libraries.
450                        You may download this module from <ulink url="http://python-ldap.sourceforge.net">http://python-ldap.sourceforge.net</ulink>
451                      </para>
452                    </listitem> 
453                  </itemizedlist>
454                </para>
455              </listitem>
456              <listitem>
457                <para>
458                  MySQL backend : TODO
459                </para>
460              </listitem>
461              <listitem>
462                <para>
463                  Berkeley DB backend : TODO
464                </para>
465              </listitem>
466            </itemizedlist> 
467          </para>
468        </listitem> 
469        <listitem>
470          <para>
471            <application>ucd-snmp</application> or <application>net-snmp</application> tools, version 4.2.5 or above. You only need
472            the <application>snmpget</application> command.
473            You can download this software from <ulink url="http://www.sourceforge.net/projects/net-snmp/">http://www.sourceforge.net/projects/net-snmp/</ulink>.
474            You only need this if you plan to query your printers for their internal page counter via SNMP.
475          </para>
476        </listitem> 
477        <listitem>
478          <para>
479            <application>netatalk</application> version 1.6.1 or above. You only need
480            the <application>pap</application> command.
481            You can download this software from <ulink url="http://netatalk.sourceforge.net/">http://netatalk.sourceforge.net/</ulink>.
482            You only need this if you plan to query your printers for their internal page counter via AppleTalk.
483          </para>
484        </listitem> 
485        <listitem>
486          <para>
487            eGenix' mxDateTime Python module version 2.0.3 or above. It must match your default Python version.
488            You can download it from <ulink url="http://www.egenix.com">http://www.egenix.com</ulink>.
489          </para>
490        </listitem> 
491      </itemizedlist> 
492    </para>
493   
494    <para>
495      Instead of downloading all these programs' sources and compiling them, which really
496      is a boring task considering that many software are needed, you may prefer to look
497      into the packages included with your GNU/Linux distribution of choice (if you use
498      this operating system of course). Most, if not all, GNU/Linux distributions include
499      all the software mentionned above, in the form of packages which are easier to
500      install than sources tarballs. This is probably the same for the many *BSD
501      distributions.
502    </para>
503   
504    <para>
505      Once all these software are installed, installing PyKota itself is a breeze.
506      PyKota being written entirely in the Python language, which is interpreted,
507      there's no need to compile anything. You just have to execute the installation
508      script :
509      <screen>     
510$ python setup.py install     
511      </screen>
512    </para>
513   
514    <para>
515      The installation script will try to do a safe upgrade if needed.
516      Also it will check if some needed software is missing or unavailable
517      and will tell you so. This may be the case for example if you
518      installed several versions of the Python language, and some Python
519      modules are only available for one of them which is not the one you
520      are actually running.
521    </para>
522   
523    <para>
524      On your first installation, the setup script will automatically create
525      the <filename>/etc/pykota</filename> directory and put the sample
526      configuration files <filename>conf/pykota.conf.sample</filename> and
527      <filename>conf/pykotadmin.conf.sample</filename> there, after having
528      renamed them respectively <filename>pykota.conf</filename> and
529      <filename>pykotadmin.conf</filename>. Once copied there, you just
530      have to modify these files to adapt them to your own setup.
531      These files are heavily commented, so you should have no problem.
532      Also their format is quite common, because it's the one used by
533      <application>Samba</application> for example, or by <literal>.ini</literal>
534      files under <application>MS-Windows</application>, so you may already
535      be familiar with this syntax.
536      In a future release, this documentation will include the complete
537      reference for all configuration fields available. Keep in mind that
538      PyKota can be really heavily customized, and can delegate some work
539      to any external command of your choice.
540    </para>
541   
542    <para>
543      On later installations, the setup script won't modify any of your
544      configuration files. However it will try to explain what have changed
545      and encourages you to manually do the modifications which are needed.
546      Please create a backup of the <filename>/etc/pykota</filename>
547      directory before modifying anything.
548      Under some circumstances, PyKota's setup script may refuse to install PyKota
549      until you have modified your configuration. Just do it and restart
550      the installation script as described above.
551    </para>
552   
553    <para>
554      PyKota features some interesting possibilities which allow you to
555      define options either globally so that they apply to all printers,
556      or on a per printer basis. Please see the sample configuration files
557      to see what I mean. In the simplest form, only a global section is
558      needed. In more complex configurations, you will have to create
559      one section per printer. Each section in the configuration files
560      begins with a name between square brackets <literal>[]</literal>.
561      The name to use to define a particular printer section is the name
562      of the print queue on which you want to set quotas.
563    </para>
564   
565    <para>
566      After you have modified PyKota's configuration files, you have to
567      double check their permissions, otherwise your installation may be
568      insecure or may not work at all.
569      The main configuration file <filename>/etc/pykota/pykota.conf</filename>
570      doesn't contain much sensitive information, so it can be made
571      readable by anyone. If normal users read this file, at best they
572      will learn the username and optional password of the read-only
573      database user, so they won't be allowed to do any harm.
574      On the other hand, the <filename>/etc/pykota/pykotadmin.conf</filename>
575      file contains the read-write user's identity and password. You must then
576      ensure that no normal user can read this file. It should only be readable
577      by the <literal>root</literal> user, which is always the case, by
578      the user your printing system is running as, and optionally by the print administrators,
579      who are usually members of the <literal>lpadmin</literal> group. Under my Debian GNU/Linux system,
580      with CUPS, here's how to do to give the correct permissions :
581      <screen>
582$ chown root.root /etc/pykota/pykota.conf     
583$ chmod 644 /etc/pykota/pykota.conf     
584$ chown lp.lpadmin /etc/pykota/pykotadmin.conf     
585$ chmod 640 /etc/pykota/pykotadmin.conf     
586      </screen>
587    </para>
588   
589    <para>
590      Now depending on your printing system, the configuration to do is particular.
591      We will now see how to plug PyKota into your printing system.
592    </para>
593   
594    <sect2>
595      <title>With CUPS</title>
596     
597      <para>
598        From version 1.16alpha7 on, configuring PyKota to integrate
599        within CUPS is more than easy.
600      </para>
601     
602      <para>
603        You just have to create a symbolic link to the <filename>cupspykota</filename>
604        command in CUPS' backend directory :
605        <screen>       
606$ cd /usr/lib/cups/backend       
607$ ln -s /usr/share/pykota/cupspykota cupspykota
608        </screen>
609      </para>
610     
611      <para>
612        You have to restart <application>CUPS</application> for this modification to
613        take effect :
614        <screen>
615$ /etc/init.d/cupsys restart       
616        </screen>
617      </para>
618     
619      <para>
620        Now point your web browser to CUPS configuration page, usually at
621        <ulink url="http://localhost:631">http://localhost:631</ulink> on
622        your print server.
623      </para>
624     
625      <para>
626        Then when creating new printers or reconfiguring existing ones, just
627        choose devices which are <literal>PyKota managed</literal>
628        <footnote>
629          <para>
630            Debian 3.0 Woody is known to have problems : CUPS 1.1.14 doesn't automatically
631            detect <literal>PyKota managed</literal> devices. So you have to manually
632            modify CUPS' <filename>printers.conf</filename> file as explained in
633            PyKota's toplevel <filename>README</filename> file.
634          </para>
635        </footnote>
636        instead of
637        normal devices. You've got one <literal>PyKota managed</literal> device
638        for each regular device available from CUPS, so just choose the appropriate
639        one.
640      </para>
641     
642      <para>
643        Repeat the above procedure for each print queue on which you want to use
644        PyKota. That's all !
645      </para>
646     
647      <sect3>
648        <title>Troubleshooting</title>
649        <para>
650          In case of problem, the simplest way to solve it is currently
651          to ask on PyKota's mailing list, describing the symptoms, as
652          well as the hardware and software you use.
653          In a future release of this document, a section dedicated to
654          Frequently Asked Questions will be included.
655        </para>
656       
657        <para>
658          You can now also ask us questions on IRC :
659          <screen>
660/server irc.freenode.net         
661/join #pykota
662          </screen>
663        </para> 
664      </sect3> 
665     
666    </sect2>
667   
668    <sect2>
669      <title>With LPRng</title>
670     
671      <para>
672        For each printer on which you want to use <application>PyKota</application>, just modify the printer's
673        entry in <filename>/etc/printcap</filename> : you have to add
674        the three following lines :
675       
676<screen>        
677  :ac=true:\
678  :as=/usr/share/pykota/lprngpykota:\
679  :ae=/usr/share/pykota/lprngpykota:\
680</screen>         
681
682        This will tell <application>LPRng</application> to activate accounting, and use the <filename>lprngpykota</filename>
683        accounting filter both at the start and at the end of printing.
684      </para>
685     
686     
687      <para>
688        Repeat the above procedure for each print queue on which you want to use
689        PyKota. That's all !
690      </para>
691     
692      <para>
693        When all modifications are done, just save the <filename>/etc/printcap</filename> file
694        and restart <application>LPRng</application> for the changes to take effect :
695        <screen>
696$ /etc/init.d/lprng restart       
697        </screen>
698      </para>
699     
700      <sect3>
701        <title>Troubleshooting</title>
702        <para>
703          In case of problem, the simplest way to solve it is currently
704          to ask on PyKota's mailing list, describing the symptoms, as
705          well as the hardware and software you use.
706          In a future release of this document, a section dedicated to
707          Frequently Asked Questions will be included.
708        </para>
709       
710        <para>
711          You can now also ask us questions on IRC :
712          <screen>
713/server irc.freenode.net         
714/join #pykota
715          </screen>
716        </para>
717      </sect3> 
718     
719    </sect2>
720   
721  </sect1> 
722</chapter>
723
724<!--
725
726$Log$
727Revision 1.26  2004/07/16 12:22:46  jalet
728LPRng support early version
729
730Revision 1.25  2004/05/25 09:49:53  jalet
731The old pykota filter has been removed. LPRng support disabled for now.
732
733Revision 1.24  2004/02/13 08:46:32  jalet
734Fixed documentation wrt installation paths changed
735
736Revision 1.23  2004/01/30 17:13:56  jalet
7371.17
738
739Revision 1.22  2003/11/15 14:59:53  jalet
740Documentation wrt the new CUPS backend.
741
742Revision 1.21  2003/10/14 20:26:53  jalet
743Better documentation.
7441.15 is out !
745
746Revision 1.20  2003/07/25 13:20:32  jalet
747Typo which wasn't
748
749Revision 1.19  2003/07/25 13:18:44  jalet
750Typos
751
752Revision 1.18  2003/07/25 10:41:29  jalet
753Better documentation.
754pykotme now displays the current user's account balance.
755Some test changed in ldap module.
756
757Revision 1.17  2003/06/30 21:44:18  jalet
7581.09 is out !
759
760Revision 1.16  2003/06/24 21:37:05  jalet
761Minor changes
762
763Revision 1.15  2003/06/10 16:37:54  jalet
764Deletion of the second user which is not needed anymore.
765Added a debug configuration field in /etc/pykota.conf
766All queries can now be sent to the logger in debug mode, this will
767greatly help improve performance when time for this will come.
768
769Revision 1.14  2003/06/05 07:12:29  jalet
770Reorganization of directories
771
772Revision 1.13  2003/04/24 21:09:47  jalet
773Documentation slightly improved.
774
775Revision 1.12  2003/04/17 21:33:16  jalet
776Version 1.03 is out.
777
778Revision 1.11  2003/03/25 09:32:06  jalet
779Improved documentation.
780
781Revision 1.10  2003/03/23 17:59:56  jalet
782Clarify a point.
783
784Revision 1.9  2003/03/23 17:57:20  jalet
785Deleted a repetition.
786
787Revision 1.8  2003/03/22 15:34:50  jalet
788More complete installation documentation.
789
790Revision 1.7  2003/03/22 14:26:45  jalet
791Download instructions added.
792
793Revision 1.6  2003/03/22 14:06:02  jalet
794Quota Storage Server installation is OK for PostgreSQL.
795
796Revision 1.5  2003/03/22 13:11:33  jalet
797The port on which the Quota Storage Sever is listening can now
798be set in the configuration file (see sample).
799Better error handling if PygreSQL is not installed.
800Improved documentation.
801Version number changed to 1.02alpha
802
803Revision 1.4  2003/03/22 07:20:38  jalet
804More information wrt PostgreSQL tcp/ip configuration.
805
806Revision 1.3  2003/03/18 22:18:25  jalet
807The documentation will only be a sequence of chapters in a single part, not
808multiple parts each including chapters.
809
810Revision 1.2  2003/03/18 22:10:54  jalet
811Documentation improvements.
812
813Revision 1.1  2003/02/08 00:03:35  jalet
814Documentation skeleton added
815
816
817-->
Note: See TracBrowser for help on using the browser.