- *python *windowsЖуйк, как лучше сделать в инсталляторе для венды с такой опциональной зависимостью, как интерпретатор питона? Он будет нужен для некоторых плагинов и расширений браузера, например.
1. Тащить питон в инсталляторе (размер вырастет с сегодняшних 15 метров до этак 30).
2. Опционально утягивать его из интернетов, если юзер поставил галочку соответствующую.
3. Сделать два инсталлятора — -full и -nopython
4. Забить на пейтон под вендой.
Пожалуйста, обоснуй есличо.
Replies (139)
- @0xd34df00d:@Voker57 С Ruby аналогичная проблема будет, btw.
- @Voker57:@0xd34df00d и noruby, и noheaven, и даже noallah
- @0xd34df00d:@sl Вариант 3 плох тем, что он плохо масштабируется, как 2^(количество_скриптовых_языков). Вон, впилим Ruby, Erlang и Haskell. Будет уже 8 инсталляторов.
- @0xd34df00d:@Pevzi Инсталляция пейтона, поговаривают, нетривиальна.from idead, 14 months ago, in reply to /5
- @O01eg:И вообще, у тебя скриптами же плагины занимаются. Сделай для плагинов отдельный инсталлятор.from Ψ+, 14 months ago
- @0xd34df00d:@Radjah Вот этот вариант мне по нраву! Так и сделаем.from idead, 14 months ago, in reply to /10
- @0xd34df00d:@O01eg Да мы MSVS детектить не можем, а ты — пейтон.from idead, 14 months ago, in reply to /14
- @O01eg:@0xd34df00d А если человек скачал, отключил интернет, запустил установку?from Ψ+, 14 months ago, in reply to /15
- @0xd34df00d:@O01eg Щито? В смысле? Тут плохо то, что плагины зависят от тех либ, которые не обязательно есть в ядре, и каждую копию зависимостей придется утаскивать в инсталлере каждого плагина.from idead, 14 months ago, in reply to /12
- @0xd34df00d:@O01eg А нахрена ему личкрафт без инета?
Олсо, в таком случае пусть качает -full-установщик.from idead, 14 months ago, in reply to /17 - @0xd34df00d:@O01eg Ну, придется пожить ему без пейтона. Или выкачать -full где-нибудь у друзей/на работе/етц.from idead, 14 months ago, in reply to /25
- @Kxepal:мое скромное имхо:
1. гуд. размер будет не +15 метров, тебе все библиотеки не нужны же?, но +2,5 за python2x.dll получишь точно
2. плагины и расширения умеют предлагать запрашивать установку недостающих компонентов? вариант, но инсталятор, вытаскивающий что-то из инетов не есть гуд(вспоминаю .net 3.5 sp1, который в оффлайне нельзя поставить из-за какого-то критичного апдейта)
3. тогда пользователь должен быть ясно уведомлен об этих режимах, иначе эти опции станут раритетом в использовании — маны мало кто читает, факт.
4. если есть возможность обойтись нативными vbscript/jscript — только огромный плюс.from ASHDARH, 14 months ago - @0xd34df00d:@Kxepal Боюсь, что все. Пейтон встраиваем как раз потому. что batteries included.from idead, 14 months ago, in reply to /29
- @0xd34df00d:@Kxepal По остальным пунктам (чо-то я рано энтер нажал):
2. Не умеют. Это весьма вендовый костыль же.
3. Разумно.
4. Оно нифига не нативно в моих линупсах и маках. Да и часть людей уже давно реквестирует именно пейтон.from idead, 14 months ago, in reply to /29 - @O01eg:Нахрена вообще делать плагинную модель, если всё равно получается, что нужно тащить их все?from Ψ+, 14 months ago
- @0xd34df00d:@O01eg Под вендой я лучшего решения не вижу, а в генте сплит-ебилд, в дебиане/бубунте тоже сплит-пакеты, в спеках под RPM, насколько я помню, тоже все распилено.from idead, 14 months ago, in reply to /36
- @d1mk0:@0xd34df00d да ты дурак.
ты хочешь, чтобы для установки твоих личей на венде пользователь ставил 200 метров пакетов зависимостей в течении часа?
да тогда личи никто ставить не будетfrom 10498701371276963614501175, 14 months ago, in reply to /35 - @0xd34df00d:@d1mk0 Если пользователь хочет пользоваться плагинами, написанными на тех языках — да, придется ему ставить все зависимости. Речь как раз о том, как достичь оптимального баланса. Мое-то дело предложить.from idead, 14 months ago, in reply to /38
- @0xd34df00d:@O01eg leechcraft-core, leechcraft-poshuku, leechcraft-aggregator и так далее. layman -a rion && eix-sync && eix leechcraft, полюбуйся )from idead, 14 months ago, in reply to /39
- @Kxepal:@0xd34df00d 1. нужен обязательно сам интерпретатор? что за задача, ради интереса?
2. к первому пункту. Хотя не верю, что нигде нельзя повесить галку и лейбл с ссылкой.
4. если задача кроссплатформенности, то да, согласен. Но имхо, чем меньше дополнительных сущностей в системе — тем лучше — если задача состоит в скрипте на 100 строк, то тянуть 30 метров ради них не айс.
кстати, а если питон уже стоит, но не той версии?from ASHDARH, 14 months ago, in reply to /34 - @d1mk0:@0xd34df00d тогда надо сделать вариант без всего и вариант только с петоном, как с самым популярным языком для плагиновfrom 10498701371276963614501175, 14 months ago, in reply to /41
- @0xd34df00d:@Kxepal 1. C++/Qt-приложение. Модульное, до последнего времени модули тоже были на плюсцах и кути. Недавно осилил поддержку скриптинга, уже поддерживаются ECMAScript и Python, собсна. Задача — предоставить плагинописателям все возможности соответствующих скриптовых языков.
2. В смысле? Не понял, чо за галка и лейбл с ссылкой?
4. Да, конечно, но, как я понимаю, вполне можно поставить питон/whatever локальненько и не мешать основной системе. Это, в том числе, ответ на вопрос про питон не той версии.from idead, 14 months ago, in reply to /43 - @0xd34df00d:@O01eg Расскажи, как в винде наиболее легко доставить еще один плагин, подобно emerge leechcraft-poshuku. Учитывая, что у -poshuku свои зависимости, у всего остального другие, и так далее.from idead, 14 months ago, in reply to /45
- @O01eg:@0xd34df00d NSYS || MSI, ищем твой личкрафт в реестре, ставим ему в папочку plugins ещё один плагин и зависимые бибилиотеки.from Ψ+, 14 months ago, in reply to /52
- @0xd34df00d:@O01eg А как определить, что вот вебкит уже стоит, его качать не надо, а qt-xmlpatterns не стоит, и так далее?
Получается переизобретение велосипеда^W пакетного менеджера. Которым буду заниматься даже не я, потому что венды у меня нет, а Форневер вряд ли будет это делать тоже, ога.from idead, 14 months ago, in reply to /54 - @0xd34df00d:@O01eg Нет. Это dll от кутей. Со своими собственными зависимостями от прочих кусков кутей. да.from idead, 14 months ago, in reply to /57
- @Radjah:@0xd34df00d Горсть dll. Только upx-ом пожать надо, а то весят до чертаfrom Miranda, 14 months ago, in reply to /58
- @0xd34df00d:@O01eg Да, но он -dev, то есть, с хедерами, бинарниками и прочей фигней.from idead, 14 months ago, in reply to /59
- @Kxepal:@0xd34df00d тебе подойдет зависимость на python.dll, а остальные модули уже пойдут зависимостями к самим скриптам. максимум — подложи все, что в папке dll и проблем не будет.from ASHDARH, 14 months ago, in reply to /49
- @0xd34df00d:@Radjah NSIS хуже жмет upx'ованные dll, нежели непакованные. ИМХО размер инсталлера критичнее, чем размер этого всего на диске.from idead, 14 months ago, in reply to /60
- @O01eg:@0xd34df00d Т.е. qt для юзверей без вебкита, а для разрабов с вебкитом?from Ψ+, 14 months ago, in reply to /61
- @0xd34df00d:@Kxepal Я, собсна, так и предлагал человеку, который сейчас делает win-build'ы моей проги, ему такой метод не понравился.from idead, 14 months ago, in reply to /62
- @Radjah:@0xd34df00d Добавь UPX в инсталлер и жми при установке. :3from Miranda, 14 months ago, in reply to /63
- @0xd34df00d:@O01eg Если в первой половине фразы пропущено «не», то да.from idead, 14 months ago, in reply to /64
- @Kxepal:@0xd34df00d интересно чем? это и проще и быстрее, чем гонять данные по stdin/stdoutfrom ASHDARH, 14 months ago, in reply to /65
- @0xd34df00d:@Kxepal Да хрен знает, ему не понравилось таскать с собой и пейтонн в том числе.from idead, 14 months ago, in reply to /69
- @0xd34df00d:@O01eg Блин, нет установочного пакета Qt для юзеров прог на Qt.from idead, 14 months ago, in reply to /71
- @0xd34df00d:@Kxepal А так у нас еще нет поддержки питона под венду ) Собственно, там пока кое-какие проблемы со сборкой плагина поддержки плагинов на питоне под windows, поэтому это этакий вопрос на будущее )from idead, 14 months ago, in reply to /76
- @0xd34df00d:@O01eg Не, я как-то думал вообще держать рядом python.dll и его либы.from idead, 14 months ago, in reply to /77
- @Kxepal:@0xd34df00d не, конечно, если строить скриптовую систему на основе stdin/stdout, то есть здесь некая здравая мысль...from ASHDARH, 14 months ago, in reply to /72
- @0xd34df00d:@Kxepal Эээ, я про то, что не понравилось вообще с собой пейтон таскать.from idead, 14 months ago, in reply to /80
- @Kxepal:@0xd34df00d ну я в общем выразил метод, куда можно пойти, если тянуть интерпретатор(;
тут ведь тоже можно и не таскать — загружать/выгружать динамически библиотеки вроде можно в сях(не в курсе), просто объемы совершенно разныеfrom ASHDARH, 14 months ago, in reply to /82 - @0xd34df00d:@Kxepal Можно, да, конечно, так оно и происходит — не зря плагины же )from idead, 14 months ago, in reply to /83
- @Stiletto:а нельзя просто использовать пейтон когда он есть и не использовать когда его нет? неужели великая архитектура плагинов лц этого не позволяет?from jabber.el-Anubis, 14 months ago
- @0xd34df00d:@Stiletto Можно. Так и будет, собсна. Плагины на пейтоне просто не будут грузиться, если пейтона нет.from idead, 14 months ago, in reply to /86
- @nebeda:добавить рядом с ссылкой на скачку рядом ссылку на скачку вендопитона. и так же версию с уже-питоном. всё расписать. удобно, ибо каждый раз, как узер будет ставить — что-то утягивать из интернетов — говноfrom nyaserver, 14 months ago
- @O01eg:@nebeda Угу, отключаем интернет, запускаем smart-live-rebuild, он вызывает emerge пакет-9999, тот в какой-то момент вызывает ebuild пакет-9999.ebuild unpack, который вызывает svn/git/cvs/... update, а тут бац, интернета нету, и по цепочке они завершаются с возвратом ошибки и нифига не компилируют.from Ψ+, 14 months ago, in reply to /107