Are you using the Platform SDK (sfossdk) or the Application SDK (sfdk)? I’m going to assume you’re using sfdk, but if that’s not the case then you’ll need to adjust the following. Also, are you using snapshots? This is important because installing into a target doesn’t necessarily make a package available in a snapshot. To check run sfdk config and see whether snapshot is set.
If you have a local rpm package that you want to install to a target, one way to do it is like this:
sfdk engine exec sb2 -t <target> -R -m sdk-install rpm -U <file.rpm>
The -R -m sdk-install part is what gives you the root access you need.
If you’re using snapshots you should avoid installing anything into the target like this, since it will mean an important benefit of using snapshots – knowing whether you’ve captured all of the dependencies – is lost. So if you have snapshots enabled you should install into the snapshot instead. The easiest way to find the name of the snapshot in use is to do a build. The snapshot name is output right at the start, like this:
Taking snapshot 'SailfishOS-4.1.0.24-armv7hl.mb2.2LJ' of 'SailfishOS-4.1.0.24-armv7hl' target...
In this case you’d change the install command to the following:
sfdk engine exec sb2 -t SailfishOS-4.1.0.24-armv7hl.mb2.2LJ -R -m sdk-install rpm -U <file.rpm>
(i.e. use the snapshot name instead of the target name).
One other thing you could consider is using a shared output directory (see sfdk --help-all and search for SHARED), since in this case sfdk will automatically search the output directory for any build dependencies.
Please do share your experiences with Sailserver and rust, it’d be interesting to hear how things progress.

