Поскольку я все еще являюсь новым пользователем Linux, я все еще обнаруживаю некоторые поведения, и я не могу сказать, являются ли они "нормальными" или нет. Я искал в Интернете, но так как не могу найти ответ, думаю, пришло время спросить здесь.
Несколько недель назад я установил небольшую игру под названием «Machinarium», и я в нее поиграл ... но несколько дней спустя, когда я захотел продолжить свою игру, я не смог правильно запустить игру. И так как у меня не было времени на поиски, я сдался.
Но вчера, когда я работал над моей программой, у меня было точно такое же поведение. Поэтому я немного искал и обнаружил, что при использовании Nautilus с «представлением списка» я смог запустить программу (то есть: программа действительно находит ресурсы со звуком, изображениями и т. Д.), Когда я был буквально «внутри» исполняемая папка , но не удалось, когда я был в родительской папке и развернул ее до исполняемой папки, чтобы запустить ее.
Чтобы проиллюстрировать поведение здесь два скриншота.
Это действительно то же самое «место», но представление Nautilus немного отличается, поскольку текущая папка не совпадает, и кажется, что это имеет значение для программы.
Кроме того, когда я создаю пункты меню через Системные настройки / Главное меню для исполняемого файла, он ведет себя так же, как если исполняемый файл не может найти ресурсы (вот почему я не смог сыграть в Machinarium во второй раз, когда я создал ярлык меню после моей первой игры).
Поэтому я попросил мою программу сгенерировать текстовый файл в корневом каталоге при запуске, и я начал запускать его из разных «родительских» папок, чтобы увидеть, где генерируется текстовый файл. Каждый раз, когда файл генерировался в верхней папке текущего представления Nautilus.
Я ожидал увидеть, что он появляется в той же папке исполняемого файла (ну, не так, как я предполагал, что происходит, но до этого я ожидал увидеть, что он появляется в папке exe).
Существует деликатный вопрос здесь с ответами для давания Вам общее представление, где установить пользовательские приложения.
Для запуска приложения, исполняемый бит должен быть установлен. Это может также быть сделано от Наутилуса в меню правой кнопки (Свойства-> Полномочия).
Можно затем выполнить любой исполняемый двоичный файл или сценарий путем двойного щелчка в Наутилусе, или путем выполнения следующего в терминале (отметьте ./
команда выполнения):
./path/to/executable/application
Если Ваше приложение должно быть запущено в, он - путь, то необходимо изменить каталог на этот путь сначала путем выполнения:
cd /path/to/executable
./application
Для упрощения этого, можно также создать Средство запуска для запуска приложения (см., например, этот ответ и многие другие),
Это - то, как я сделал это с Machinarium.
Не рекомендуется поместить Вашего собственного пользователя пользовательские файлы в /usr/bin
. Этот каталог может быть перезаписан в случае, если Вы обновляете свою систему позже, и это обычно не включается в решения для резервного копирования. Вместо этого создайте новый каталог в своем корневом каталоге: ~/bin
. Необходимо повторно войти в систему для этого каталога быть распознанными.
Да. ПУТЬ содержит список путей, где команды ищутся при вводе их. Если Вы хотите выполнить команду не в пути, необходимо дать относительный или полный путь (./file
или bin/file
например).
Это поведение является, вероятно, ошибкой. Приложение, вероятно, выполняет некоторые файлы в одном из его директоров (bin/
например), но предположение этого выполняется от machinarium корневого каталога (вызовы bin/file
принятие dir находится в текущем каталоге), поэтому при выполнении его из другого каталога, файл не будет найден.
Обходное решение должно создать сценарий в ПУТИ, который вводит machinarium каталог и затем выполняет его.
#!/bin/bash
cd /path/to/machinarium
./machinarium-or-whatever
просто назовите это machinarium и подвергните его каталогу, который находится в Вашем пути (/usr/local/bin или один в Вашем / домой). Можно выполнить ту команду из любого каталога затем.