Personal tools
     DOCUMENTATION

rPath Appliance Platform/Linux Service

From rPath Wiki

Jump to: navigation, search
rPath Appliance Platform --> Linux Service
The rPath Appliance Platform Linux Service (rLS) is a set of software components that form the base for creating appliances. rLS itself cannot be installed on a system as with rPath Linux. Instead, it is designed so that appliance developers can bring in just enough operating system (JeOS) needed for an appliance.

When developing appliances with rBuilder and rMake, the rPath Appliance Platform included in an appliance ensures that it is built with the rLS components that it needs. Even though it is streamlined to support the application stack, the appliance's underlying operating system, assembled with rLS components, is complete and dependable.

rLS Contents

rLS exists for rPath customers as group-rap-linux-service=rap.rpath.com@rpath:linux-1. Access to the rap.rpath.com repository is available only by entitlement. The Conary group group-rap-linux-service contains:

  • group-rap-standard -- provides an appliance base for rBuilder users (equivalent of group-appliance-platform in rPath Linux); this is the only group that should be added to an appliance, and it is added automatically as part of using group-appliance as described in the next section (Use the rPath Appliance Platform in an Appliance)
  • group-rap-packages -- components for dependency resolution; this group should not be added to an appliance as its packages are automatically added as needed

rLS contains some additional groups that serve as implementation details not intended for general use. Such groups hold libraries required for compatibility, debugging information for packages, and documentation for packages.

See LinuxServiceComponents for a complete listing of rLS components.

Image:Bulbgraph.png   To optimize the size of the appliance, the kernel in rLS is smaller than the kernel in rPath Linux. Drivers for obsolete hardware, or hardware otherwise not supported by rPath, are not included in the rLS kernel.

Use the rPath Appliance Platform in an Appliance

When developing appliances with rMake and rBuilder, include the rPath Appliance Platform in an appliance. The appliance platform can be used from rPath Linux (for free) or from rLS (by entitlement).

To use the rPath Appliance Platform from rPath Linux: Load the superclass group-appliance from conary.rpath.com@rpl:1 and add the appliance platform in the recipe with addAppliancePlatform. The rPath Linux label conary.path.com@rpl:1 must also be in the setSearchPath. The following is an example showing these features:

loadSuperClass('group-appliance=conary.rpath.com@rpl:1')
class GroupExample(ApplianceGroupRecipe):
    name = 'group-example'
    version = '2.0'
 
    def setup(r):
        r.setSearchPath('example.rpath.org@corp:example-2-devel', 
            'raa.rpath.org@rpath:raa-2',
            'conary.rpath.com@rpl:1')
        r.addAppliancePlatform()

To use the rPath Appliance Platform from rLS: The steps should be the same as when based on rPath Linux, but the superclass and setSearchPath should use group-rap-packages=rap.rpath.com@rpath:linux-1 instead of conary.rpath.com@rpl:1. The following is the example recipe changed to use the appliance platform from rLS instead of rPath Linux:

loadSuperClass('group-appliance=rap.rpath.com@rpath:linux-1')
class GroupExample(ApplianceGroupRecipe):
    name = 'group-example'
    version = '2.0'
 
    def setup(r):
        r.setSearchPath('example.rpath.org@corp:example-2-devel', 
            'products.rpath.com@rpath:raa-2',
            'group-rap-packages=rap.rpath.com@rpath:linux-1')
        r.addAppliancePlatform()

When modifying recipes based on rPath Linux that are not already using the rPath Appliance Platform, rework the recipe to match the descriptions in the previous examples. Also, be sure to do the following:

  1. Remove any previous references to conary.rpath.com@rpl:1 and group-os=conary.rpath.com@rpl:1 in the search path.
  2. Remove any previous r.add or r.addCopy for group-core.
   If the appliance was previously using packages from rPath Linux that do not exist in rLS, developers may continue using the package from rPath Linux. This additional step will require adding group-os=conary.rpath.com@rpl:1 after group-rap-packages=rap.rpath.com@rpath:linux-1 in the setSearchPath arguments. However, note that only packages in rLS qualify for rPath customer support for rLS appliances.