NI Package Management Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Eric.M

Automatically install NI dependencies from NI Package Manager

Status: Looking for Maintainer(s)

Hi everyone,

 

I'm happy to announce that this feature can be found in the newest NIPM release (20.0). If a package depends on a package that is hosted on ni.com (e.g. LabVIEW NXG Run-Time), then NIPM will find that package at installation, register the feed that contains that package so that NIPM can find it, and then install it.

 

NOTE: This is not supported when installing through the NIPM CLI (nipkg.exe). This only works when installed via the UI, which can be invoked in many ways - e.g. double-clicking the .nipkg directly, from a package installer, running the NIPM UI in Command Mode, from the Packages tab after registering the feed containing the top-level package.

 

Enjoy!

 

Aaron Peña

Productization Lead, Package and License Management

National Instruments

 

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.

15 Comments
APena
Member
Status changed to: Looking for Maintainer(s)

Hi everyone,

 

I'm happy to announce that this feature can be found in the newest NIPM release (20.0). If a package depends on a package that is hosted on ni.com (e.g. LabVIEW NXG Run-Time), then NIPM will find that package at installation, register the feed that contains that package so that NIPM can find it, and then install it.

 

NOTE: This is not supported when installing through the NIPM CLI (nipkg.exe). This only works when installed via the UI, which can be invoked in many ways - e.g. double-clicking the .nipkg directly, from a package installer, running the NIPM UI in Command Mode, from the Packages tab after registering the feed containing the top-level package.

 

Enjoy!

 

Aaron Peña

Productization Lead, Package and License Management

National Instruments

 

CL_eisenwr
Active Participant

Aaron,

Are there any plans to extend this to the NIPM CLI? I do not think that it only be available via the GUI will be an issue for me yet. I think as people start automating more via the CLI, it would be helpful to have that functionality as well.

__________________________________
Bill Eisenhower
Certified LabVIEW & TestStand Developer
APena
Member

Hey Bill,

 

Not at the moment, but I'm definitely open to exploring that option if people feel it would add significant value for their workflows.

 

Aaron Peña

Productization Lead, Package and License Management

National Instruments

CL_eisenwr
Active Participant

Aaron,
Actually you might need to add it. We should be able to call the NIPM GUI from the command line and get it to do the install. 

 

From NIPackageManger.exe /?

 COMMAND MODE SPECIFIC OPTIONS-----------------------------------------------------------------
         Command Mode is a special mode that NI Package Manager can be run in if it is invoked
         with one or more commands listed below. Command mode runs a transaction with graphical
         progress and then exits when it is complete. By default, user interaction is required
         from the user but this can be suppressed with a command mode specific option listed below.

         You cannot mix the following options with Browse Mode specific options
   ----------------------------------------------------------------------------------------------

   NIPackageManager.exe [command ...] [option ...]

   COMMANDS:
      install PKG1 ...
         Installs a package and its dependencies.
      upgrade PKG1 ...
         Upgrades an installed package if an upgrade is available.
      remove PKG1 ...
         Removes a previously installed package.
      launch PKG
         Launch the application installed by a given package. This command only works for packages
         that support launching an executable.

   OPTIONS:
      --progress-only
         Runs in a non-interactive mode where the user only sees graphical progress. Will reboot
         WITHOUT prompting unless --prevent-reboot flag is specified. The --accept-eulas flag may
         also be necessary for the transaction.
      --display-all-packages
         Override the user settings for the session and display all packages on the summary.
      --force-locked
         Force the installation of locked packages.
      --force-essential
         Force the installation of essential packages.
      --accept-eulas
         Allows the installation of packages in progress-only command mode.
      --update-feeds
         Update feeds before launching any windows.
      --feeds="<feed-name>[,"<feed-name>[...]]
         Specify which feeds to use for installing or updating a package. If specifying
         multiple feeds, separate with commas but do not include spaces.
      --temp-feeds="<feed-path>[,"<feed-path>[...]]
         Specify which feeds to temporarily register for installing or updating a package.
         If specifying multiple feeds, separate with commas but do not include spaces.

 

__________________________________
Bill Eisenhower
Certified LabVIEW & TestStand Developer
APena
Member

Hi Bill,

 

If you call NIPM via Command Mode (NIPackageManager.exe install foo.nipkg), then it will utilize this functionality.

 

The CLI I'm referring to that will not work is the nipkg.exe CLI.

 

 - Aaron