NI Package Management Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 

Automatically install NI dependencies from NI Package Manager

With the NI Package Manager we can now create packages for a variety of purposes (libraries, tools, APIs, stand-alone applications, plugins...).

 

However, there's currently a limitation with the dependencies. For example, if you want to create a .nipkg file that relies on the LabVIEW Runtime Engine that successfully deploys to any PC, you have 2 choices:

- manually install the LV RTE from NIPM on the deployment machine

- add the LV RTE (and your app) to a custom feed, and manually add that feed to NIPM on the deployment machine.

 

In any case, there's a manual operation for a user. This is because NIPM does not automatically search for NI feeds when installing a custom package (it only looks into already installed feeds).

 

There should be (at least) an option like this in NIPM (ideally it should be the default behavior)!

NIPM Options.png

 

This way, NIPM would behave pretty much like any other package manager (think Linux or mobile platforms)...

 

Useful links:

https://forums.ni.com/t5/SystemLink/Use-the-NI-feeds-to-find-package-dependencies/td-p/3811361

https://forums.ni.com/t5/NI-Package-Management/NI-Package-Management-Portal-READ-THIS-FIRST/ta-p/380...

 

--Eric

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

8 Comments
Member

Just properly use the operating system's native package manager (eg, apt, yum, ...)

Properly package everything for the distro, decleare dependencies, etc - and it will do it completely automatically.

 

That's how things are working for over 20 years in GNU/Linux world.

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
Active Participant

Yeah sure, if there was a global, decent, usable package manager in Windows to use for whoever is not a developer... You know, with a clear and intuitive UI so the user does not get drowned in shell commands (think apt/yum/rpm/opkg/choco...) Smiley Very Happy

Also NIPM could specifically address software packaging for a whole market/industry if it's done correctly so I'll go ahead and give it a chance - it's still a young product.

 

Edit: I haven't looked at chocolatey for a while and it seems like it got in a pretty good shape! Worth taking a look Smiley Happy

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

Member

There are existing package managers for Windows: apt-cyg, sage, choco, pacman, etc. (I'd pick one that's supporting .deb/apt format natively)

And yes: there also exists GUIs for them.

 

It also shouldn't be the big deal to port the complete apt toolchain to win32 (eg. via mingw32/msys). At least less than completely reinventing the wheel. It's been many years since I last touched that toy platform, but I wouldn't need more than 6 month (yes: me alone).

 

I don't really see any value for reinventing the wheel over and over again, instead of just using standard technology.

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
Active Participant

I think this request should be generalized. I realize possibly that NI feeds are special and would contain the drivers and tools that we often need. However, I think the fundamental design issue is that NIPM only looks for dependancies within the feed where the parent package came from? Correct me if I'm wrong.

 

So perhaps a modification of this request would be to allow dependancies to be searched from across multiple feeds. But how this would be controlled by the end user, i'm not sure. Perhaps a list of all the feeds with checkboxes.



Michael Aivaliotis
VI Shots LLC
Active Participant

A package can search for dependencies in other registered feeds in NIPM. However, in a classic case described above, where you want your custom package to also install NI drivers/utilities on a PC that does not have these installed (and their feeds not registered), it just fails.

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

Member

+1 for this idea.

 

As a workaround:

1. During the build generate the list of required URI feeds (except those that are included by default in NIPM), required for resolving dependencies for the software from NI - like list-source-feeds command

2. (Optionally) Have a web-page (with a search input) to search for packages from NI. Provide user-friendly (or developer-friendly) snippets to register to those feeds:

 

"C:\Program Files\National Instruments\NI Package Manager\nipkg.exe"  feed-add -s -n="ni-runtime-engine-labview2018-feed" https://ni.com/nipm/feeds/ni-runtime-engine-labview2018-feed && "C:\Program Files\National Instruments\NI Package Manager\nipkg.exe" update "ni-runtime-engine-labview2018-feed"

 

Nikita Prorekhin
CLA
Member
Status changed to: Under Consideration
 
Member

I would also like an option to add a list of dependent feeds before a package gets installed. We could do this now if there was someway to run a batch file before a package checks for dependencies. Clearly NI has this functionality as that is what happens when you install a new product in NIPM. This would let us get around the NI feed issue but also allow us to use other internal dependent feeds.