Программная ссылка на двоичный файл всегда использует путь к домашней папке (вместо текущей папки)

kdevelop предоставляет этот двоичный файл AppImage:

wget -O KDevelop.AppImage https://download.kde.org/stable/kdevelop/5.1.1/bin/linux/KDevelop-5.1.1-x86_64.AppImage
chmod +x KDevelop.AppImage
./KDevelop.AppImage

Это работает хорошо. Поэтому я хочу сделать мягкую ссылку под названием kd к этому двоичному в /usr/bin Например:

/usr/bin/sudo ln -s KDevelop-5.1.1-x86_64.AppImage kd

Теперь, если я бегу kd file1, Я ожидаю, что это откроет имя файла file1 в текущей папке, но он всегда пытается открыть имя файла file1 в моей домашней папке - что не там, где должно быть.

Есть ли способ исправить эту проблему?

1 ответ

Некоторые возможные причины:

  • Приложение всегда предполагает, что вы хотите открыть файлы в вашем домашнем каталоге, эффективно или буквально предваряя $HOME к пути. Это будет ошибка в любой программе * nix, о которой следует сообщить.
  • Приложение ведет себя по-разному, когда $(basename "$0") не является KDevelop.AppImage (что сказал @Scheff).
  • Вы на самом деле работает другой kd,

Возможные обходные пути / исследования:

  • Передайте полный путь к файлу в командной строке. Если он пытается открыть / home / you // full / path / you / при условии, что он явно глючит, и у вас есть тестовый пример. Если это не так, то, возможно, есть некоторая ошибка в том, что ваш $PWD на самом деле Попробуйте проверить его значение перед запуском.
  • Симлинк с тем же именем, используя sudo ln -s KDevelop-5.1.1-x86_64.AppImage /usr/binи попробуйте запустить это. Если он ведет себя так же, вы по крайней мере доказали, что символическая ссылка не является проблемой.
  • Бежать type -a kd и убедитесь, что ваш / usr / bin / kd подходит первым. Если нет, может быть встроен псевдоним или оболочка, которая имеет приоритет.

Тем не менее, что является фактическим сообщением об ошибке?

Другие вопросы по тегам