Blame Manuals/Tcar-ug/Repository/Workstation/config.docbook

d2638e
<sect1 id="repo-ws-config">
eebdc3
eebdc3
    <title>Configuring Your Workstation</title>
eebdc3
eebdc3
    <para>
eebdc3
        Once your worstation is installed, it is time for you to
eebdc3
        configure it.  At this point you create a user for everyday's
eebdc3
        work, configure third party repositories, fix environment
eebdc3
        variables to fit your personal needs, download the working
eebdc3
        copy of &TCAR; and prepare it for start using it.
eebdc3
    </para>
eebdc3
d2638e
    <sect2 id="repo-ws-config-wp">
74d256
    <title>Define Your Workplace</title>
eebdc3
    <para>
eebdc3
        Once you've installed the workstation and it is up and
74d256
        running, you need to register the user name you'll use for
74d256
        working. In this task you need to use the commands
eebdc3
        <command>useradd</command> and <command>passwd</command> to
eebdc3
        create the user name and set a password for it, respectively.
eebdc3
        These commands require administrative privileges to be
eebdc3
        executed, so you need to login as <emphasis>root</emphasis>
eebdc3
        superuser for doing so. 
eebdc3
    </para>
eebdc3
eebdc3
    <caution>
eebdc3
    <para>
74d256
        Do not use the <emphasis>root</emphasis> username for regular
74d256
        tasks inside your working copy of &TCAR;.  This is dangerous
74d256
        and might provoke unreversable damages to your workstation.
eebdc3
    </para>
eebdc3
    </caution>
eebdc3
eebdc3
    <para>
74d256
        When you've registered your user name in the workstation, it
74d256
        provides an identifier for you to open a user's session in the
74d256
        workstation and a place to store the information you produce,
74d256
        as well. This place is known as your home directory and is
74d256
        unique for each user registered in the workstation. For
74d256
        example, if you register the user name john in your
74d256
        workstation, your home directory would be located at 
74d256
        class="directory">/home/john/</filename>.
74d256
    </para>
74d256
    
74d256
    <para>
74d256
        At this point you need to decide where to download the working
74d256
        copy of &TCAR; inside your home directory.  This desition
74d256
        deserves special attention and should be implemented carefully
74d256
        in order to grant a standardized distributed environment.
74d256
        Let's see some alternatives.
eebdc3
    </para>
eebdc3
74d256
    <sect3>
74d256
    <title>Different Absolute Paths</title>
eebdc3
    <para>
74d256
        Consider that you store your working copy under 
74d256
        class="directory">/home/john/Projects/artwork/</filename> and
74d256
        I store mine under 
74d256
        class="directory">/home/al/Projects/artwork/</filename>, we'll
74d256
        end up refering the same files inside our working copies
74d256
        through different absolute paths. 
eebdc3
    </para>
74d256
    
74d256
    <para>
74d256
        This alternative generates a contradiction when files which
74d256
        hold path information inside are committed up to the central
74d256
        repository from different working copies. The contradiction
74d256
        comes from the question: which is the correct absolute path to
74d256
        use inside such files, yours or mine? (None of them is, of
74d256
        course.)
74d256
    </para>
74d256
74d256
    </sect3>
eebdc3
74d256
    <sect3 id="repo-ws-config-wp-OneUniqueAbsolutePath">
74d256
    <title>One Unique Absolute Path</title>
eebdc3
    <para>
c03f46
        Another case would be that where you and I ourselves use one
c03f46
        unique home directory (e.g., 
74d256
        class="directory">/home/centos/Projects/artwork/</filename>)
74d256
        to store the working copy of &TCAR; in our own workstations,
74d256
        but configure the subversion client to use different user
74d256
        names to commit changes up from the working copy to the
74d256
        central repository. 
eebdc3
    </para>
74d256
    
74d256
    <para>
74d256
        This alternative might be not so good in situations where you
74d256
        and I have to share the same workstation.  In such cases, it
74d256
        would be required that we both share the password information
74d256
        of the same system user (the <emphasis>centos</emphasis> user
74d256
        in our example) which, in addition, gives access to that
74d256
        user's subversion client configuration and this way provokes
74d256
        the whole sense of using different subversion credentials for
74d256
        committing changes to be lost.
74d256
    </para>
74d256
    </sect3>
eebdc3
74d256
    <sect3>
74d256
    <title>Different Absolute Paths Through Dynamic Expansion</title>
eebdc3
    <para>
74d256
        Most of the absolute paths we use inside the working copy are
74d256
        made of two parts, one dynamic and one relative fixed. The
74d256
        dynamic part is the home directory of the current user and its
74d256
        value can be retrived from the <envar>$HOME</envar>
74d256
        environment variable.  The fixed part of the path is the one
74d256
        we set inside the repositroy structure itself as a matter of
74d256
        organization.  What we need here is to find a way to expand
74d256
        variables inside files that don't support variable expansion.
74d256
    </para>    
74d256
74d256
    <para>
74d256
        This alternative had worked rather fine when we produce
74d256
        produce PNG files from SVG files and XTHML from DocBook
74d256
        files, but the same is not true for absolute paths inside
74d256
        files that are used as in their permanent state inside the
74d256
        repository (e.g., CSS files and other files similar in
c03f46
        purpose).
eebdc3
    </para>
74d256
    </sect3>
74d256
74d256
    </sect2>
74d256
74d256
    <sect2 id="repo-ws-config-wc">
74d256
    <title>Download Your Working Copy</title>
74d256
74d256
    <para>
74d256
        As convenction, to use the &TCAR;, you must register the user
74d256
        name <emphasis>centos</emphasis> in your workstation, do login
74d256
        with it, and download the working copy from the central
74d256
        repository using the following command:
74d256
    </para>
74d256
74d256
    <screen>svn co https://projects.centos.org/svn/artwork /home/centos/Projects/artwork</screen>
c03f46
eebdc3
    <para>
74d256
        The first time you download the working copy it contains no
74d256
        image files, nor documentation, or localized content inside
74d256
        it. This is because all the files provided in the working copy
74d256
        are source files (e.g., the files needed to produce other
74d256
        files) and it is up to you the action of render them to
74d256
        produce the final files (e.g., images and documentation) used
74d256
        to implement &TCPCVI;. 
eebdc3
    </para>
eebdc3
eebdc3
    <para>
74d256
        In order to complete the instalation of your working copy, use
74d256
        the <function>prepare</function> functionality of the
74d256
        <command>centos-art.sh</command> script, as described in 
74d256
        linkend="scripts-bash-prepare" />.
eebdc3
    </para>
eebdc3
eebdc3
    </sect2>
eebdc3
d2638e
    <sect2 id="repo-ws-config-envar">
74d256
    <title>Set Your Environment Variables</title>
eebdc3
eebdc3
    <para>
74d256
        There are some environment variables that you can customize to
74d256
        fit your personal needs (e.g., default text editor, default
74d256
        locale information, default time zone representation, etc.).
74d256
        To customize these variables you need to edit your personal
eebdc3
        profile (i.e., 
eebdc3
        class="directory">~/.bash_profile</filename>) and set the
eebdc3
        redefinition there.  Notice that you may need to logout and
eebdc3
        then do login again in order for the new variable values to
eebdc3
        take effect.
eebdc3
    </para>
eebdc3
74d256
    <sect3>
74d256
    <title>Default text editor</title>
eebdc3
    <para>
eebdc3
        The default text editor information is controlled by the
eebdc3
        <envar>EDITOR</envar> environment variable. The
eebdc3
        <command>centos-art.sh</command> script uses the default text
eebdc3
        editor to edit subversion pre-commit messages, translation
eebdc3
        files, documentation files, script files, and similar
eebdc3
        text-based files.
eebdc3
    </para>
eebdc3
eebdc3
    <para>
eebdc3
        If <envar>EDITOR</envar> environment variable is not set,
eebdc3
        <command>centos-art.sh</command> script uses 
eebdc3
        class="directory">/usr/bin/vim</filename> as default text
eebdc3
        editor. Otherwise, the following values are recognized by
eebdc3
        <command>centos-art.sh</command> script:
eebdc3
eebdc3
        <itemizedlist>
eebdc3
        <listitem>
eebdc3
        <para>
eebdc3
            <filename class="directory">/usr/bin/vim</filename>
eebdc3
        </para>
eebdc3
        </listitem>
eebdc3
eebdc3
        <listitem>
eebdc3
        <para>
eebdc3
        <filename class="directory">/usr/bin/emacs</filename>
eebdc3
        </para>
eebdc3
        </listitem>
eebdc3
eebdc3
        <listitem>
eebdc3
        <para>
eebdc3
            <filename class="directory">/usr/bin/nano</filename>
eebdc3
        </para>
eebdc3
        </listitem>
eebdc3
        </itemizedlist>
eebdc3
eebdc3
    </para>
eebdc3
eebdc3
    <para>
eebdc3
        If no one of these values is set in the <envar>EDITOR</envar>
eebdc3
        environment variable, the <command>centos-art.sh</command>
eebdc3
        script uses 
eebdc3
        class="directory">/usr/bin/vim</filename> text editor, the one
eebdc3
        installed by default in &TC;;. 
eebdc3
    </para>
74d256
    </sect3>
eebdc3
74d256
    <sect3>
74d256
    <title>Default locale information</title>
eebdc3
    <para>
eebdc3
        The default locale information is controlled by the
eebdc3
        <envar>LANG</envar> environment variable. This variable is
eebdc3
        initially set in the installation process of &TC;;,
eebdc3
        specifically in the <emphasis>Language</emphasis> step.
eebdc3
        Generally, there is no need to customize this variable in your
eebdc3
        personal profile. If you need to change the value of this
eebdc3
        environment variable do it through the login screen of GNOME
eebdc3
        Desktop Environment or the
eebdc3
        <command>system-config-language</command> command.
eebdc3
    </para>
eebdc3
eebdc3
    <para>
eebdc3
        The <command>centos-art.sh</command> script uses the
eebdc3
        <envar>LANG</envar> environment variable to determine what
eebdc3
        language to use for printing output messages from the script
eebdc3
        itself, as well as the portable objects locations that need to
eebdc3
        be updated or edited when you localize directory structures
eebdc3
        inside the working copy of &TCAR;.
eebdc3
    </para>
74d256
    </sect3>
eebdc3
74d256
    <sect3>
74d256
    <title>Default time zone representation</title>
eebdc3
    <para>
eebdc3
        The time zone representation is a time correction applied to
eebdc3
        the system time (stored in the BIOS clock) based on your
eebdc3
        country location.  This correction is specially useful to
eebdc3
        distributed computers around the world that work together and
eebdc3
        need to be syncronized in time to know when things happened.
eebdc3
    </para>
eebdc3
    <para>
eebdc3
        &TCAR; is made of one server and several workstations spread
eebdc3
        around the world. In order for all these workstations to know
eebdc3
        when changes in the server took place, it is required that
eebdc3
        they all set their system clocks to use the same time
eebdc3
        information (e.g., through UTC (Coordinated Universal Time))
eebdc3
        and set the time correction for their specific countries in
eebdc3
        the operating system.  Otherwise, it would be difficult to
eebdc3
        know when something exactly happened.
eebdc3
    </para>
eebdc3
    <para>
eebdc3
        Generally, setting the time information is a straight-forward
eebdc3
        task and configuration tools provided by &TC;; do cover time
eebdc3
        correction for most of the countries around the world.
eebdc3
        However, if you need a time precision not provided by any of
eebdc3
        the date and time configuration tools provided by &TC;; then,
eebdc3
        you need to customize the <envar>TZ</envar> environment
eebdc3
        variable in your personal profile to correct the time
eebdc3
        information by yourself.  The format of <envar>TZ</envar>
eebdc3
        environment variable is described in tzset(3)
eebdc3
        manual page.  
eebdc3
    </para>
74d256
    </sect3>
eebdc3
    </sect2>
eebdc3
d2638e
    <sect2 id="repo-ws-config-sudo">
74d256
    <title>Be Prepared For Administrative Tasks</title>
eebdc3
eebdc3
    <para>
74d256
        Administrative tasks inside &TCAR; are standardized through
74d256
        the <command>centos-art.sh</command> script which must be run
74d256
        as <emphasis>centos</emphasis> user. The
74d256
        <emphasis>centos</emphasis> user is a regular user and doesn't
74d256
        have administrative rights. Therefore, it is required to give
74d256
        some administrative rights to the <emphasis>centos</emphasis>
74d256
        user in order for <command>centos-art.sh</command> to perform
74d256
        the administrative tasks (e.g., installing packages through
74d256
        <command>yum</command>).
eebdc3
    </para>
eebdc3
39143d
    <para>
74d256
        To give some administrative rights to a regular user like
74d256
        <emphasis>centos</emphasis> you should execute the
74d256
        <command>visudo</command> command as
74d256
        <emphasis>root</emphasis> and set the rights you want to give 
74d256
        accordingly. In case you don't configure the sudoers file,
74d256
        <command>centos-art.sh</command> won't be able to perform
74d256
        administrative task and you will need to do so yourself by
74d256
        hand as the <emphasis>root</emphasis> supeuser.
39143d
    </para>
eebdc3
74d256
    <example id="repo-ws-config-sudo-example1">
74d256
    <title>The <filename>/etc/sudoers</filename> configuration.</title>
74d256
    <screenshot>
74d256
    <screeninfo>The <filename>/etc/sudoers</filename> configuration.</screeninfo>
74d256
    <mediaobject>
74d256
    <textobject>
74d256
<programlisting>
74d256
...
74d256
</programlisting>
74d256
    </textobject>
74d256
    </mediaobject>
74d256
    </screenshot>
74d256
    </example>
eebdc3
eebdc3
    </sect2>
eebdc3
eebdc3
</sect1>