hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Yang (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-6255) Create an rpm integration project
Date Sun, 13 Mar 2011 20:57:59 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-6255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13006276#comment-13006276
] 

Eric Yang commented on HADOOP-6255:
-----------------------------------

Package builder design

For supporting multiple type of packages, this project layout the packaging source code structure
like this:

{noformat}
src/packages/rpm
            /deb
            /conf-pseudo
{noformat}

rpm - meta data for creating rpm packages.  SysV init style startup script is also included
for start up process in Redhat like environment.

deb - meta data for creating debian packages.  BSD init style startup script is also included
for start up process in Ubuntu like environment.

conf-pseudo - Configuration template for demo pseudo cluster setup.  By default both rpm,
or deb binary package does not startup the system.  The purpose of conf-pseudo is to create
a (rpm/deb) package as demonstration of how to setup a single node cluster and turn on services
by configuration.

Software home directory is designed to locate in:

${prefix}/share/${project}

src/packages/update-${project}-env.sh runs in the post installation phase which creates symlinks
and making software structure to map to the proposed layout in HADOOP-6255

/etc/default/${project}-evn.sh is symlinked to the project environment script.  Hence, project
environment variables are shared across projects.

Project build file can override the package path in the build phase:

Sample build.properties
{noformat}
package.prefix=/usr
package.conf.dir=/etc/${project}
package.log.dir=/var/log/${project}
package.pid.dir=/var/log/${project}
{noformat}

For RPM package, it is possible to override location at installation phase by specifying:

{noformat}
rpm -i ${project}-[version]-[rev].[arch].rpm \
  --relocate /usr=/usr/local/hadoop \
  --relocate /etc/hadoop=/usr/local/etc/hadoop \
  --relocate /var/log/hadoop=/opt/logs/hadoop \
  --relocate /var/run/hadoop=/opt/run/hadoop
{noformat}

The same build structure can be apply to both ant or maven build scripts.  It also expandable
to include mac native package installer using this design pattern.

> Create an rpm integration project
> ---------------------------------
>
>                 Key: HADOOP-6255
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6255
>             Project: Hadoop Common
>          Issue Type: New Feature
>    Affects Versions: 0.20.100
>            Reporter: Owen O'Malley
>            Assignee: Eric Yang
>             Fix For: 0.20.100
>
>         Attachments: HADOOP-6255-branch-0.20-security-1.patch, HADOOP-6255-branch-0.20-security-2.patch,
HADOOP-6255-branch-0.20-security-3.patch, HADOOP-6255-branch-0.20-security-4.patch, HADOOP-6255-branch-0.20-security.patch,
HADOOP-6255.patch, deployment.pdf, deployment.tex
>
>
> We should be able to create RPMs for Hadoop releases.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message