![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Інсталятори ув віндюку
Кожного разу як я перевіряю чи буде працювати лайнаксна аплікація на відюку, то жалкую що спробував.
Наприклад, є ноудний майкро-сервіс foo, який від ОС вимагає лише підтримку TCP/IP, робить жодних змін ув файловій системі, вимагає 0 суто лайнаксних API, пише logs до stdout, вважає що його будуть байнднути до умовного 12345 порту, що привілей спеціяльних не вимагає.
На лайнаксі для такого майкро-сервісу пишуть елементарного юніт-хфайлу
ув ~/.config/systemd/user/foo.ini
і Боб є ваш дядько--користувач
лайнаксу (регулярний) контролює foo за допомогою звичних команд
systemctl.
Ув віндюку, починаючи з 10 (чи 8?), з'явилися "per-user" сервіси,
наприклад cbdhsvc (це так, у якості конспірації, зашифровується
словосполучення сервіс кліпбоарду), які, незважаючи на назву,
вимагають привілеї адміністраторські для свого створення і затишні
поради "інсталюйте нові ваші аплікації до $env:APPDATA
"
зіштовхуються зі суворою реальністю майкрософтського ідіотизму.
Чи складно тоді сгенерувати інсталятора, що
- перепише директорію з хфайлами майкро-сервісу до
$env:PROGRAMFILES/foo
; - створить ув реґістрі key з описом сервісу;
- створить на десктопі ув паблік фолдері (тобто для всіх
користувачів) шортката на
http://127.0.0.1:12345
?
Нескладно, але я би поставив оцінку 3/10: не рекомендую.
До появи UWP аплікації, які у нас час роблять для майкрософтського магазину істоти що народилися лузерами, генерувався .msi хфайл. Більше 10 років тому для цього був wix toolset--декілька феноменально огидних CLI-утіліт, написаних людьми, для яких поняття смак є так само близьке, як відстань сузір'я Андромеди до планети Земля.
З того часу змінилося нічого. Є інші способи створювати інсталятори, наприклад Inno Setup (якщо вас не дратує даялекта паскалю (так), на якому доводиться писати шматки скриптів для будь-якої нетривіяльної дії), або InstallShield, якщо ви міцно поїхали головою та бажаєте сабскріпшона $2474/рік годувати якихось індусів.

Питати про wix будь-яку LLM--гаяти час. Гоогл забитий порадами для версії 3.x, яка малює даялоги для моніторів 2006 року з 96 dpi. Нова версія 5 має неймовірне поліпшення: вміє створювати список файлів сама, без допомоги ікстернального препроцесора або (я вибачаюсь) xslt! Для цього грандіозного leap forward їм знадобилося 20 років. А також:
"інторнет" шортката, який генерує wix, потім неможливо відредагувати (до permissions це стосунку не має), url є вшитий намертво;
якщо воно не може стартувати сервіса ув процесі інсталяції--настає павза та rollback, жодні твікі з vital=no, wait=no і т.і. не допомагають, хоча згідно пародії на документацію повинні;
інтерхфейсьні лейбли можуть стискатися ув залежності від різолюшену монітору та dpi--дуже зручно якщо ти повідомляєш користувачу "дивись logs ув
$env:SystemRoot/Temp/foo*
, а згенерований даялог малює.../foo*
.
Куди правильно писати logs для користувача NT Authority\Local Service
я так і не зрозумів. Від блискучих за точністю порад що він
має limited write access to the file system у мене бажання
перекваліфікуватися на ілектришона та до кінця своїх днів лагодити
розетки ув субурбії Калґарі.