+ Reply to Thread
Results 1 to 5 of 5

Thread: How to handle package dependencies within kit?

  1. #1
    job+2 Guest

    Default How to handle package dependencies within kit?

    Hi,

    I've created a "bio" kit that contains several opensource bio sciences tools and many perl modules. But the kit fails to install due to rpm dependencies. How are rpm dendencies suppossed to be handled? Do I need to track down each any dependecy and put all of them in the kit?

    I have attached a small image that shows the errors I received when I tried to install this on the installer node.

    Unfortunately, no errors messages appeared when I tried to install the kit on the compute node. And cfmsync -p also did not report any errors. In fact, it reported that it completed successfully! But none of the rpms in the kit got installed.

    Thank you,

    Job

  2. #2
    job+2 Guest

    Default

    forgot to attach the image. Here it is.
    Attached Images

  3. #3
    mikem's Avatar
    mikem is offline Project Moderator
    Join Date
    April 10th, 2008
    Posts
    22
    Blog Entries
    9
    Downloads
    0
    Uploads
    0

    Default

    Hi,

    Quote Originally Posted by job+2 View Post
    Hi,

    I've created a "bio" kit that contains several opensource bio sciences tools and many perl modules. But the kit fails to install due to rpm dependencies. How are rpm dendencies suppossed to be handled? Do I need to track down each any dependecy and put all of them in the kit?
    If the dependencies are not already available for installation via yum from the standard repo, then yes, you need to package them with your kit.

    You may find RPMs for those packages elsewhere, such as Fedora (if you're using RedHat or CentOS), EPEL[1] or other third parties.

    Good luck!

    [1] EPEL - FedoraProject

  4. #4
    job+2 Guest

    Default Then we need a new kit naming convention....

    Mike,

    Thank you for your response. But I think we need to think through this a little further.

    Let's assume that my kit installs the perl module "package3-perl.rpm". Let's further assume package3-perl.rpm is dependant on package1-perl.rpm and package2-perl.rpm.

    On this install node I have two repositories one for rhel-5-x86_64 and one for centos-5-x86_64. One of them might have package1-perl.rpm installed but not package2-perl.rpm, whereas the other repository doesn't have either of the require packages. (Note: When I refer to a repository I'm talking about a specific OS. Clearly different OSs may have different packages installed by default, right?)

    This means one of three things:

    1. I need a seperate kit for each repository. And if this is the case then we need to include the name of the repository in the kit name, which is impossible since you and I can create completely differerent repositories with the same name.

    2. The kit needs to contain ever single possible package that the target package(s) are dependant on. I'm not sure that's possible, but I'd like to hear what the group has to say.

    3. The kit should include a list of depenencies, and/or the pre-install script should use CPAN to check for the the dependant packages and install them if necessary. We would want this pre-install script to be executed on the installer node at the time the kit was added.

    Which is the kusu way?

  5. #5
    mikem's Avatar
    mikem is offline Project Moderator
    Join Date
    April 10th, 2008
    Posts
    22
    Blog Entries
    9
    Downloads
    0
    Uploads
    0

    Default

    Hi,

    Quote Originally Posted by job+2 View Post
    Let's assume that my kit installs the perl module "package3-perl.rpm". Let's further assume package3-perl.rpm is dependant on package1-perl.rpm and package2-perl.rpm.

    On this install node I have two repositories one for rhel-5-x86_64 and one for centos-5-x86_64. One of them might have package1-perl.rpm installed but not package2-perl.rpm, whereas the other repository doesn't have either of the require packages. (Note: When I refer to a repository I'm talking about a specific OS. Clearly different OSs may have different packages installed by default, right?)
    I'm assuming you mean that the repositories _contain_ the two perl packages, not have them installed (little nitpick, for clarity).

    Quote Originally Posted by job+2 View Post
    This means one of three things:

    1. I need a seperate kit for each repository. And if this is the case then we need to include the name of the repository in the kit name, which is impossible since you and I can create completely differerent repositories with the same name.
    This is definitely not the case.

    Quote Originally Posted by job+2 View Post
    2. The kit needs to contain ever single possible package that the target package(s) are dependant on. I'm not sure that's possible, but I'd like to hear what the group has to say.
    Nope, only those which are not present in the repo by default (like corelibs or apache, for instance).

    Quote Originally Posted by job+2 View Post
    3. The kit should include a list of depenencies, and/or the pre-install script should use CPAN to check for the the dependant packages and install them if necessary. We would want this pre-install script to be executed on the installer node at the time the kit was added.
    This may not be the most optimal way to do this.

    Quote Originally Posted by job+2 View Post
    Which is the kusu way?
    When you run the repoman command to create a repo, the new repo contains packages from the OS kit and all the kits that have been added to the repo. On the disk, the repo itself (in /depot/repos) is a collection of symlinks to the actual package files (in /depot/kits). If the same package is found in both the OS kit and another kit, for instance, repoman will only link to one of them. I'm not sure what the order is at the moment, though I think the newer version wins, or the packages in the kit will override the package in the OS if the versions are the same.

    I admit some more complicated cases can exist like yours above, and need to be considered for future Kusu versions

+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts