03-31-2022 02:59 AM
Hi all,
In our company we have multiple Test Benches worldwide which have NI Software- LabVIEW, TestStand, Runtimes, Drivers like DAQmx, XNET installed on them. These Test Benches are not connected to internet so NIPM cannot reach ni.com to download software updates.
Generally, we develop LabVIEW code modules on our development PCs and distribute them as PPLs to these Test Benches using Gitlab repos.
Problem: Many times, these Test Benches have different or older versions of device drivers installed on them and hence the PPL compiled on the development PC throws compatibility issues like "LABVIEW 20xx Runtime support for DAQmx missing".
Question: How can we avoid this problem and ensure that all our Test Benches have the same versions of NI Software components.
Also, If I install new NI Software component on my Development PC eg. NI-DAQmx 21.00 then how can all Test Benches get this update in their NIPM?
Thank you,
Rahul
Certified LabVIEW Developer
03-31-2022 03:08 AM - edited 03-31-2022 03:09 AM
I'd suggest creating an nipkg that specifies all of the other packages you need, along with their specific versions. You don't need to include anything important (e.g. source code) in this, it's just a "meta package". I don't remember if from my testing you need to install something, if so, you can include a simple text file (it doesn't need contents, but a list of the files and versions might be an appropriate non-junk usage).
NI using nipkgs to distribute most of their software now makes this much easier - and if you're only targeting one setup/LabVIEW version, you could also create your own packages for VIPM packages (taking care to check licenses appropriately).
For the gitlab PPLs, as you noted in your other post here, I don't think you can currently run an NIPM feed on a GitLab hosted server, but you can run the feed somewhere within your company and download from there.
@Raul2203 wrote:
In our company we have multiple Test Benches worldwide which have NI Software- LabVIEW, TestStand, Runtimes, Drivers like DAQmx, XNET installed on them. These Test Benches are not connected to internet so NIPM cannot reach ni.com to download software updates.
I think you can mirror the NI packages on your own company server - does that solve your problem? (As in, do you have some server that you do connect the test benches to?)
Some of the comments in this thread might help with that, although I haven't tried mirroring packages, and the main point in that thread relates to using Docker, which is not so relevant for you.
03-31-2022 03:18 AM
@cbutcher wrote:
...I think you can mirror the NI packages on your own company server - does that solve your problem? (As in, do you have some server that you do connect the test benches to?)
Some of the comments in this thread might help with that, although I haven't tried mirroring packages, and the main point in that thread relates to using Docker, which is not so relevant for you.
I am working on a local repo approach as well. Creating the packages using package builder works quite well, registering the local repo on the client machine as well.
The tricky part begins, when need to specify, which packages and their dependencies should be applied to the worksstation in question.
What I am trying is to manually configure a machine setup and produce a installed package list on that base, that I can use.
What is annyoing: once you install a package from your own repo, the standard ni.com repo gets registered as well....
03-31-2022 03:21 AM
@Oli_Wachno wrote:What is annyoing: once you install a package from your own repo, the standard ni.com repo gets registered as well....
I agree this is somewhat annoying, but why is it a problem?
I've not used NIPB, so maybe this is difficult/impossible there, but if the issue is specifying versions of packages (so that the NI feed doesn't give you a newer version than you expected) you can write your own "control" file in your metapackage and specify exact versions. Then I think the NI feeds shouldn't matter. But maybe it's a different issue and something related to control, or importing, or something?
03-31-2022 03:27 AM
No show stopper, but I'd like to keep my database clean 🙂
03-31-2022
03:33 AM
- last edited on
12-08-2025
04:30 PM
by
Content Cleaner
As a PowerShell script, this might get you somewhere:
(nipkg list-installed | Out-String) -split '(\r?\n){4,}' | Where-Object { $_ -match '\S' } | ForEach-Object {
>> $lines = ($_ -split '(\r?\n){2,}') | Where-Object { $_ -match '\S' }
>> foreach ($line in $lines) {
>> $name, $version, $others = ($line -split '\t').Trim()
>> echo "$name (=$version)"
>> }}
Instead of using "echo" you could probably build them into some other structure or file you liked, and conceivably you could also nest them into an array and then flatten to get a single string (albeit, in my case, a very long one on this PC) for the "Depends:" tag.
Edit: like this:
(nipkg list-installed | Out-String) -split '(\r?\n){4,}' | Where-Object { $_ -match '\S' } | ForEach-Object {
>> $lines = ($_ -split '(\r?\n){2,}') | Where-Object { $_ -match '\S' }
>> $deps = foreach ($line in $lines) {
>> $name, $version, $others = ($line -split '\t').Trim()
>> echo "$name (=$version)"
>> }
>> $deps -join ", "
>> }
03-31-2022 03:38 AM
Thanks, dear PowerShell Wizard 🙂
03-31-2022 03:40 AM
@Oli_Wachno wrote:
Thanks, dear PowerShell Wizard 🙂
Because we're all here for the text-based programming... right? 😕
03-31-2022 03:44 AM
Well.... let me re-think 🤔..... YES!
Though we have to admit, that we're on some corner cases here, so I can somewhat understand, that features like this are not on top of the backlog...
04-06-2022 12:17 PM
Oli, regarding "What is annoying: once you install a package from your own repo, the standard ni.com repo gets registered as well." When installing software from NI.com using Browse Products tab or a downloaded online installer, NIPM automatically adds the corresponding registered feed(s) to NIPM. When installing software from a local feed or offline installer, NIPM will lazily look for the corresponding registered feed after installation to add any missing feeds to NIPM. The option highlighted below controls this behavior.