ExpressLRS / ExpressLRS-Configurator

Cross platform configuration & build tool for the ExpressLRS radio link
GNU General Public License v3.0
588 stars 128 forks source link

deb hardlink into opt assumes same filesystem , installation fails where opt and / differ #427

Open RoGoR1 opened 1 year ago

RoGoR1 commented 1 year ago

Expected Behavior

dpkg -i expresslrs-configurator_1.5.2_amd64.deb

echo $?

0

Current Behavior

dpkg -i expresslrs-configurator_1.5.2_amd64.deb

dpkg: error processing archive expresslrs-configurator_1.5.2_amd64.deb (--install): error creating hard link './opt/ExpressLRS Configurator/resources/assets/icons/64x64.png': Invalid cross-device link dpkg-deb: error: paste subprocess was killed by signal (Broken pipe... Errors were encountered while processing: expresslrs-configurator_1.5.2_amd64.deb

Steps to Reproduce

  1. mount -o loop /boot /opt # for example
  2. dpkg -i expresslrs-configurator_1.5.2_amd64.deb
  3. fails because /boot (opt) and / are not the same filesystems

Possible Solution (Not obligatory)

use a soft link: ln -s rather than a hard link ln

(don't use directories with spaces and Caps, can be problematic in Linux and is the way of the windows. Rather than using 'ExpressLRS Configurator' opt for expresslrs-configurator, expresslrs_configurator, or expresslrs. My two cents!)

I got around this bug by creating /usr/local/lib/expresslrs and creating a symbolic link for the package to install into: '/opt/ExpressLRS Configurator' -> /usr/local/lib/expresslrs

Then, on my system, because /usr/local/lib is the same filesystem as /, the hard link was successful. This is a workaround for me, I'm not recommending this as a solution. ;) Thank you!

Context

root@bam:/opt# df -lTh|egrep -v 'tmpfs|squash' Filesystem Type Size Used Avail Use% Mounted on /dev/sdc3 xfs 219G 48G 172G 22% / /dev/sdc1 ext4 974M 55M 852M 7% /boot /dev/nvme0n1p3 xfs 50G 14G 37G 27% /opt /dev/nvme0n1p2 vfat 43M 512 43M 1% /boot/efi /dev/sde btrfs 3.7T 3.3T 420G 89% /disks/raid1 /dev/sde btrfs 3.7T 3.3T 420G 89% /data/disks/slam /dev/sde btrfs 3.7T 3.3T 420G 89% /data/audio /dev/sde btrfs 3.7T 3.3T 420G 89% /home /dev/sde btrfs 3.7T 3.3T 420G 89% /home/data /dev/nvme0n1p4 xfs 1.8T 677G 1.2T 38% /home/roger

root@bam:/opt# uname -a Linux bam 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64 GNU/Linux

jurgelenas commented 1 year ago

If anyone is interested in digging into this here is the relevant electron-builder issue: https://github.com/electron-userland/electron-builder/issues/5721