Difference: YummyComponent (1 vs. 7)

Revision 72015-09-02 - kenny

Line: 1 to 1
 
META TOPICPARENT name="DocsForLCFGUsers"

lcfg-yummy

Line: 124 to 124
 
  • You can specify a full package version if you want, e.g. foo-1.2.3-1.el6
  • You can specify a package as foo/i686 for an architecture -specific version.
Changed:
<
<
  • lcfg-yummy understands the LCFG updaterpms flags, such as :br
>
>
  • lcfg-yummy understands the LCFG updaterpms flags, such as :br, but you must also give it an architecture until bug 893 is fixed.
 
  • If there are packages from different repos available only the package from the repo with highest priority is considered and the others are dropped. This might lead to a problem when you request a rpm with a specific version which is only available from one of the lower priority repos. To solve this you will need to push the rpms into a top priotity repo.
  • You can create 'meta-packages' by using #define statements to include other blocks wrapped with an #ifdef. For example, you could combine blocks for OFFICE, MULTIMEDIA and BROWSERS into a meta-package called DESKTOP.

Revision 62013-07-05 - kenny

Line: 1 to 1
 
META TOPICPARENT name="DocsForLCFGUsers"

lcfg-yummy

Line: 53 to 53
 

Usage

Deleted:
<
<
Firstly, make a working directory:

mkdir /tmp/yummy

 Make sure you know the path where you have checked out your package lists.

Generate the .yummy file you require (you can copy and paste the wireshark example above to test). In this example, it is /tmp/see_packagelists/see-sl6-options.yummy

Run lcfg-yummy against this packagelist to generate a .rpms file (here it's /tmp/see_packagelists/see-sl6-options.rpms):

Changed:
<
<
lcfg-yummy --cachedir=/tmp/yummy --root=/usr/lib/yummy/sl63_64-mdpstable --outfile=/tmp/see_packagelists/see-sl6-options.rpms /tmp/see_packagelists/see-sl6-options.yummy
>
>
lcfg-yummy --root=/usr/lib/yummy/sl63_64-mdpstable --outfile=/tmp/see_packagelists/see-sl6-options.rpms /tmp/see_packagelists/see-sl6-options.yummy
  (The full options for lcfg-yummy can be gained by running lcfg-yummy --help).
Line: 79 to 75
 
[yummy]
Deleted:
<
<
cachedir=/tmp/yummy
 installroot=/usr/lib/yummy/sl63_64-mdpstable reorder_groups=0
Line: 102 to 97
 inifile.sections mADD(yummycfg_yummy) inifile.sections_yummycfg mADD(yummycfg_yummy) inifile.section_yummycfg_yummy mSET(yummy)
Deleted:
<
<
YUMMY_SETOPT(yummy,cachedir,/tmp/yummy)
 YUMMY_SETOPT(yummy,installroot,/usr/lib/yummy/sl63_64-mdpstable) YUMMY_SETOPT(yummy,reorder_groups,0)

Revision 52013-05-10 - kenny

Line: 1 to 1
 
META TOPICPARENT name="DocsForLCFGUsers"

lcfg-yummy

Line: 29 to 29
  You can then add this particular package to your clients by making sure you are including the .rpms file:
Changed:
<
<
!profile.packages mEXTRA(@yummy.rpms)
>
>
!profile.packages_options mEXTRA(@yummy.rpms)
  And then include the relevant packages by setting the following on the client:

Revision 42013-03-12 - kenny

Line: 1 to 1
 
META TOPICPARENT name="DocsForLCFGUsers"

lcfg-yummy

Line: 67 to 67
  (The full options for lcfg-yummy can be gained by running lcfg-yummy --help).
Changed:
<
<
In the above example we are using a root based on sl3_64 - make sure this is changed to the appropriate release as required.
>
>
In the above example we are using a root based on sl63_64 - make sure this is changed to the appropriate release as required.
  You can now look at the generated .rpms file to check it looks correct. If it is, check both the .yummy and .rpms file into svn. Any clients using this packagelist will now be updated.

Revision 32013-03-06 - m_2erichardson_40ed_2eac_2euk

Line: 1 to 1
 
META TOPICPARENT name="DocsForLCFGUsers"

lcfg-yummy

Line: 131 to 131
 
  • You can specify a full package version if you want, e.g. foo-1.2.3-1.el6
  • You can specify a package as foo/i686 for an architecture -specific version.
  • lcfg-yummy understands the LCFG updaterpms flags, such as :br
Added:
>
>
  • If there are packages from different repos available only the package from the repo with highest priority is considered and the others are dropped. This might lead to a problem when you request a rpm with a specific version which is only available from one of the lower priority repos. To solve this you will need to push the rpms into a top priotity repo.
  • You can create 'meta-packages' by using #define statements to include other blocks wrapped with an #ifdef. For example, you could combine blocks for OFFICE, MULTIMEDIA and BROWSERS into a meta-package called DESKTOP.

#ifdef FOO_PKGS_DESKTOP
#define FOO_PKGS_OFFICE
#define FOO_PKGS_MULTIMEDIA
#define FOO_PKGS_BROWSERS
#endif /* FOO_PKGS_DESKTOP */
 

Questions, Bugs, Feature Requests

Revision 22013-03-05 - m_2erichardson_40ed_2eac_2euk

Line: 1 to 1
 
META TOPICPARENT name="DocsForLCFGUsers"

lcfg-yummy

Line: 71 to 71
  You can now look at the generated .rpms file to check it looks correct. If it is, check both the .yummy and .rpms file into svn. Any clients using this packagelist will now be updated.
Added:
>
>
 

Further Configuration

Changed:
<
<
You can optionally create a custom configuration file for lcfg-yummy, and reference this with the --config option, saving you typing the above command in its entirety each time.
>
>
You can optionally create a custom configuration file for lcfg-yummy - /etc/sysconf/yummy.conf, saving you typing all the options on each run:

[yummy]
cachedir=/tmp/yummy
installroot=/usr/lib/yummy/sl63_64-mdpstable
reorder_groups=0

To set the above via LCFG using the inifile component (sourced from geos):

#include <mdp/options/inifile.h>
!inifile.files mADD(yummycfg)
inifile.file_yummycfg /etc/sysconfig/yummy.conf
inifile.comment_yummycfg \
# LCFG automatically generated file - do not edit\n\

#define YUMMY_SETOPT(tag,var,value)  \
!inifile.vars mADD(yummycfg_v_/**/tag/**/_/**/var)  \
!inifile.vars_yummycfg_/**/tag mADD(yummycfg_v_/**/tag/**/_/**/var)  \
!inifile.var_yummycfg_v_/**/tag/**/_/**/var mSET(var)  \
!inifile.val_yummycfg_v_/**/tag/**/_/**/var mSET(value)

!inifile.sections mADD(yummycfg_yummy)
!inifile.sections_yummycfg mADD(yummycfg_yummy)
!inifile.section_yummycfg_yummy mSET(yummy)
YUMMY_SETOPT(yummy,cachedir,/tmp/yummy)
YUMMY_SETOPT(yummy,installroot,/usr/lib/yummy/sl63_64-mdpstable)
YUMMY_SETOPT(yummy,reorder_groups,0)

  At present, the repositories used, and their priorities, are delivered by an rpm.
Changed:
<
<
You can optionally choose to configure the priority of each repository used to find packages and their dependencies. For example, you might want to set the LCFG and your own devolved repository first, with other school repositories last.
>
>
You can optionally choose to configure the priority of each repository used to find packages and their dependencies. For example, you might want to set the LCFG and your own devolved repository first, with other school repositories last. School repositories are disabled by default. As an example, to enable the see devolved repo, and change it's priority):

!file.files mADD(extrarepos)
file.file_extrarepos /usr/lib/yummy/sl63_64-mdpstable/etc/yum.repos.d/see_extra.repo
file.type_extrarepos    literal:mkdir
file.tmpl_extrarepos \
[devolved-see]\n\
name=IS "see" Devolved Bucket\n\
baseurl=http://master.packages.lcfg.ucs.ed.ac.uk/pkgs/devolved/see/sl6_64/rpms\n\
gpgcheck=false\n\
metadata_expire=300\n\
enabled=1\n\
priority=10\n

Tips

 
Added:
>
>
  • You can specify a full package version if you want, e.g. foo-1.2.3-1.el6
  • You can specify a package as foo/i686 for an architecture -specific version.
  • lcfg-yummy understands the LCFG updaterpms flags, such as :br
 

Questions, Bugs, Feature Requests

Revision 12013-03-05 - m_2erichardson_40ed_2eac_2euk

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="DocsForLCFGUsers"

lcfg-yummy

lcfg-yummy is strictly speaking not a component - rather it is a tool for generating packagelists.

Introduction

Usage

lcfg-yummy takes a list of packages, calculates the dependencies (using yum), and generates a 'traditional' .rpms packagelist. An example .yummy file:

#ifdef LCFG_OPTIONS_WIRESHARK
wireshark
#endif /* LCFG_OPTIONS_WIRESHARK */

This, once processed by yummy, will generate a .rpms packagelist:

#ifdef LCFG_OPTIONS_WIRESHARK
wireshark-1.2.15-2.el6_2.1 /* repoid=sl6-distro */
/* dependencies */
libsmi-0.4.8-4.el6 /* repoid=sl6-distro */
#endif /* LCFG_OPTIONS_WIRESHARK */

You can then add this particular package to your clients by making sure you are including the .rpms file:

!profile.packages mEXTRA(@yummy.rpms)

And then include the relevant packages by setting the following on the client:

!profile.pkgcppopts mADD(-DLCFG_OPTIONS_WIRESHARK)

Installation

You will be using this tool on an LCFG client where you have svn access to be able to check in yummy packagelists and resulting .rpms packagelists.

Add the following to the client profile:

#include <mdp/options/yummy.h>

Then on the client run the following to install the lcfg-yummy tools:

om updaterpms run

This will install lcfg-yummy, and a set of custom yum configuration, pointing at the appropriate vendor, epel, lcfg and devolved repositories

Usage

Firstly, make a working directory:

mkdir /tmp/yummy

Make sure you know the path where you have checked out your package lists.

Generate the .yummy file you require (you can copy and paste the wireshark example above to test). In this example, it is /tmp/see_packagelists/see-sl6-options.yummy

Run lcfg-yummy against this packagelist to generate a .rpms file (here it's /tmp/see_packagelists/see-sl6-options.rpms):

lcfg-yummy --cachedir=/tmp/yummy --root=/usr/lib/yummy/sl63_64-mdpstable --outfile=/tmp/see_packagelists/see-sl6-options.rpms /tmp/see_packagelists/see-sl6-options.yummy

(The full options for lcfg-yummy can be gained by running lcfg-yummy --help).

In the above example we are using a root based on sl3_64 - make sure this is changed to the appropriate release as required.

You can now look at the generated .rpms file to check it looks correct. If it is, check both the .yummy and .rpms file into svn. Any clients using this packagelist will now be updated.

Further Configuration

You can optionally create a custom configuration file for lcfg-yummy, and reference this with the --config option, saving you typing the above command in its entirety each time.

At present, the repositories used, and their priorities, are delivered by an rpm.

You can optionally choose to configure the priority of each repository used to find packages and their dependencies. For example, you might want to set the LCFG and your own devolved repository first, with other school repositories last.

Questions, Bugs, Feature Requests

Please direct any bugs you find with this component to mhagdorn in Geos, or kenny in MDP.

-- Main.mrichardsonedacuk - 2013-03-05

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback