sezanzeb / input-remapper

🎮 ⌨ An easy to use tool to change the behaviour of your input devices.
GNU General Public License v3.0
3.75k stars 155 forks source link

"Link has been severed" for systemd service files #701

Open ArtCore13 opened 1 year ago

ArtCore13 commented 1 year ago

I tried installing input-remapper on another linux device running also PopOS 22.04, just like all my devices, but while installing, no matter over terminal or .deb file, I get this error message and because of it input-remapper does not start proper. I'm using the newest version of input-remapper.

dpkg: error processing package input-remapper (--configure):
 installed input-remapper package post-installation script subprocess returned e
rror exit status 1
Processing triggers for dbus-broker (29-4build1) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu3) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu3) ...
Processing triggers for dbus (1.12.20-2ubuntu4.1) ...
Errors were encountered while processing:
 input-remapper
N: Download is performed unsandboxed as root as file '/home/tv-pc369/input-remapper/dist/input-remapper-2.0.0.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
E: Sub-process /usr/bin/dpkg returned an error code (1)
ChristinesMan commented 1 year ago

I was having some similar errors after having had the old 1.4 version installed that came from Linux Mint software center, and trying to update to 2.0. So I seem to have gotten past it, so here's how I did it.

I think you may have left off some important errors. Here's what mine was doing:

root@oldeskyrim:~/input-remapper# apt install -f ./dist/input-remapper-2.0.0.deb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'input-remapper' instead of './dist/input-remapper-2.0.0.deb'
The following additional packages will be installed:
  python3-evdev
Suggested packages:
  python-evdev-doc
The following NEW packages will be installed:
  input-remapper python3-evdev
0 upgraded, 2 newly installed, 0 to remove and 9 not upgraded.
Need to get 0 B/374 kB of archives.
After this operation, 158 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 /root/input-remapper/dist/input-remapper-2.0.0.deb input-remapper all 2.0.0 [336 kB]
Selecting previously unselected package python3-evdev.
(Reading database ... 636160 files and directories currently installed.)
Preparing to unpack .../python3-evdev_1.4.0+dfsg-1build2_amd64.deb ...
Unpacking python3-evdev (1.4.0+dfsg-1build2) ...
Selecting previously unselected package input-remapper.
Preparing to unpack .../dist/input-remapper-2.0.0.deb ...
Unpacking input-remapper (2.0.0) ...
Setting up python3-evdev (1.4.0+dfsg-1build2) ...
Setting up input-remapper (2.0.0) ...
Failed to disable unit: Unit file key-mapper.service does not exist.
Failed to stop key-mapper.service: Unit key-mapper.service not loaded.
Failed to enable unit: File input-remapper.service: Link has been severed
Failed to start input-remapper.service: Unit input-remapper.service not found.
dpkg: error processing package input-remapper (--configure):
 installed input-remapper package post-installation script subprocess returned error exit status 5
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for desktop-file-utils (0.26+mint2+vera) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu3) ...
Processing triggers for dbus (1.12.20-2ubuntu4.1) ...
Errors were encountered while processing:
 input-remapper
N: Download is performed unsandboxed as root as file '/root/input-remapper/dist/input-remapper-2.0.0.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
E: Sub-process /usr/bin/dpkg returned an error code (1)

The error "Link has been severed" led me to look for broken symlinks. I found these symlinks:

root@oldeskyrim:~# find /etc/systemd/system -name '*remap*' -ls
  5770686      0 lrwxrwxrwx   1 root     root           49 Apr 23 21:33 /etc/systemd/system/input-remapper.service -> /lib/systemd/system/input-remapper-daemon.service
  5770897      0 lrwxrwxrwx   1 root     root           49 Apr 23 21:33 /etc/systemd/system/default.target.wants/input-remapper-daemon.service -> /lib/systemd/system/input-remapper-daemon.service

The links do in fact point to files that do not exist:

root@oldeskyrim:~# ls -la /lib/systemd/system/input-remapper-daemon.service /lib/systemd/system/input-remapper-daemon.service
ls: cannot access '/lib/systemd/system/input-remapper-daemon.service': No such file or directory
ls: cannot access '/lib/systemd/system/input-remapper-daemon.service': No such file or directory

Rip it all out:

root@oldeskyrim:~# unlink /etc/systemd/system/input-remapper.service 
root@oldeskyrim:~# unlink /etc/systemd/system/default.target.wants/input-remapper-daemon.service
root@oldeskyrim:~# systemctl daemon-reload 
root@oldeskyrim:~# pip uninstall input-remapper

Shove it back in:

root@oldeskyrim:~/input-remapper# apt install -f ./dist/input-remapper-2.0.0.deb

Status is good:

root@oldeskyrim:~/input-remapper# systemctl status input-remapper.service

I started the GUI and it reports the correct version.

ArtCore13 commented 1 year ago

You are my hero! It worked great. Would be interesting to find out why on some devices it appears and not on others, all though the use the same OS. Thanks again ChristinesMan!

giorgeabdala commented 1 year ago

UoWWWOOOWWW!!! salved my night!!!!

sezanzeb commented 1 year ago

Interesting. Has the release deb file been broken? Does this require changes? Is this still happening for anyone?

ArtCore13 commented 1 year ago

Interesting. Has the release deb file been broken? Does this require changes? Is this still happening for anyone?

I tested it on a new install with popOS 22.04 and it seems to be alright now. Sorry for replying so late.