4.11. Group Recipes

Use this section if you want to create a group of packages and components that should be installed and maintained together, not as separate pacakges. One type of group is the appliance group (such as group-example-appliance) that rBuilder creates to assemble all the software that should be included in your appliance. For that group's development, be sure to reference rBuilder documentation for developing your appliance group recipe.

You can also create a Conary group to put together smaller set of software that should always be managed together. You can create it in the same way as creating a new package, but the group must have the "group-" prefix in its name. A typical use case is locking in particular versions of interacting software that you have tested together.

Use the following template to start a group recipe:

class GroupExample(GroupRecipe):
    name = 'group-example'
    version = '0.1'

    # If you want the group build to automatically resolve any
    # dependencies, you can set autoResolve = True
    # 
    autoResolve = True

    def setup(r):
        r.add('example:runtime', '/example.rpath.org@corp:example-4/4.0.1')
        r.add('mysql', '5.0.51a')
        r.add('php', '5.2.8')

Replace the class name, group name, and version as appropriate for your package, and adjust the variable values and add actions as needed. Groups can also contain other groups, which allows you to add this group to larger groups (like your appliance group recipe) if you want to do that. Be sure to build the group, and then test that it can install and manage the selected packages and components.

Remember these important facts about Conary groups and how they behave when they're installed on a Conary-based system:

Reference all the other actions you can add to your group recipe in Conary Recipe Actions, Macros, and Variables at docs.rpath.com/conary.