Hello all I have two questions regarding RPM packages installed during installation. First, is it possible to indicate which RPM package should be installed first or last? For example, I want an RPM package to get installed after all of the packages being installed. Second, how is it possible to specify the order in which a group of related RPM packages should be installed? For example, Xfce desktop contains ~30 RPM packages, i want to specify the installation order. Is it possible?
Best Regards Ali Majdzadeh Kohbanani
Ali Majdzadeh wrote:
Hello all I have two questions regarding RPM packages installed during installation. First, is it possible to indicate which RPM package should be installed first or last? For example, I want an RPM package to get installed after all of the packages being installed. Second, how is it possible to specify the order in which a group of related RPM packages should be installed? For example, Xfce desktop contains ~30 RPM packages, i want to specify the installation order. Is it possible?
What problems are you trying to solve?
Hello John I have built an RPM package which does some clean-ups and rewrites some special files. I want this package to get installed as the last RPM package.
Also, for a collection of packages (Xfce Desktop) genhdlist throws warnings about the order of the packages; how is it possible to mention the installation order of a collection of packages?
Best Regards Ali
On 1/17/07, John Summerfield debian@herakles.homelinux.org wrote:
Ali Majdzadeh wrote:
Hello all I have two questions regarding RPM packages installed during
installation.
First, is it possible to indicate which RPM package should be installed first or last? For example, I want an RPM package to get installed after all of the packages being installed. Second, how is it possible to specify the order in which a group of
related
RPM packages should be installed? For example, Xfce desktop contains ~30 RPM packages, i want to specify
the
installation order. Is it possible?
What problems are you trying to solve?
--
Cheers John
-- spambait 1aaaaaaa@coco.merseine.nu Z1aaaaaaa@coco.merseine.nu
Please do not reply off-list
Anaconda-devel-list mailing list Anaconda-devel-list@redhat.com https://www.redhat.com/mailman/listinfo/anaconda-devel-list
Hi,
Ali Majdzadeh wrote:
Hello John I have built an RPM package which does some clean-ups and rewrites some special files. I want this package to get installed as the last RPM package.
RPM package installation order should ideally be enforced by providing the right 'Requires' in the rpm spec file. So, in one of my previous jobs we initially tackled the problem of 'do something after everything is installed' by just creating a ^meta-package^ which had all the packages to be installed before it in the 'Requires' tag and the post-installation tasks in it's %post section. This ensured that it was installed as the last package and the tasks were run only after all packages were installed.
However as the number of packages grew, the situation got out of hand (to add to it we started relying, a tad bit too much, on rpm's ordering of %pre, %post, %preun and %postun). So, we decided to just stop relying on rpm to do everything.
We simply decoupled the 'tasks to be done post install' and the installation itself (besides the complexity of maintaining the correct order, we also required to prompt the user in the some of the post installation scripts). We did this by ensuring that a 'configuration' script has been run at least once before the application could be used (much like the vmware-*config.pl scripts bundled with VMWare products), and this 'configuration' script prompted the user to install packages that it found missing before continuing with the post-install instructions.
Contrary to the belief that users appreciate it better if installers try and do everything (installation and default configuration), so that things ^just-work^, we realized that our users preferred the new way (installation + configuration script) better.
Just my experience, YMMV.
- steve
<...snip...>
Hello Steven Thanks for your detailed description. That was very helpful.
Best Regards Ali
On 1/18/07, Steven Fernandez sfernand@redhat.com wrote:
Hi,
Ali Majdzadeh wrote:
Hello John I have built an RPM package which does some clean-ups and rewrites some special files. I want this package to get installed as the last RPM package.
RPM package installation order should ideally be enforced by providing the right 'Requires' in the rpm spec file. So, in one of my previous jobs we initially tackled the problem of 'do something after everything is installed' by just creating a ^meta-package^ which had all the packages to be installed before it in the 'Requires' tag and the post-installation tasks in it's %post section. This ensured that it was installed as the last package and the tasks were run only after all packages were installed.
However as the number of packages grew, the situation got out of hand (to add to it we started relying, a tad bit too much, on rpm's ordering of %pre, %post, %preun and %postun). So, we decided to just stop relying on rpm to do everything.
We simply decoupled the 'tasks to be done post install' and the installation itself (besides the complexity of maintaining the correct order, we also required to prompt the user in the some of the post installation scripts). We did this by ensuring that a 'configuration' script has been run at least once before the application could be used (much like the vmware-*config.plscripts bundled with VMWare products), and this 'configuration' script prompted the user to install packages that it found missing before continuing with the post-install instructions.
Contrary to the belief that users appreciate it better if installers try and do everything (installation and default configuration), so that things ^just-work^, we realized that our users preferred the new way (installation + configuration script) better.
Just my experience, YMMV.
- steve
<...snip...>
Anaconda-devel-list mailing list Anaconda-devel-list@redhat.com https://www.redhat.com/mailman/listinfo/anaconda-devel-list
On Thursday 18 January 2007 02:37, Ali Majdzadeh wrote:
I have built an RPM package which does some clean-ups and rewrites some special files. I want this package to get installed as the last RPM package.
Doesn't this belong in kickstart %post instead?
Hi Jesse I don't think so. Because this RPM is a part of an installation process. The order in which RPMs are installed is the issue, I think. Steven suggested to use Requires tag. By the way, the RPM mentioned performs some tasks regarding total modification of installation, not only some self rpm related post install tasks.
Best Regards Ali
On 1/18/07, Jesse Keating jkeating@redhat.com wrote:
On Thursday 18 January 2007 02:37, Ali Majdzadeh wrote:
I have built an RPM package which does some clean-ups and rewrites some special files. I want this package to get installed as the last RPM package.
Doesn't this belong in kickstart %post instead?
-- Jesse Keating Release Engineer: Fedora
Anaconda-devel-list mailing list Anaconda-devel-list@redhat.com https://www.redhat.com/mailman/listinfo/anaconda-devel-list
On Thursday 18 January 2007 14:47, Ali Majdzadeh wrote:
Hi Jesse I don't think so. Because this RPM is a part of an installation process. The order in which RPMs are installed is the issue, I think. Steven suggested to use Requires tag. By the way, the RPM mentioned performs some tasks regarding total modification of installation, not only some self rpm related post install tasks.
Sorry, I think you misunderstood me.
With a kickstart (scripted install), there is a %post section where you can have things done after all packages are installed, but before the reboot. Sounds like what you're trying to accomplish with a package trick, when it would be just easier to do it in kickstart %post.
Jesse Keating wrote:
On Thursday 18 January 2007 14:47, Ali Majdzadeh wrote:
Hi Jesse I don't think so. Because this RPM is a part of an installation process. The order in which RPMs are installed is the issue, I think. Steven suggested to use Requires tag. By the way, the RPM mentioned performs some tasks regarding total modification of installation, not only some self rpm related post install tasks.
Sorry, I think you misunderstood me.
With a kickstart (scripted install), there is a %post section where you can have things done after all packages are installed, but before the reboot. Sounds like what you're trying to accomplish with a package trick, when it would be just easier to do it in kickstart %post.
And, less likely to break in later releases. Kickstart's %post is using defined behaviour, whereas relying on the order of package installation order, however you try to control it, is relying on undefined behaviour.
As best I've been able to figure it, however Anaconda orders packages, it does _not_ seem to me to be based on dependencies. Logically, filesystem should be installed first (contains /usr etc). In the several nahant-clone systems I've just polled, it's early, but not first.
indexhtml gets in surprisingly early, esp considering it's so useless.
"JS" == John Summerfield debian@herakles.homelinux.org writes:
JS> As best I've been able to figure it, however Anaconda orders JS> packages, it does _not_ seem to me to be based on JS> dependencies.
It is, but the only dependencies that matter are those required to run the package scriptlets (Requires(pre):, Requires(post) and the like). Plain runtime dependencies only need to be satisfied by the end of the RPM transaction.
- J<
Hi, Jesse Keating wrote:
On Thursday 18 January 2007 14:47, Ali Majdzadeh wrote:
Hi Jesse I don't think so. Because this RPM is a part of an installation process. The order in which RPMs are installed is the issue, I think. Steven suggested to use Requires tag. By the way, the RPM mentioned performs some tasks regarding total modification of installation, not only some self rpm related post install tasks.
Sorry, I think you misunderstood me.
With a kickstart (scripted install), there is a %post section where you can have things done after all packages are installed, but before the reboot. Sounds like what you're trying to accomplish with a package trick, when it would be just easier to do it in kickstart %post.
I agree that having a kickstart %post is the probably the best way get things done after all packages are installed in an automated setup, and probably using firstboot is the way to go for non-automated installs. However, the solution I recommended was meant to solve the problem of ensuring that all packages from a set of related packages are installed and then doing some post-install tasks - and most importantly, this need not necessarily be when the *system* is installed. I don't think I said that in the clearest manner possible ...but an example should clear it up ..
$ yum install foo or $ yum groupinstall "foo"
should install all 'foo' related packages and the execute something only after the last package in the foo dependency list is installed. A meta-package 'foo' with a complete 'Requires' section and a %post fulfills this requirement.
I think that was the Ali's original intent.
I don't know much about it but I feel the yum plugin mechanism might also help here. Ali may want to investigate that.
- steve
Hello Regarding to my previous questions, I have added the output of genhdlist, when invoked like this:
$ genhdlist --productpath=Test --withnumbers --fileorder /opt/Test/pkgfile /opt/Test/i386-disc1
WARNING: ordering not found for xfprint-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfwm4-themes-4.2.2-1fdr.noarch.rpm WARNING: ordering not found for xfwm4-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce-mcs-manager-devel-4.2.2-1fdr.i386.rpm WARNING: ordering not found for libxfce4util-devel-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfdesktop-4.2.2-1fdr.i386.rpm WARNING: ordering not found for rhgb-0.14.1-9.centos4.4.i386.rpm WARNING: ordering not found for xfce4-panel-devel-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-mixer-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-icon-theme-4.2.2-1fdr.noarch.rpm WARNING: ordering not found for xfce-mcs-manager-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-trigger-launcher-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-panel-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xffm-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-session-engines-4.2.2-1fdr.i386.rpm WARNING: ordering not found for freeradius-1.0.1-3.RHEL4.3.i386.rpm WARNING: ordering not found for libxfce4mcs-devel-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce-utils-4.2.2-1fdr.i386.rpm WARNING: ordering not found for libxfce4mcs-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfcalendar-4.2.2-1fdr.i386.rpm WARNING: ordering not found for libxfce4util-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-iconbox-4.2.2-1fdr.i386.rpm WARNING: ordering not found for libxfcegui4-devel-4.2.2-1fdr.i386.rpm WARNING: ordering not found for gtk-xfce-engine-2.2.7-1fdr.i386.rpm WARNING: ordering not found for xfce4-systray-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-toys-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-session-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce4-appfinder-4.2.2-1fdr.i386.rpm WARNING: ordering not found for xfce-mcs-plugins-4.2.2-1fdr.i386.rpm WARNING: ordering not found for libxfcegui4-4.2.2-1fdr.i386.rpm WARNING: ordering not found for dbh-1.0.24-1fdr.i386.rpm WARNING: ordering not found for xfce4-session-devel-4.2.2-1fdr.i386.rpm
How is it possible to add ordering for this group of RPM packages? (Xfce Desktop)
Best Regards Ali
On 1/19/07, Steven Fernandez sfernand@redhat.com wrote:
Hi, Jesse Keating wrote:
On Thursday 18 January 2007 14:47, Ali Majdzadeh wrote:
Hi Jesse I don't think so. Because this RPM is a part of an installation
process.
The order in which RPMs are installed is the issue, I think. Steven suggested to use Requires tag. By the way, the RPM mentioned performs some tasks regarding total modification of installation, not only some self rpm related post
install
tasks.
Sorry, I think you misunderstood me.
With a kickstart (scripted install), there is a %post section where you
can
have things done after all packages are installed, but before the
reboot.
Sounds like what you're trying to accomplish with a package trick, when
it
would be just easier to do it in kickstart %post.
I agree that having a kickstart %post is the probably the best way get things done after all packages are installed in an automated setup, and probably using firstboot is the way to go for non-automated installs. However, the solution I recommended was meant to solve the problem of ensuring that all packages from a set of related packages are installed and then doing some post-install tasks - and most importantly, this need not necessarily be when the *system* is installed. I don't think I said that in the clearest manner possible ...but an example should clear it up ..
$ yum install foo or $ yum groupinstall "foo"
should install all 'foo' related packages and the execute something only after the last package in the foo dependency list is installed. A meta-package 'foo' with a complete 'Requires' section and a %post fulfills this requirement.
I think that was the Ali's original intent.
I don't know much about it but I feel the yum plugin mechanism might also help here. Ali may want to investigate that.
- steve
Anaconda-devel-list mailing list Anaconda-devel-list@redhat.com https://www.redhat.com/mailman/listinfo/anaconda-devel-list
anaconda-devel@lists.stg.fedoraproject.org