Blame Manual/Directories/trunk/Scripts/Functions/Prepare.texi

4578cc
@subheading Name
9c6e0d
4578cc
The @strong{@code{prepare}} functionality is part of the
4578cc
@command{centos-art.sh} script and standardizes configuration of
4578cc
preliminar steps you need to follow in order to get your workstation
4578cc
ready for using a working copy of CentOS Artwork Repository.
9c6e0d
4578cc
@subheading Synopsis
4578cc
4578cc
@command{centos-art @strong{prepare} [OPTIONS]}
4578cc
4578cc
There is no need to specify @file{path/to/dir} information in this
4578cc
functionality. Most actions are performed through options.
4578cc
4578cc
The @strong{@code{prepare}} functionality of centos-art.sh script
4578cc
accepts the following options:
9c6e0d
4578cc
@table @option
4578cc
4578cc
@item --quiet
4578cc
4578cc
Supress all output messages except error messages.  When this option
4578cc
is passed, all confirmation requests are supressed as well and a
4578cc
possitive answer is assumed for them, just as if the
4578cc
@option{--answer-yes} option had been provided.
4578cc
4578cc
@item --answer-yes
4578cc
4578cc
Assume @samp{yes} to all confirmation requests.
4578cc
4578cc
@item --packages
7c40cb
4578cc
Install/update software packages required by the working copy of
4578cc
CentOS Artwork Repository.
4578cc
4578cc
The process of software installation takes place through @command{sudo
4578cc
yum} and the repository configuration currently set in your
4578cc
workstation.
4578cc
4578cc
Most of the software packages required by the working copy of CentOS
4578cc
Artwork Repository are available on The CentOS Distribution and can be
4578cc
installed using The CentOS Distribution installation media.  The only
4578cc
exception is Inkscape, the program used to manipulate
4578cc
@acronym{SVG,Scalable Vector Graphics} files in the working copy.  
4578cc
4578cc
The @file{inkscape} package isn't inside The CentOS Distribution or
4578cc
any of The CentOS Project repositories neither, so you need to install
4578cc
it from a third party repository like @samp{RPMForge} or @samp{EPEL}.
4578cc
See page
4578cc
@url{http://wiki.centos.org/AdditionalResources/Repositories/,The
4578cc
CentOS Repositories}, to know how to configure third party
4578cc
repositories in The CentOS Distribution.
4578cc
4578cc
@item --link
4578cc
4578cc
This option uses symbolic links to install/update the connection
4578cc
between components inside the working copy and components outside the
4578cc
working copy. Among the components that need to be connected figure
4578cc
out the command-line internface of @command{centos-art.sh} script;
4578cc
fonts, brushes, palettes and patterns used by programs like GIMP and
4578cc
Inkscape; and configuration files of text editors.
4578cc
4578cc
The main purpose of such connection is to adapt the working copy to
4578cc
the CentOS Distribution filesystem layout (e.g., @file{~/bin}
4578cc
directory is for storing personal programs, @file{~/gimp-2.2/brushes}
4578cc
is for storing GIMP brushes for personal use, etc.) and, at the same
4578cc
time, to provide a way of sharing changes made to connected components
4578cc
to other workstations (e.g., if I update a GIMP brush in my
4578cc
workstation, you'll receive the change the next you update your
4578cc
working copy and then will be immediatly available for you to use in
4578cc
GIMP).
4578cc
4578cc
@item --environment
4578cc
4578cc
Print the name and value of some of the environment variables used by
4578cc
@command{centos-art.sh} scripts.  
4578cc
4578cc
@end table
4578cc
4578cc
@subheading Description
4578cc
4578cc
The @strong{@code{prepare}} functionality of @command{centos-art.sh}
4578cc
script is part of the CentOS Artwork Repository. So, in order to
4578cc
execute the @strong{@code{prepare}} functionality of
4578cc
@command{centos-art.sh} script you need to have access to a working
4578cc
copy of CentOS Artwork Repository, first.  Working copies of CentOS
4578cc
Artwork Repository are downloaded from the source repository and made
4578cc
available to you by mean of workstations.  A workstation is a computer
4578cc
that you install and configure (prepare) to do something. In this
4578cc
case, you pick up a computer and prepare it for working on the CentOS
4578cc
Artwork Repository.
7c40cb
7c40cb
@subsubheading Installing the workstation
7c40cb
e3ad4e
Installing the workstation is the first step you need to do. In this
e3ad4e
step you make your computer functional through an operating system. In
e3ad4e
this case, The Community Enterprise Operating System; which is also
e3ad4e
know as The CentOS Distribution or just CentOS, for short.
7c40cb
7c40cb
To install The CentOS Distribution you need to have the installation
7c40cb
media somehow (e.g., CDs, DVDs, Pendrives, etc.). There are several
7c40cb
different ways to perform the installation process of CentOS
7c40cb
distribution, but generally, you put the installation media in your
7c40cb
media reader, boot the computer from it, and follow the installer
7c40cb
intructions.  That simple.
7c40cb
7c40cb
If you don't have the installation media of CentOS distribution, you
7c40cb
need to download the ISO files related to the media you plan to use
7c40cb
(e.g., CD or DVD) and then create the installation media by yourself.
7c40cb
The CentOS Distribution ISO files can be downloaded from
7c40cb
@url{http://mirrors.centos.org/} and, if you chosen CD or DVD as your
7c40cb
prefered installation medium, you can burn the ISO files using the
4578cc
@command{K3B} application so as to create the installation media
4578cc
you'll use.  Of course, in order to download the ISO files and create
4578cc
the installation media, you need to have an already installed CentOS
7c40cb
workstation where you can realized all the work.
7c40cb
7c40cb
@subsubheading Configuring the workstation
7c40cb
7c40cb
Once you've installed the workstation and it is up and running, login
7c40cb
as @samp{root} user, create a username (e.g., @samp{centos}) and set a
7c40cb
password for it. This is the username you must use for everyday work
7c40cb
inside your working copy of the CentOS Artwork Repository.
9c6e0d
9c6e0d
@quotation
e3ad4e
@strong{Caution} Do not use the @samp{root} username for your everyday
e3ad4e
work inside the working copy of CentOS Artwork Repository.  It is
e3ad4e
dangerous and might provoke unreversable damages on your workstation.
9c6e0d
@end quotation
9c6e0d
e3ad4e
Once you've created the username for your everyday work, there are
e3ad4e
some environment variables that you can customize to fit your personal
e3ad4e
needs (e.g., default text editor, default locale information, default
e3ad4e
time zone representation, etc.).  To customize these variables you
7c40cb
need to edit your profile file (i.e., @file{~/.bash_profile}) and set
7c40cb
the redefinition there.  Notice that you may need to logout and then
7c40cb
do login again in order for the new variable values to take effect.
7c40cb
7c40cb
@table @strong
7c40cb
@item Default text editor:
7c40cb
7c40cb
The default text editor information is contrlled by the @env{EDITOR}
7c40cb
environment variable. The @file{centos-art.sh} script uses the default
7c40cb
text editor to edit subversion pre-commit messages, translation files,
7c40cb
documentation files, script files, and similar text-based files.
9c6e0d
9c6e0d
If @env{EDITOR} environment variable is not set, @file{centos-art.sh}
9c6e0d
script uses @file{/usr/bin/vim} as default text editor. Otherwise, the
9c6e0d
following values are recognized by @file{centos-art.sh} script:
9c6e0d
9c6e0d
@itemize
9c6e0d
@item @file{/usr/bin/vim}
9c6e0d
@item @file{/usr/bin/emacs}
9c6e0d
@item @file{/usr/bin/nano}
9c6e0d
@end itemize
9c6e0d
7c40cb
If no one of these values is set in the @env{EDITOR} environment
7c40cb
variable, the @file{centos-art.sh} script uses @file{/usr/bin/vim}
7c40cb
text editor, the one installed by default in The CentOS Distribution. 
9c6e0d
7c40cb
@item Default locale information:
9c6e0d
7c40cb
The default locale information is controlled by the @env{LANG}
7c40cb
environment variable. This variable is initially set in the
7c40cb
configuration process of CentOS distribution installer, specifically
7c40cb
in the @samp{Language} step; or once installed using the
9c6e0d
@command{system-config-language} tool.
9c6e0d
7c40cb
The @command{centos-art.sh} script uses the @env{LANG} environment
7c40cb
variable to determine what language to use for printing output
4578cc
messages. Another use of @env{LANG} variable inside
4578cc
@command{centos-art.sh} script is to determine what translation file
4578cc
to update or edit when input files are localized.
7c40cb
7c40cb
@item Default time zone representation:
7c40cb
7c40cb
The time zone representation is a time correction applied to the
7c40cb
system time (stored in the BIOS clock) based on your country location.
7c40cb
This correction is specially useful to distributed computers around
7c40cb
the world that work together and need to be syncronized in time to
7c40cb
know when things happened.
7c40cb
7c40cb
The CentOS Artwork Repository is made of one server and several
7c40cb
workstations spread around the world. In order for all these
7c40cb
workstations to know when changes in the server took place, it is
4578cc
required that they all set their system clocks to use the same time
4578cc
information (i.e., @acronym{UTC,Coordinated Universal Time}) and set
4578cc
the time correction for their specific countries in the operating
4578cc
system.  Otherwise, it would be difficult to know when something
4578cc
exactly happened.
7c40cb
7c40cb
Generally, setting the time information is a straight-forward task and
7c40cb
configuration tools provided by The CentOS Distribution do cover time
7c40cb
correction for most of the countries around the world.  However, if
7c40cb
you need a time precision not provided by any of the date and time
7c40cb
configuration tools provided by The CentOS Distribution then, you need
7c40cb
to use the @env{TZ} environment variable to correct the time
7c40cb
information by yourself.  The format of @env{TZ} environment variable
7c40cb
is described in @file{tzset(3)} manual page.  
9c6e0d
@end table
9c6e0d
7c40cb
@subsubheading Downloading the working copy
5da4a8
7c40cb
Once you've configured the workstation, it is time to download the
7c40cb
working copy of CentOS Artwork Repository. 
5da4a8
7c40cb
To download the working copy of CentOS Artwork Repository you need to
7c40cb
login as your everyday work username (e.g., @samp{centos}) and use the
7c40cb
Subversion client to bring all the files you need to work with down
7c40cb
from the source location of CentOS Artwork Repository
7c40cb
(@url{https://projects.centos.org/svn/artwork/}) to your workstation,
7c40cb
just as the following command describes:
5da4a8
5da4a8
@verbatim
7c40cb
svn co https://projects.centos.org/svn/artwork ~/
5da4a8
@end verbatim
5da4a8
7c40cb
This command will create the working copy of CentOS Artwork Repository
7c40cb
in your workstation, specifically in the @file{/home/centos/artwork}
7c40cb
directory.  Note that you only need to execute this command once.
7c40cb
After that, to keep your working copy up to date, you use the
7c40cb
Subversion @command{update} command instead.
5da4a8
5da4a8
@quotation
7c40cb
@strong{Tip} In the condition that you don't have Subversion client
7c40cb
installed in the workstation, then you can install it using the
7c40cb
command:
7c40cb
7c40cb
@verbatim
7c40cb
sudo yum install subversion
7c40cb
@end verbatim
5da4a8
@end quotation
5da4a8
7c40cb
@subsubheading Configuring the working copy
5da4a8
7c40cb
Once you have a working copy of CentOS Artwork Repository in your
4578cc
workstation, you can go and run the @strong{@code{prepare}}
4578cc
functionality of @command{centos-art.sh} script to realize the
4578cc
remaining configuration stuff.
5da4a8
7c40cb
Assuming this is the very first time you run the
7c40cb
@command{centos-art.sh} script, you'll find that there is no
7c40cb
@command{centos-art} command-line interface for it in your
7c40cb
workstation.  This is correct. In order to have the
7c40cb
@command{centos-art} command-line in your workstation, you need to run
7c40cb
the @command{centos-art.sh} script using its absolute path:
5da4a8
5da4a8
@verbatim
7c40cb
~/artwork/trunk/Scripts/centos-art.sh prepare [OPTIONS]
5da4a8
@end verbatim
5da4a8
4578cc
Assuming you've already run the @strong{@code{prepare}} functionality
4578cc
before, there is no need for you to use the absolute path again.
4578cc
Instead, you can use the @command{centos-art} command-line interface
4578cc
directly, as the following example describes:
5da4a8
5da4a8
@verbatim
7c40cb
centos-art.sh prepare [OPTIONS]
5da4a8
@end verbatim
5da4a8
4578cc
Notice that you can execute the @strong{@code{prepare}} functionality
4578cc
more than once. This is specially useful to keep the link information
7c40cb
syncronized. For example, considering you've added new brushes to or
7c40cb
removed old brushes from your working copy of CentOS Artwork
7c40cb
Repository, the link information related to those files need to be
e3ad4e
updated in the @file{~/.gimp-2.2/brushes} directory too, in a way the
e3ad4e
addition/deletion change that took place in your working copy can be
e3ad4e
reflected there, as well.  The same is true for other similar
e3ad4e
components like fonts, patterns and palettes components.
5da4a8
4578cc
@subheading Examples
dbcb80
dbcb80
@table @command
dbcb80
@item centos-art prepare --packages --link
dbcb80
Preapare both links and packages required to use the working copy of
dbcb80
CentOS Artwork Repository in the workstation. If required packages are
dbcb80
already installed this command looks for updates instead.
dbcb80
dbcb80
@item centos-art prepare --link --quiet
dbcb80
Update connection between the workstation and the working copy of
dbcb80
CentOS Artwork Repository, using no output.
dbcb80
@end table
dbcb80
4578cc
@subheading Author
4578cc
4578cc
Written by Alain Reguera Delgado.
4578cc
4578cc
@subheading Reporting bugs
4578cc
4578cc
Report bugs to @email{centos-artwork@@centos.org} mailing list.
4578cc
4578cc
@subheading Copyright
4578cc
4578cc
Copyright @copyright{}  2009, 2010, 2011 The CentOS Project.
4578cc
4578cc
This is free software.  You may redistribute copies of it under the
4578cc
terms of the GNU General Public License (@pxref{GNU General Public
4578cc
License}).  There is NO WARRANTY, to the extent permitted by law.
4578cc
41622d
@subheading See also
9c6e0d
7c40cb
@itemize
7c40cb
@item @ref{Directories trunk Scripts Functions}
7c40cb
@item @ref{Directories trunk Scripts}
7c40cb
@item @ref{Directories trunk}
7c40cb
@end itemize