NI Package Manager (NIPM)

Showing results for 
Search instead for 
Did you mean: 

How does NIPM determine what else to uninstall?

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.

0 Kudos
Message 1 of 2

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.

Bill Eisenhower
Certified LabVIEW & TestStand Developer
0 Kudos
Message 2 of 2