![Приложение не работает, если его нет в каталоге?](https://rvso.com/image/50565/%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B5%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%2C%20%D0%B5%D1%81%D0%BB%D0%B8%20%D0%B5%D0%B3%D0%BE%20%D0%BD%D0%B5%D1%82%20%D0%B2%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B5%3F.png)
Я пытаюсь запустить DeaDBeeF, музыкальный проигрыватель. Он работает нормально, если я нахожусь в его каталоге, но если я нахожусь в другом месте, он сообщает мне, что "не удалось найти выходной плагин". Есть ли способ заставить его искать в своем собственном каталоге вместо моего текущего рабочего каталога?
решение1
Похоже, в этой программе ошибка. Вы, вероятно, не сможете исправить ее, не изменив исходный код, но вы можете легко обойти ее, например, с помощью скрипта оболочки:
#!/bin/sh
cd /path/to/program
exec ./program "$@"
Сохраните это в /usr/local/bin
, установите правильные разрешения:
chmod 755 /usr/local/bin/myscript
chown root:root /usr/local/bin/myscript
а затем запустить этот скрипт вместо исполняемого файла программы.
Ограничением этого подхода является то, что вы больше не можете воспроизводить файлы в текущем каталоге, просто набрав их имя. Вместо deadbeef myfile.mp3
, вы можете использовать deadbeef $PWD/myfile.mp3
(сделать это, deadbeef "$PWD/myfile.mp3"
если имя текущего каталога содержит \[?*
или пробел).