× К оглавлению На главную Об авторе

Дата и время публикации:

Проблема и решение


1.Суть проблемы?

Часто после установки через Wine приложений из пула программ MS-Windows, у них не работают ярлыки запуска, которые представлены файлами с расширением .lnk.

Примечание Файл LNK является расширением файла ярлыка (англ. shortcut file)окружения рабочего стола ОС MS-Windows, которое позволяют запускать исполняемые файлы из другого места. Механизм запуска приложения через данный файл является нечто похожим на использование файловых символьных ссылок в Linux, которые позволяют не дублировать запускаемое приложение полностью, а только лишь его путь. Последний будет прочитан интерпретатором команд и запущен.

Так, после размещения на диске программы MetaTrader5 согласно инструкции для продвинутых пользователей, все попытке повторно запустить её, натыкались на ошибки типа "Файл не найден" или "Путь не найден", как показано на рисунке 1.1

Рисунок 1.1

2. Её решение

2.1 Открываем на редактирование кнопку-запуска Gnome, файл MetaTrader5.desktop , показанный на рисунке 1.1. Например, в редакторе gedit, как показано на рисунке 2.1

Рисунок 2.1

2.2 Копируем выделенную строчку в программу gnome-terminal (далее именуемую консоль), как показано в дампе 2.2

Дампе 2.2

 

[user@home ~]$  WINEPREFIX="/home/olga/.wine" wine-development C:\\\\windows\\\\command\\\\start.exe /Unix /home/olga/.wine/dosdevices/c:/users/Public/Рабочий\\ стол/MetaTrader\\ 5.lnk

Соответственно, попытка запуска заканчивается массированным выводом на экран, всплывающих сообщений Gnome (англ. popup error message).

2.3 В виду сложности применяемой конструкции, показанной в дампе 2.2, переходим к декомпозиции задачи поиска неисправности, а по простому отделяем яйца от курицы, зерна от плевел, а моряков от салаг...

На самом деле производим морфологический разбор сообщения, так в дампе 2.3 показана только первая часть витиеватой команды из дампа 2.2

Дампе 2.2

 

[user@home ~]$  WINEPREFIX="/home/olga/.wine" wine-development C:\\\\windows\\\\command\\\\start.exe

Запускаем её и наблюдаем приглашение командной строки WINE показанной на рисунке 2.4

Рисунок 2.4

Затем, анализируем оставшуюся часть, но в консоли с использованием LS(1), как показано в дампе 2.5

Дампе 2.5

 

[user@home ~]$ ls /home/user/.wine/dosdevices/c:/users/Public/Рабочий\\ стол/MetaTrader\\ 5.lnk
ls: невозможно получить доступ к '/home/user/.wine/dosdevices/c:/users/Public/Рабочий\': Нет такого файла или каталога
ls: невозможно получить доступ к 'стол/MetaTrader\': Нет такого файла или каталога
ls: невозможно получить доступ к '5.lnk': Нет такого файла или каталога

Из которого видно куча предупреждений, которые заключаются в отсутствие экранирования двоетояие (:) и пробелов в названии директории рабочего стола и названии файла-ярлыка MetaTrader\\ 5.lnk . В дампе 2.6 приведен правильный путь,полученный с использованием клавиши TAB при его наборе на критических участках ввода.

Дампе 2.6

 

[user@home ~]$ ls /home/user/.wine/dosdevices/c\:/users/Public/Рабочий\ стол/MetaTrader\ 5.lnk
'/home/olga/.wine/dosdevices/c:/users/Public/Рабочий стол/MetaTrader 5.lnk'

После чего можно смело формировать новую строчку Exec=env, которая показан в строке 3 листинга 2.7

Листинг 2.7

 

. . .
 3 Exec=env WINEPREFIX="/home/olga/.wine" wine-development C:\\\\windows\\\\command\\\\start.exe /Unix /home/olga/.wine/dosdevices/c\:/users/Public/Рабочий\ стол/MetaTrader\ 5.lnk
. . .

$\infty$

 

3. Библиография


3.1 FILExt.Opening an LNK File