Hello all, long time away form using this product but I'm back to pester you all with questions!:
Say I build a custom software delivery package called SDPackageA and then an upgrade called SDPackgeB. When I deploy the former I get an entry in the installed software treenode for SDPackageA. In Add/Remove Programs I also get an entry for SDPackageA. I then deploy SDPackageB which updates the target systems and updates SDPackageA at the target and updates Add/Remove Porgrams to only show SDPackageB. However, my installed packages node in DSM explorer now shows SDPackageA and SDPackageB installed. e.g.
How to handle this? I know there are some CA cmdline utilities I could use at the agent and script this up but is there now way to do this automatically by creating some link between the packages when created that allows software delivery to know this is an upgrade?
I wrote and published a script about 18 months ago to create a 'link' between discovered SW and installed packages, which would handle this for you. However it runs as an AM Job and uses the command line tools you mentioned. It would create an 'uninstall' record for PackageA when it is removed from the Add/Remove Programs and/or the software signature scan results.
It does take a little work to implement initially and requires updating when you need to create a link for a new package. I do wish there were a better way to do this in the GUI, but hopefully this will help.
Mapping Discovered Software to Installed Packages
Another option would be to create wrapper around your install package. The wrapper would detect if the install was an upgrade or fresh install. If upgrade send an uninstall record for the previous version.
Principal Engineering Services Architect
Mobile: +1 703 655 7161 | Richard.Lechner@ca.com
Why concerned with detected though? these are two packages being deployed form DSM explorer. For example of my Installed Packages view of a target in DSM explorer:
In reality, at the target 7.6 which was also installed by CA is not longer installed and it was upgraded to 7.15.
Exactly all you would do is send an sd unistall command from the agent. If the machines has an install record it will get unistalled from the installed sd installed table if it does not have a record the command will be ignored.
Thanks. this seems a bit of a horrible solution to scale though. Surely the ITCM should have a method of linking packages i..e
I guess the question is why do you actually need the record deleted. The record shows what was installed not what actually exists on the target itself. Often people need is the history of what was installed and when for compliance and auditing purposes. When targeting upgrades it would be any machines that does not have version b installed is the target.
But to answer your question there is no built in function. Let’s say you have 2 different install procedures in the same sd package such as “install” and “install1” If you used both procedures you will get 2 install records for the same pacakage.
I take you point. In effect 'installed Packages' node in DSM explorer is the history of what has been deployed via DSM and what was detected via SCANMSI.