mirror of
https://github.com/Zeckmathederg/glfs.git
synced 2025-01-31 20:42:34 +08:00
c4ec7536c3
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@9874 af4574ff-66df-0310-9fd7-8a98e5e911e0
460 lines
17 KiB
XML
460 lines
17 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
<!ENTITY % general-entities SYSTEM "../../general.ent">
|
|
%general-entities;
|
|
|
|
<!ENTITY gdm-download-http "&gnome-download-http;/gdm/&gnome-version;/gdm-&gdm-version;.tar.xz">
|
|
<!ENTITY gdm-download-ftp "&gnome-download-ftp;/gdm/&gnome-version;/gdm-&gdm-version;.tar.xz">
|
|
<!ENTITY gdm-md5sum "df3f38061066f5e0816676b4eef7854a">
|
|
<!ENTITY gdm-size "1.6 MB">
|
|
<!ENTITY gdm-buildsize "59 MB">
|
|
<!ENTITY gdm-time "0.7 SBU">
|
|
]>
|
|
|
|
<sect1 id="gdm" xreflabel="GDM-&gdm-version;">
|
|
<?dbhtml filename="gdm.html"?>
|
|
|
|
<sect1info>
|
|
<othername>$LastChangedBy$</othername>
|
|
<date>$Date$</date>
|
|
</sect1info>
|
|
|
|
<title>GDM-&gdm-version;</title>
|
|
|
|
<indexterm zone="gdm">
|
|
<primary sortas="a-GDM">GDM</primary>
|
|
</indexterm>
|
|
|
|
<sect2 role="package">
|
|
<title>Introduction to GDM</title>
|
|
|
|
<para>The <application>GDM</application> package contains
|
|
<application>GNOME</application>'s Display Manager daemon. This is
|
|
useful for allowing configurable graphical logins.</para>
|
|
|
|
&lfs70_checked;
|
|
|
|
<bridgehead renderas="sect3">Package Information</bridgehead>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>Download (HTTP): <ulink url="&gdm-download-http;"/></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download (FTP): <ulink url="&gdm-download-ftp;"/></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download MD5 sum: &gdm-md5sum;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download size: &gdm-size;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Estimated disk space required: &gdm-buildsize;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Estimated build time: &gdm-time;</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<!--<bridgehead renderas="sect3">Additional Downloads</bridgehead>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>Required patch: <ulink
|
|
url="&patch-root;/gdm-&gdm-version;-fixes-1.patch"/></para>
|
|
</listitem>
|
|
</itemizedlist>-->
|
|
|
|
<bridgehead renderas="sect3">GDM Dependencies</bridgehead>
|
|
|
|
<bridgehead renderas="sect4">Required</bridgehead>
|
|
<para role="required"><xref linkend="accountsservice"/>,
|
|
<xref linkend="gnome-panel"/>,
|
|
<xref linkend="linux-pam"/>, and
|
|
<xref linkend="xorg7-lib"/></para>
|
|
|
|
<bridgehead renderas="sect4">Recommended</bridgehead>
|
|
<para role="recommended"><xref linkend="consolekit"/>
|
|
(Required for Shutdown/Restart functionality) and
|
|
<xref linkend="polkit-gnome"/></para>
|
|
|
|
<bridgehead renderas="sect4">Optional</bridgehead>
|
|
<para role="optional">
|
|
<xref linkend='check'/> (required to run the testsuite),
|
|
<xref linkend="upower"/>,
|
|
<xref linkend="libxklavier"/>, and
|
|
<xref linkend="tcpwrappers"/></para>
|
|
|
|
<para condition="html" role="usernotes">User Notes:
|
|
<ulink url="&blfs-wiki;/gdm"/></para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="installation">
|
|
<title>Installation of GDM</title>
|
|
|
|
<para>It is recommended to have a dedicated user and group to take
|
|
control of the <command>gdm-binary</command> daemon after it is
|
|
started. Issue the following commands as the
|
|
<systemitem class="username">root</systemitem> user:</para>
|
|
|
|
<screen role='root'><userinput>groupadd -fg 21 gdm &&
|
|
useradd -c "GDM Daemon Owner" -d /var/lib/gdm -u 21 \
|
|
-g gdm -s /bin/false gdm || [ $? == 9 ]</userinput></screen>
|
|
|
|
<para>Install <application>GDM</application> by running
|
|
the following commands as an unprivileged user:</para>
|
|
|
|
<screen><userinput><!--patch -Np1 -i ../gdm-&gdm-version;-fixes-1.patch &&-->
|
|
./configure --prefix=$GNOME_PREFIX \
|
|
--sysconfdir=$GNOME_SYSCONFDIR \
|
|
--libexecdir=$GNOME_PREFIX/lib/gdm \
|
|
--localstatedir=/var \
|
|
--with-pam-prefix=/etc \
|
|
--enable-static=no &&
|
|
make</userinput></screen>
|
|
|
|
<para>If you have installed <xref linkend="check"/> and you wish to run
|
|
the testsuite, issue: <command>make check</command>.</para>
|
|
|
|
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
|
|
|
|
<screen role='root'><userinput>make install &&
|
|
ln -fsv $GNOME_PREFIX/lib/gnome-settings-daemon/gnome-settings-daemon \
|
|
$GNOME_PREFIX/lib/gdm &&
|
|
ln -fsv /usr/lib/ConsoleKit/ck-get-x11-display-device \
|
|
$GNOME_PREFIX/lib/gdm &&
|
|
ln -fsv /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 \
|
|
$GNOME_PREFIX/lib/gdm &&
|
|
ln -fsv /usr/lib/gnome-session/gnome-session-check-accelerated \
|
|
$GNOME_PREFIX/lib/gdm
|
|
</userinput></screen>
|
|
|
|
<para>If your <envar>GNOME_SYSCONFDIR</envar> is <emphasis>not</emphasis>
|
|
simply <filename class="directory">/etc</filename> then you need to create
|
|
some more symlinks so that the menus and some <literal>.desktop</literal>
|
|
files (in particular <filename>gnome-settings-daemon.desktop</filename>) will
|
|
be found, because <envar>XDG_CONFIG_DIRS</envar> is not respected when
|
|
<command>gdm</command> invokes <command>gnome-session</command>. Run the
|
|
following commands, still as the <systemitem class="username">root</systemitem>
|
|
user:</para>
|
|
|
|
<screen role='root'><userinput>ln -sfv $GNOME_SYSCONFDIR/xdg/menus /etc/xdg &&
|
|
pushd $GNOME_SYSCONFDIR/xdg/autostart &&
|
|
FILES=`ls` &&
|
|
popd &&
|
|
for F in $FILES; do
|
|
ln -sfv $GNOME_SYSCONFDIR/xdg/autostart/$F /etc/xdg/autostart
|
|
done
|
|
</userinput></screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="commands">
|
|
<title>Command Explanations</title>
|
|
|
|
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
href="../../xincludes/gnome-prefix.xml"/>
|
|
|
|
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
href="../../xincludes/gnome-sysconfdir.xml"/>
|
|
|
|
<para><parameter>--libexecdir=$GNOME_PREFIX/lib/gdm</parameter>: This
|
|
parameter is used so that the <application>GDM</application> internal
|
|
support programs are installed in the preferred location of <filename
|
|
class='directory'>$GNOME_PREFIX/lib/gdm</filename> instead of <filename
|
|
class='directory'>$GNOME_PREFIX/libexec</filename>.</para>
|
|
|
|
<para><parameter>--localstatedir=/var</parameter>: This command
|
|
puts files in <filename class="directory">/var</filename> instead of
|
|
<filename class="directory">$GNOME_PREFIX/var</filename>.</para>
|
|
|
|
<para><parameter>--with-pam-prefix=/etc</parameter>: This command puts
|
|
<application>PAM</application> configuration files in
|
|
<filename class="directory">/etc/pam.d</filename> instead of
|
|
<filename class="directory">$GNOME_SYSCONFDIR</filename>.</para>
|
|
|
|
<para><parameter>--enable-static=no</parameter>: This switch prevents the static
|
|
libraries being installed.</para>
|
|
|
|
<para><parameter>ln -fsv $GNOME_PREFIX/lib/gnome-settings-daemon/...</parameter>:
|
|
these three symlinks allow the shutdown/restart functions in
|
|
<application>gdm</application> to work.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="configuration">
|
|
<title>Configuring GDM</title>
|
|
|
|
<sect3 id="gdm-config">
|
|
<title>Config Files</title>
|
|
|
|
<para><filename>$GNOME_SYSCONFDIR/gdm/custom.conf</filename></para>
|
|
|
|
<indexterm zone="gdm gdm-config">
|
|
<primary sortas="e-etc-gnome-&gnome-version;&gnome-minor-version;gdm-custom.conf">
|
|
$GNOME_SYSCONFDIR/gdm/custom.conf</primary>
|
|
</indexterm>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Configuration Information</title>
|
|
|
|
<para>The GDM daemon is configured using the
|
|
<filename>$GNOME_SYSCONFDIR/gdm/custom.conf</filename> file.
|
|
Default values are stored in GConf in the
|
|
<filename>gdm.schemas</filename> file. It is recommended that end-users
|
|
modify the <filename>$GNOME_SYSCONFDIR/gdm/custom.conf</filename> file
|
|
because the schemas file may be overwritten when the user updates their
|
|
system to have a newer version of GDM.</para>
|
|
|
|
<para>The <application>GDM</application> <application>PAM</application>
|
|
configuration files contain modules not present in a BLFS installation.
|
|
Issue the following
|
|
commands as the <systemitem class="username">root</systemitem> user to
|
|
replace those files with files containing correctly specified
|
|
modules:</para>
|
|
|
|
<screen role="root"><userinput>cat > /etc/pam.d/gdm << "EOF"
|
|
<literal>auth required pam_env.so
|
|
auth required pam_unix.so
|
|
account required pam_nologin.so
|
|
account required pam_unix.so
|
|
password required pam_unix.so
|
|
session optional pam_keyinit.so force revoke
|
|
session required pam_unix.so
|
|
session required pam_loginuid.so
|
|
session optional pam_console.so</literal>
|
|
|
|
EOF
|
|
chmod -v 644 /etc/pam.d/gdm
|
|
|
|
cat > /etc/pam.d/gdm-autologin << "EOF"
|
|
<literal>auth required pam_env.so
|
|
auth required pam_permit.so
|
|
account required pam_nologin.so
|
|
account required pam_unix.so
|
|
password required pam_unix.so
|
|
session optional pam_keyinit.so force revoke
|
|
session required pam_unix.so
|
|
session required pam_loginuid.so
|
|
session optional pam_console.so</literal>
|
|
|
|
EOF
|
|
chmod -v 644 /etc/pam.d/gdm-autologin
|
|
|
|
cat > /etc/pam.d/gdm-welcome << "EOF"
|
|
<literal>auth required pam_env.so
|
|
auth required pam_permit.so
|
|
account required pam_nologin.so
|
|
account required pam_unix.so
|
|
password required pam_unix.so
|
|
session required pam_loginuid.so
|
|
session optional pam_keyinit.so force revoke
|
|
session required pam_unix.so</literal>
|
|
|
|
EOF
|
|
chmod -v 644 /etc/pam.d/gdm-welcome
|
|
</userinput></screen>
|
|
|
|
<indexterm zone="gdm gdm-config">
|
|
<primary sortas="e-etc-pam.d-gdm">/etc/pam.d/gdm</primary>
|
|
</indexterm>
|
|
<indexterm zone="gdm gdm-config">
|
|
<primary
|
|
sortas="e-etc-pam.d-gdm-autologin">/etc/pam.d/gdm-autologin</primary>
|
|
</indexterm>
|
|
|
|
<para id="gdm-config-dbus">The shipped <filename>gnome.desktop</filename>
|
|
file does not start the session <application>D-BUS</application> daemon, and
|
|
as a result not all the files required by a <application>GNOME</application>
|
|
window manager will be found. You can create a new
|
|
Xsession file using the following command as the root user.</para>
|
|
|
|
<screen role="root"><userinput>cat > $GNOME_PREFIX/share/xsessions/gnome-dbus.desktop << "EOF"
|
|
<literal>[Desktop Entry]
|
|
Encoding=UTF-8
|
|
Name=GNOME with D-BUS
|
|
Comment=GNOME Desktop with D-BUS support
|
|
Exec=dbus-launch --exit-with-session gnome-session
|
|
TryExec=/usr/bin/dbus-launch
|
|
Icon=
|
|
Type=Application</literal>
|
|
|
|
EOF
|
|
chmod -v 644 $GNOME_PREFIX/share/xsessions/gnome-dbus.desktop</userinput></screen>
|
|
|
|
<para>Choose this session using the session selection dialog on the
|
|
display manager login screen. You also have the opportunity to make this
|
|
your default session.</para>
|
|
|
|
<para>After you have compared the results from using these two different
|
|
files, and particularly if the translations in the shipped file are useful
|
|
to you, you can edit the <literal>Exec</literal> and <literal>TryExec</literal>
|
|
commands in the provided <filename>gnome.desktop</filename> file. Alternatively,
|
|
you can delete it if you find it useless.</para>
|
|
|
|
<note>
|
|
<para>You may use the <filename class='extension'>.desktop</filename>
|
|
file created above as an example to create additional
|
|
<filename class='extension'>.desktop</filename> files and add any other
|
|
desired items to the <application>GDM</application> display manager session
|
|
selection menu.</para>
|
|
</note>
|
|
|
|
<important>
|
|
<para>If the system-wide <application>D-BUS</application> daemon was
|
|
running during the installation of <application>gdm</application>,
|
|
ensure you stop and restart the <application>D-BUS</application>
|
|
daemon before attempting to start <command>gdm</command>.</para>
|
|
</important>
|
|
|
|
<para><command>gdm</command> can be tested by executing it as the
|
|
<systemitem class="username">root</systemitem> user. If you wish to stop
|
|
it you will need to go to a different tty and then kill it.</para>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="gdm-init">
|
|
<title>Boot Script</title>
|
|
|
|
<para>To start a graphical login when the system is booted, install the
|
|
<filename>/etc/rc.d/init.d/gdm</filename> init script included in the
|
|
<xref linkend="bootscripts"/> package. If your
|
|
<envar>GNOME_PREFIX</envar> environment variable is anything other than
|
|
<filename class='directory'>/usr</filename> or <filename
|
|
class='directory'>/opt/gnome-&gnome-version;&gnome-minor-version;</filename>,
|
|
you will need to modify the <envar>PATH</envar> statement in the script
|
|
to include the path where you have <application>GNOME</application>
|
|
installed.</para>
|
|
|
|
<indexterm zone="gdm gdm-init">
|
|
<primary sortas="f-gdm">gdm</primary>
|
|
</indexterm>
|
|
|
|
<screen role="root"><userinput>make install-gdm</userinput></screen>
|
|
|
|
<para>Now edit <filename>/etc/inittab</filename> with the following
|
|
commands.</para>
|
|
|
|
<screen role="root"><userinput>sed -i 's/id:3:initdefault:/id:5:initdefault:/' \
|
|
/etc/inittab</userinput></screen>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="content">
|
|
<title>Contents</title>
|
|
|
|
<segmentedlist>
|
|
<segtitle>Installed Programs</segtitle>
|
|
<segtitle>Installed Libraries</segtitle>
|
|
<segtitle>Installed Directories</segtitle>
|
|
|
|
<seglistitem>
|
|
<seg>Default, Default.sample, Default, Default, Xsession, gdm,
|
|
gdm-screenshot, gdmflexiserver, gdm-crash-logger, gdm-factory-slave,
|
|
gdm-host-chooser, gdm-product-slave, gdm-session-worker,
|
|
gdm-simple-chooser, gdm-simple-greeter, gdm-simple-slave,
|
|
gdm-user-switch-applet, gdm-xdmcp-chooser-slave, gdm, and gdm-binary</seg>
|
|
<seg>libfingerprint.so, libpassword.so, libsmartcard.so</seg>
|
|
<seg>$GNOME_SYSCONFDIR/{dbus-1/system.d.gdm/{Init,PostLogin,PostSession,PreSession}},
|
|
<envar>$GNOME_PREFIX</envar>/{lib/gdm,share/{gnome/help/gdm/*,omf/gdm,
|
|
pixmaps/faces}},
|
|
/var/{cache/gdm,gdm,lib/gdm/.gconf.mandatory,log/gdm,
|
|
run/gdm/greeter}</seg>
|
|
</seglistitem>
|
|
</segmentedlist>
|
|
|
|
<variablelist>
|
|
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
|
<?dbfo list-presentation="list"?>
|
|
<?dbhtml list-presentation="table"?>
|
|
|
|
<varlistentry id="gdmflexiserver">
|
|
<term><command>gdmflexiserver</command></term>
|
|
<listitem>
|
|
<para>is the flexi server mechanism which allows to run GDM sessions
|
|
on demand, in a new virtual console.</para>
|
|
<indexterm zone="gdm gdmflexiserver">
|
|
<primary sortas="b-gdmflexiserver">gdmflexiserver</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="gdm-screenshot">
|
|
<term><command>gdm-screenshot</command></term>
|
|
<listitem>
|
|
<para>is a screenshot tool.</para>
|
|
<indexterm zone="gdm gdm-screenshot">
|
|
<primary sortas="b-gdm-screenshot">gdm-screenshot</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="gdm-prog">
|
|
<term><command>gdm</command></term>
|
|
<listitem>
|
|
<para>is a wrapper script to execute the
|
|
<application>GDM</application> binary, the configurable
|
|
<application>GNOME</application> based login prompt.</para>
|
|
<indexterm zone="gdm gdm-prog">
|
|
<primary sortas="b-gdm">gdm</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="gdm-binary">
|
|
<term><command>gdm-binary</command></term>
|
|
<listitem>
|
|
<para>is the <application>GNOME</application> based login prompt.</para>
|
|
<indexterm zone="gdm gdm-binary">
|
|
<primary sortas="b-gdm-binary">gdm-binary</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<!--<varlistentry id="gdm-restart">
|
|
<term><command>gdm-restart</command></term>
|
|
<listitem>
|
|
<para>sends the HUP signal to the <application>GDM</application>
|
|
daemon so that it restarts. It's used after the config file
|
|
is edited</para>
|
|
<indexterm zone="gdm gdm-restart">
|
|
<primary sortas="b-gdm-restart">gdm-restart</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="gdm-safe-restart">
|
|
<term><command>gdm-safe-restart</command></term>
|
|
<listitem>
|
|
<para>sends the USR1 signal to the <application>GDM</application>
|
|
daemon so that it restarts. It's used after the config file
|
|
is edited.</para>
|
|
<indexterm zone="gdm gdm-safe-restart">
|
|
<primary sortas="b-gdm-safe-restart">gdm-safe-restart</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="gdm-stop">
|
|
<term><command>gdm-stop</command></term>
|
|
<listitem>
|
|
<para>sends the TERM signal to the <application>GDM</application>
|
|
daemon so that it stops. It's used after the config file is
|
|
edited.</para>
|
|
<indexterm zone="gdm gdm-stop">
|
|
<primary sortas="b-gdm-stop">gdm-stop</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>-->
|
|
|
|
</variablelist>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|