02-18-2021 12:51 PM
Noticed when doing an "nipkg.exe remove {package_name}" operation that it ended up removing some additional packages, specifically "ni-datasocket" and "ni-opcenum".
The following packages will be removed: {internal component we were intentionally removing}, ni-datasocket, ni-opcenum
According to our package repository (using the "nirepo/v1/packages" API), I see
"attributes": { "Architecture": "windows_all", "CompatibilityVersion": "200601", "Depends": "ni-datasocket, ni-labview-2019-runtime-engine-x86",
So it's unclear to me why "ni-opcenum" got involved at all.
And why did "ni-datasocket" get removed? I don't want that to happen. We often install multiple packages on a given machine, and multiple might depend on that. If I wanted it removed, I would do so explicitly.
It didn't automatically remove the runtime engine, so is there something special about that package vs. ni-datasocket? Is there anything else we need to do to make sure nipkg doesn't do more than we asked it to?
It's also frustrating that it proactively *removed* ni-datasocket when we removed our custom internally-built package, but later when we tried to reinstall our package, it complained that "ni-datasocket" isn't installed. So, it appears to be smart enough to *remove* dependencies, but not smart enough to *install* them? That seems backwards.
02-19-2021 07:40 AM
From my experience, NIPM will uninstall a dependency package if they are not a dependency for any other packages that will remain installed. I agree we should be an option to not remove unspecified packages.