summaryrefslogtreecommitdiff
path: root/docs/api/spec/pk-introduction.xml
blob: d67838eb9c3d041ea818bb53421ee928bdbb2f07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<chapter id="introduction">
  <title>PackageKit Introduction</title>

  <sect1 id="introduction-description">
    <title>Overall Description</title>

    <para>
      PackageKit is a small open source system that abstracts out common package
      management tasks such as:
    </para>
    <itemizedlist>
      <listitem>
        <para>
          Checking for updates and installing them in the background.
        </para>
      </listitem>
      <listitem>
        <para>
          Automatically installing new or add-on software.
        </para>
      </listitem>
    </itemizedlist>

    <para>
      PackageKit has a modular design with an asynchronous API for client programs,
      a flexible queuing module, and run-time selectable backends.
    </para>

    <mediaobject id="pk-structure">
      <imageobject>
        <imagedata format="PNG" fileref="pk-structure.png" align="center"/>
      </imageobject>
    </mediaobject>
  </sect1>

  <sect1 id="introduction-backends">
    <title>Backends</title>
    <para>
      A backend is just a compiled <literal>.so</literal> object that is
      loaded at run-time and provides an interface to the underlying package
      commands.
      A backend converts an asynchronous request into either a new thread
      in the same process, executes external "glue" files that
      can be written in any language, or uses DBUS to signal a
      daemon process to handle the request.
    </para>
    <para>
      Backends do not have to support all of the commands supported
      by PackageKit. Each backend advertises the commands and
      options it supports, and the frontend will only show UI
      elements for those commands.
      Please see the <literal>html/pk-faq.html</literal> file for the current
      status of the existing backends.
      Backed maintainers, please keep this file updated.
    </para>
  </sect1>

  <sect1 id="config-main">
    <title>Daemon Config Options</title>
    <para>
      The config file <literal>/etc/PackageKit/PackageKit.conf</literal> allows to the
      administrator to change system daemon options.
      In normal use this file does not have to be changed, but it may be
      useful to people debugging the daemon or developing backends.
    </para>
    <para>
      The options are:
    </para>
    <sect2 id="config-main-logging">
      <title>TransactionLogging</title>
      <para>
        This logs all transactions to <literal>/var/log/PackageKit</literal> so old
        daemon debugging output can be observed.
      </para>
    </sect2>
    <sect2 id="config-main-shutdown-timeout">
      <title>ShutdownTimeout</title>
      <para>
        This is the time that the daemon waits when idle before shutting down.
        A smaller number will result in slower response times when running
        many transactions in a small amount of time.
        A longer timeout will lock the underlying packaging backend for longer,
        although the daemon will start and stop less often.
      </para>
    </sect2>
    <sect2 id="config-main-use-syslog">
      <title>UseSyslog</title>
      <para>
        Syslog is used to audit and log actions wherever its available.
      </para>
    </sect2>
    <sect2 id="config-main-default-backend">
      <title>DefaultBackend</title>
      <para>
        The default backend that the daemon should use.
        The default is set at compile time to the
        <literal>--default-backend=</literal> configure setting.
      </para>
    </sect2>
  </sect1>

</chapter>