Как заставить Linux запускать через Wine профессиональный софт на примере Adobe Photoshop СС 2018 без использования инструментария Play on Linux.


Все что будет написано под катом является экспериментом который вы можете сами провернуть на своей рабочей станции с операционной системой на базе ядра Linux или на macOS кому как нравится.


Подготовка к эксперименту


Вам для начала понадобится базовый инструментарий, с которым мы будем работать.


В моем случае это:


  • Дистрибутив Archlinux. #
  • Wine Staging с поддержкой Gallium Nine, версии 3.13
    А также необходимый софт(в качестве экспериментального примера указан Adobe Photoshop СС 2018)

Первый этап


Подготовка рабочего пространства


Первое что нам необходимо сделать на данном этапе это заставить Wine сформировать рабочую директорию с необходимыми нам параметрами.


Это делается достаточно просто:
WINEARCH=win32 # или win64 в зависимости от архитектуры приложения или нужного вам окружения
WINEPREFIX=$HOME/.WineExperiment # или любой другой путь
export WINEARCH
export WINEPREFIX # либо можете сократить это дело до двух строк указав нужные вам параметры переменных окружения
wine wineboot # для создания пространства архитектуры WINEARCH в WINEPREFIX указанные и экспортированные ранее


Подготовка к установке и установка


В дальнейшем нам понадобятся инструменты winedump, grep и winetricks. #


С помощью winedump dump <установщик> -j import | grep offset находим необходимые библиотеки для работы с программой установки.


В моем случае все необходимое уже есть в стандартном окружении.


И если вам нужны компоненты для запуска установщика то вам нужно выполнить следующие строчки.


wget <ссылка из #>
chmod +x ./winetricks
./winetricks --gui # и находите нужный вам компонент

Для любопытных
Если вам нужен winetricks установленный в окружение, то, либо скачайте его в директорию $HOME/bin далее поставьте права исполнения на этот файл и затем добавьте её в переменную PATH в .bashrc, либо используйте пакетный менеджер для его установки.
В своём случае применяю универсальный метод доступный во многих дистрибутивах:
pkcon install winetricks

Попробуем запустить установщик используя WINEDLLOVERRIDES=winemenubuilder.exe=d wine <установщик>.


Для любопытных.
Вы в праве использовать WINEDEBUG=info для обнаружения ошибок в работе установщика.

Для незнающих
WINEDLLOVERRIDES=winemenubuilder.exe=d отключает создание ярлыков и типов.

Второй этап


Запуск и поиск проблем


Для этого этапа нам понадобятся те же инструменты что используются в первом этапе.


Запускаем wine cmd для входа в рабочее окружение.
С помощью команды cd переходим в папку с программой и запускаем её.


В случае необходимости входим или регистрируемся. В своём случае я использую эту программу в пробном режиме ибо денег нет.


И он у меня запускается и работает без пинков, но не все так гладко как казалось.


Photoshop увидел, что я использую графическую карту с недостаточным количеством видеопамяти, а следовательно от некоторых функций мне придётся отказаться таких, как 3D и небольшого количества фильтров.


Решение
./winetricks settings videomemorysize=512 # надеюсь вы его установили или скачали

По закрытию Photoshop выдал ошибку в подпрограмме CEPHtmlEngine.


Решение
Эта ошибка появляется лишь единожды. Её вы можете игнорировать.

Отчет


В рамках этого эксперимента можно убедиться в работоспособности программного обеспечения на платформе являющейся явно несовместимой для запуска со стандартными настройками.
Но как следует из эксперимента, проблем требующих от пользователя каких либо действий не было, я умышленно не считаю проблемы связанную с графической картой и там где решением является просто закрытие окна отчета об ошибке как ту, что требует дополнительных действий.


P.S.


Пишите в комментариях если что-то не понятно будем разбираться сообща или наоборот, чтобы дополнить текст статьи вашим предложением.


Спасибо за потраченное вами время.

Комментарии (27)


  1. Djaler
    29.08.2018 22:07

    А зачем делать это без PoL? Который, по сути, делает сам всё то же? Только все эти нюансы уже учтены до вас для множества популярного ПО


    1. POS_troi
      29.08.2018 22:26

      Я лично не вижу смысла отказываться от PoL по той причине, что он даёт удобный способ управления версиями wine.


    1. atamanenko
      29.08.2018 23:56

      Видимо, чтобы делать это для того софта, которого нет в PoL


    1. AntonAlekseevich Автор
      30.08.2018 10:14

      А зачем делать это без PoL?

      Цель эксперимента, понять как работают за кулисами сам инструментарий.


      Только все эти нюансы уже учтены до вас для множества популярного ПО

      Согласен, что нюансы учтены для популярного ПО, но сам инструментарий предполагается использовать для игрового программного обеспечения несмотря на то что в каталоге иного ПО есть достаточно весомое количество включая Photoshop(правда он не той версии что рассматривается в эксперименте).


  1. rt3879439
    29.08.2018 22:54

    Когда-то я надеялся увидеть подобную инструкцию. И вот, спустя годы, моё желание сбылось. Спасибо.


    1. AntonAlekseevich Автор
      30.08.2018 10:26

      Я же надеюсь, что люди продолжат данную тематику.
      Может так дойдёт и до любимых многими современных и не очень игрушек и средств разработки.


  1. demimurych
    30.08.2018 01:17

    Простите, но работа в Photoshop не ограничивается событием Запуск. И если Вы считаете что запустив его Вы справились с задачей, то вероятно вас ждет масса сюрпризов.

    Настоятельно рекомендую Вам посадить в такое окружение дизайнера, который привык часами выполнять типовые задачи.

    А потом с удовольствием почитаю Вашу, расширенную новым опытом, инструкцию.


    1. AntonAlekseevich Автор
      30.08.2018 09:46

      Полностью с вами согласен, что работа не ограничивается запуском.
      И согласен с тем, что будут сюрпризы в работе.


      Насчёт рекомендации посадить в такое окружение дизайнера, да это было бы не плохо.


  1. savostin
    30.08.2018 13:10

    И он у меня запускается и работает без пинков

    Когда без пинков, то статью писать нет смысла. Весь смысл именно в пинках…


    1. AntonAlekseevich Автор
      30.08.2018 13:44

      Когда без пинков, то статью писать нет смысла. Весь смысл именно в пинках…

      Я писал статью по ходу самого процесса. Ну, а то, что пинков практический не было, лишь обозначает, что выбор комплекта ПО оказался верным. Что на самом деле редкость.
      Но замечу что это лишь верхушка айсберга, самое интересное и важное внизу под водой в процессе работы, а для этого нужно найти дизайнера, который захочет стать за бесплатно подопытным.


  1. Softer
    30.08.2018 13:40

    CUDA в такой конфигурации работает?
    А так спасибо за статью, узнал пару интересных приемов :)


    1. AntonAlekseevich Автор
      30.08.2018 13:49

      CUDA в такой конфигурации работает?

      К сожалению, я не обладаю графическими ускорителями Nvidia. (Сам обладаю интегрированной в чипсет Intel G31 Express Graphics.)
      Поэтому понятия не имею. Буду рад если CUDA будет работать.


      1. Softer
        30.08.2018 13:52

        Увы, это была единственная причина почему подобная связка мне не подошла… Жена занимается ретушью и когда открыается жирная RAW-ка… Работать… «не совсем комфортно» :)
        Если будет время — попробую повторить это опыт и посмотрю что там с кудой…


        1. Mogwaika
          30.08.2018 15:39

          +
          В этом же проблема работы васяких фотошопов на виртуальной машине…
          Альтиум вообще что-либо графическое отказался показывать внутри virtualbox-а.


  1. Sfinx88
    30.08.2018 19:40

    Мне вот интересно — а зачем?
    Зачем запускать программу в неродном окружении? Поставить win в dual boot не судьба?
    И как насчет профессиональных программ чуточку менее распространенных чем photoshop?
    Автору — установить и запустить в вайне TIA portal от siemens. Попробовать сделать проект, и загрузить его в контроллер.


    1. AntonAlekseevich Автор
      30.08.2018 20:23

      Мне вот интересно — а зачем?

      Цель эксперимента, понять как работают за кулисами сам инструментарий. Что было указано в моем ответе на первый комментарий.


      Зачем запускать программу в неродном окружении?

      Вот к примеру от вас потребовали(а вы допустим не можете сделать реверс-инженеринг из-за нехватки времени) чтобы некий софт работал на платформе операционных систем на базе ядра Linux так, чтобы не запускать виртуальную машину или не перезагружаться специально на Windows.


      Поставить win в dual boot не судьба?

      Вот скажи зачем мне Windows если я избавляюсь от использования данной ОС, но не отказываюсь от программ написанных для неё.


      И как насчёт профессиональных программ чуточку менее распространённых чем photoshop?

      Например, Autodesk AutoCAD я так понимаю или что-то наше Российское к примеру АСКОН Компас-3D? (И это не обязательно CAD.)


      Автору — установить и запустить в вайне TIA portal от siemens. Попробовать сделать проект, и загрузить его в контроллер.

      Буду рад исполнить данный вызов и расписать что было сделано и на какие грабли я наступил, при условии если у меня будет таковой контроллер.


      1. firedragon
        30.08.2018 20:37

        Как вы избавляетесь от windows?
        В вайне все библиотеки самописные?
        gdi32.dll
        Вот вот. Теперь переходим к вопросу, можно ли это использовать легально.


        1. Fracta1L
          30.08.2018 20:49

          Да, самописные.


          1. firedragon
            30.08.2018 21:05

            И ссылка есть? Я, в общем то, неспроста про gdi спросил, это довольно сложная тема даже для производителя.

            Functionality

            An animation showing progress in application compatibility according to test results from Wine AppDB (click on the picture to see the animation).
            Software that runs flawlessly («Platinum»)
            Software that runs flawlessly with configuration («Gold»)
            Software with minor Issues («Silver»)
            Software with major Issues («Bronze»)
            Unusable software («Garbage»)
            The developers of the Direct3D portions of Wine have continued to implement new features such as pixel shaders to increase game support.[49] Wine can also use native DLLs directly, thus increasing functionality, but then a license for Windows is needed unless the DLLs were distributed with the application itself.


            1. Fracta1L
              30.08.2018 21:29

              Wine can also use native DLLs directly

              Да, он can их use, если их подсунуть ему через winetricks или вручную. А собственная кодовая база Wine разработана самостоятельно с нуля. Вот исходники gdi32.dll:

              github.com/wine-mirror/wine/tree/master/dlls/gdi32

              Можете сравнить их с исходниками виндовой библиотеки и убедиться, что код написан с нуля XDD


              1. firedragon
                30.08.2018 22:17

                MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE



              1. firedragon
                31.08.2018 09:56

                Дело не в этом. Имитация поведения, даже если это реверс методом черного ящика, все равно подпадает под нарушение лицензии.
                Впрочем есть и другое соображение. Любая служба поддержки скажет: Мы не поддерживаем вашу платформу, установите программу на рекомендованную версию операционной системы.


                1. Fracta1L
                  31.08.2018 11:35

                  Имитация поведения, даже если это реверс методом черного ящика, все равно подпадает под нарушение лицензии.


                  Откуда инфа?


                  1. firedragon
                    31.08.2018 13:08

                    www.microsoft.com/en-us/Useterms/Retail/Windows/10/Useterms_Retail_Windows_10_English.htm

                    И из юридических отделов многих фирм. По сути на каждое соединение нужна лицензия.


        1. AntonAlekseevich Автор
          30.08.2018 21:26

          Как вы избавляетесь от windows?

          Просто не пользуюсь Windows. Как минимум.


          В вайне все библиотеки самописные?

          Да, самописные, но есть возможность подключать внешние библиотеки через конфигуратор Wine или через DllOverride в реестре.


          Теперь переходим к вопросу, можно ли это использовать легально.

          Да, использование Wine легально, но для самих библиотек подключенных внешне нужно читать лицензионное соглашение и исполнять его условия.


          1. Exchan-ge
            31.08.2018 01:32

            Просто не пользуюсь Windows. Как минимум.


            Это самоцель?


  1. timdorohin
    30.08.2018 20:30

    Вы можете, пожалуйста, протестировать Cinema 4D r17/r18
    Я до сих пор не понял как обойти тот чертов баг с OpenGL и полностью черной рабочей областью.