The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен WiX.Py 0.1, кроссплатформенный сборщик MSI-инсталляторов

15.09.2018 00:03

Подготовлен первый релиз WiX.Py, сборщика MSI-инсталляторов, предоставляющего возможность собирать MSI-пакеты для кроссплатформенных приложений без использования выделенного сервера на базе Windows, а также позволяющего проводить сборку в Docker-контейнерах. Применение WiX.Py позволяет сэкономить на инфраструктуре проекта и ускорить сборки с использованием систем непрерывной интеграции. Код проекта написан на языке Python и распространяется под лицензией GPLv3.

При запуске на Unix-системах для генерации MSI-инсталляторов используется библиотека libmsi, а в окружении Windows вызывается штатная библиотека msi.dll. По сравнению с обёртками для WiX (python-wix, go-msi, electron-wix-msi и т.п.), WiX.Py работает как самодостаточное консольное приложение. Поскольку WiX.Py написан на Python, его можно использовать как пакет в сборочных скриптах и при необходимости самостоятельно расширять функциональность. В отличии от WiX (стандарт в области сборки MSI), WiX.Py не требует гигантских сборочных XML-файлов и сильно упрощает подготовку MSI-инсталляторов для средних и мелких проектов.

  1. Главная ссылка к новости (https://wix.sk1project.net/...)
  2. OpenNews: Уязвимость в gnome-exe-thumbnailer, позволяющая выполнить код при просмотре каталога с MSI-файлом
  3. OpenNews: Microsoft разрабатывает открытый APT-подобный пакетный менеджер для Windows
  4. OpenNews: Microsoft выпустила открытый пакетный менеджер для приложений .NET
  5. OpenNews: Представлен Calamares 1.0, независимый от дистрибутивов фреймворк для построения инсталляторов
  6. OpenNews: Представлен новый инсталлятор для серверной редакции Ubuntu
Автор новости: sK1 Project
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49275-wix
Ключевые слова: wix, intall, msi, windows
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Петр Петр (?), 08:16, 15/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Кому в 2018 нужны эти самые MSI-пакеты?
     
     
  • 2.3, A.Stahl (ok), 08:33, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Пользователям Винды.
     

  • 1.2, Аноним (2), 08:20, 15/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чего не на Go?.....
     
     
  • 2.5, sK1 Project (?), 09:38, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если скомпилированный бинарник, то про использование как пакет и модификацию под свои нужды в скриптах можно забыть.
     
     
  • 3.29, Аноним (2), 15:02, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А кому кроме программистов скрипты нужны как скрипты? Традиционной подход - собрать бинарник
     
     
  • 4.31, sK1 Project (?), 15:07, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    а сабж и предназначен для девопсов :) Инструмент разработки - это не приложение для широкого круга пользователей.
     
     
  • 5.37, Аноним (37), 15:36, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Собрал - скомпилировал. Девопсы сейчас на go сидят.
     
     
  • 6.38, sK1 Project (?), 17:18, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ну ок, а с питоном и собирать не надо - унаследовался от базового класса и расширяй функционал насколько фантазия позволяет. Тем более, что го и классов то не имеет :)
     

  • 1.4, Аноним (4), 09:06, 15/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > гигантских сборочных XML-файлов

    Ну в общем WiX на минималках, окей.

     
     
  • 2.6, sK1 Project (?), 09:41, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Тип таво - минимум необходимой для сборки информации. У WiX явный оверхед с XML.
     
     
  • 3.8, Аноним (8), 10:04, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > У WiX явный оверхед.

    Тут надо было поставить точку.

     
     
  • 4.10, sK1 Project (?), 10:28, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Намекаете, что у WiX гораздо больше возможностей? :) На самом деле что WiX, что WiX используют на винде одну и ту же msi.dll, у которой очень простой интерфейс. Поэтому нехватающие в WiX.Py фичи легко скриптуются. WiX не поскриптуешь - использовать можно только то, что саппортится конкретной версией.
     
     
  • 5.23, Аноним (23), 12:22, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    да как бы исходник WiX'а - это просто XML, её генерить можно чем угодно, и в составе викса есть немного тулов для этого. ещё там можно добавлять данные прямо для сырых таблиц, а ещё под вендой есть встроенный барсик и жаба-скрипт, которые позволяют легко автоматизировать как сборку пакета, так и его конфигурацию (плуг для визуальной студии откровенно убог)
     
     
  • 6.33, sK1 Project (?), 15:11, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно, не спорю. Но для сложных фич вам придется забурится в специфические знания по регистри и msi. С неменьшим успехом это имплементиться на питоне на базе wixpy. А для тривиальных проектов вполне хватает коротенького JSON'а для WiX.Py, который тоже можно генерить из чего угодно.
     
  • 6.36, sK1 Project (?), 15:25, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И опять же, чтобы запихнуть WiX в CI типа Travis/drone да еще и под Docker, вам придется ну оооочень извратиться (и не факт, что заведется под Mono или wine). WiX.Py отлично собирает кроссплатформ, тратя на создание MSI буквально десятки секунд. И без выделенного Windows-сервера.
     

  • 1.12, mimocrocodile (?), 10:47, 15/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если учесть, что wix - это windows installer xml, то получается немного странное название.

    А вообще не понятно зачем именно msi?

     
     
  • 2.13, sK1 Project (?), 10:57, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    WiX.Py внутри строит модель WXS документа (кстати, можно сохранить в xml). И на основе ее генерирует MSI пакет. Ксательно "почему msi" - разве в винде уже завезли что-то другое в качестве пакетов?
     
     
  • 3.15, mimocrocodile (?), 11:04, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всё что угодно в принципе, msi так и не прижился в качестве единственного формата установщика.
    Теоретически он даёт декларативное описание установщика, но на практике всё равно его надо подпирать как сверху (UI) так и снизу (custom actions).

    В качестве кросс-платформенных альтернатив есть NSIS, у него конечно свой наркоманский синтаксис, но для простых задач сойдёт.

     
     
  • 4.16, sK1 Project (?), 11:16, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    UI в MSI тоже декларативный. Его генерацию прикрутим в следующей версии. Касательно exe-инсталлеров - несекюрная это вещь. MSI это просто пакет, а не исполняемый бинарь. И я бы сказал, движение нонче в сторону MSI, а не exe-инсталлеров.
     
     
  • 5.21, mimocrocodile (?), 11:53, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Касательно exe-инсталлеров - несекюрная это вещь. MSI это просто пакет, а не исполняемый бинарь.

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

    > И я бы сказал, движение нонче в сторону MSI, а не exe-инсталлеров.

    Этому движению уже 19 лет, но воз и ныне там.

     
     
  • 6.35, sK1 Project (?), 15:15, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    MSI пакет с произвольным кодом - это авторство создателя пакета. А exe-бинарь, зараженный трояном или еще какой малварью - это уже и без автора может быть.
     
     
  • 7.54, J.L. (?), 17:11, 24/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > MSI пакет с произвольным кодом - это авторство создателя пакета. А exe-бинарь,
    > зараженный трояном или еще какой малварью - это уже и без
    > автора может быть.

    а вирь не могёт изменить код внутри msi-пакета? внутри незапароленных архивов вирьё заражать умеет

     
  • 4.19, sK1 Project (?), 11:42, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Относительно custom actions, их часто используют не по делу. Просто от незнания возможностей MSI. МС навернула в MSI очень много чего и из-за обилия фич народ просто не в курсе всех возможностей.
     
  • 4.24, Аноним (23), 12:26, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > на практике всё равно его надо подпирать как сверху (UI) так и снизу (custom actions)

    для большинства случаев встроенного гуя и функционала более чем достаточно, красота и костыли нужны только лишь когда у вас есть что-то настолько необычное, что требует реально нестандартных настроек. и таки wix позволяет накидать гуй буквально на коленке, используя .net + WPF (эдакий легковесный аналог QT quick)

     
     
  • 5.40, Аноним (40), 18:32, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > используя .net + WPF (эдакий легковесный аналог QT quick)
    > .net + WPF
    > легковесный аналог

    Боюсь спросить, что у вас считается нормальным или тяжеловесным.

     
  • 2.43, Badmanner (?), 00:33, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Для Windows GPO, например.


    Zabbix Agent

    http://www.suiviperf.com/zabbix/index.php

     

  • 1.14, Celcion (ok), 11:03, 15/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Мне вот интересно - когда на бидоне уже операционку напишут? Сколько можно на эти мелочи размениваться?
     
     
  • 2.17, sK1 Project (?), 11:18, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Побойтесь бога, для операционки только модный JS! :) Питон это унылый продакшин.
     
  • 2.22, Необъективный_ (ok), 12:04, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Мне вот интересно - когда на бидоне уже операционку напишут?

    * Pycorn OS
    * Cleese
    * Python OS Project (POP)
    * И т.д..

     
     
  • 3.30, Аноним (30), 15:04, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну а в принципе, ничего удивительного. Ведь, есть и компиляторы Питона: PyPy, Shedskin (с этим ваще через промежуточный C++ в машинный код  можно).
     

  • 1.26, Аноним (40), 13:12, 15/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > При запуске на Unix-системах для генерации MSI-инсталляторов используется библиотека
    > WiX.Py is a cross-platform standalone application. It may run on Microsoft Windows and Linux platforms

    Ваша Unix система может быть любого цвета …

     
     
  • 2.32, Аноним (30), 15:07, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сомнительно, что libmsi нельзя будет собрать на FreeBSD. Ну если сейчас не получится, то в следующих версиях исправят.
     
     
  • 3.34, sK1 Project (?), 15:12, 15/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    есть сборки и под макось, только смысла в них немного.
     

  • 1.44, Аноним (44), 00:55, 17/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Здравствуйте, это канал по открытому ПО? Как собрать msi под FreeBSD?
     
     
  • 2.45, sK1 Project (?), 01:24, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А чо, надо? А если найдем? :)
     
  • 2.47, Аноним (40), 15:18, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Здравствуйте, это канал по открытому ПО? Как собрать msi под FreeBSD?

    Закрыть путтиэкзе и запустить нативно.


     

  • 1.46, Аноним (46), 13:52, 17/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не увидел указание поля Product GUID, только UpgradeCode. Или оно из UpgradeCode берется при сборке?
     
     
  • 2.48, sK1 Project (?), 16:01, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Product GUID генерится внутри произвольный. В скриптах WiX его часто ставят как "*". Для апгрейда важен только UpgradeCode.
     
     
  • 3.49, Аноним (49), 16:14, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Понятно. То есть для дальнейшей работы его выдирать придется из уже готового MSI.
     
     
  • 4.50, sK1 Project (?), 16:20, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если у вас есть пояснение, зачем вам Product GUID - сделайте фичереквест: вывести его на уровень исходных параметров несложно.
     
     
  • 5.51, Аноним (49), 17:21, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, это не прямо так критично. В конечном итоге всё равно MSI проверять надо на код. А где применяется могу рассказать. Если люди используют централизованное развертывание через sccm очень часто в таком случае применяется GUID. Он идет как проверка - приложение уже установлено на системе и ничего делать не надо. Ещё встречал на форумах разных производителей списки версия ПО->GUID. Это что бы людям проще было скриптовать разное поведение для разных версий. В общем это упрощение для тех кто в дальнейшем с этой msi работать будет.
     
     
  • 6.52, sK1 Project (?), 17:46, 17/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разумно. В следующей версии добавим опциональный ProductID.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру