|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Универсальный Авто-обновляемый Инсталлятор АОИ, теория Идеальной Сборки (ИС) |
|
Универсальный Авто-обновляемый Инсталлятор АОИ, теория Идеальной Сборки (ИС)
|
Старожил Сообщения: 256 |
Универсальный Авто-обновляемый Инсталлятор АОИ, теория Идеальной Сборки (ИС)
концепция ячейки Скрытый текст
ячейка - это папка, в которой содержатся некие файлы.
для простого юзера ячейка - черный ящик. для неё (ячейки) есть два типа воздействия и несколько информационных каналов. типы воздействия: - первый: обновление инсталлятора (запуск обновлятора) - второй: запуск инсталлятора - обновление инсталлятора (запуск обновлятора): в каждой ячейке есть файл up.bat или pu.bat (а может и не быть) его назначение - обновление программ установки из тернета и коррекции версии этих программ - запуск инсталлятора это файл ins.bat его назначение - тихая (возможно) установка программы из файлов в ячейке файлы для обновления инсталлятора. должен присутствовать только один (или-или): up.bat - для автообновляемых ячеек! pu.bat - для обновляемых вручную! файл для установки инсталлятора: ins.bat - для автоустановочной ячейки и для установки вручную. информационные каналы: - файлы с расширением .txt - текстовые файлы. кодовая страница (кодировка) стандартная 1251. в информационных каналах содержится вся информация о ячейке. вот описание всех информационных файлов: первая группа ячеек (они присутствуют всегда) name.txt - название ячейки (программы, которая поставится из инсталлятора) name1.txt - характеристики ячейки: автообновление + автоустановка version.txt - версия инсталлятора. для автообновляемых инсталляторов заполняется автоматически при обновлении. date.txt - дата крайнего успешного обновления. если крайнее обновление было неуспешным, то дата не изменяется! при успешном обновлении используется текущая дата. вторая группа ячеек (присутствие их необязательно, но важно) .. они введены для использования ячейки в сборке программ (для этого используется MInstall) about.txt - файл описания ячейки (до 600 символов! возможно и больше) group.txt - группа, к которой принадлежит ячейка (число) guid.txt - строка для проверки уже установленной программы в системе icon.ico (или icon.txt) - иконка (или номер иконки) для отображения данной ячейки в списке выбора в сборке license.txt - число. для показа лицензионности программы. free - лицензия (репак) - или trial (ограничения). если файла нет - программа free! os.txt - совместимость с системой (на какие системы можно поставить инсталлятор). если файла нет - инсталлятор можно поставить на все системы! все текстовые файлы однострочные! в процессе дальнейшего использования ячеек в сборке используются только первые строки этих файлов. разберём подробнее информационные потоки. name.txt - название ячейки следует отличать название каталога (папки), в которой расположена данная ячейка и название этой ячейки. для избежания проблемм названия всех папок желательно делать только англ.буквами, цыфрами, без русских или иных национальных символов. а вот название ячейки (содержимое файла name.txt) может быть любым. name1.txt - характеристики ячейки ячейка предназначена для двух задач: обновление и/или установки. обновление ячейки бывает автоматическое (запуском обновлятора) или неавтоматическое (для обновления нужны некие усилия) установка инсталлятора из ячейки тоже бывает автоматическое (запуск дистрибутива с ключами) или неавтоматичесое (установка требует ручное действие) в файле name1.txt записано 2-хзначное число, которое и показывает эти характеристики данной ячейки. возможные комбинации такие: 11 - ячейку можно автоматически обновить и автоматически инсталлировать. это самый благоприятный вариант! 10 - ячейку можно автоматически обновить, но для установки инсталлятора требуется ручное воздействие (как вариант нажатие кнопок Далее-Далее .. -Конец) 01 - ячейка не автообновляемая, но установка инсталлятора автоматическое. как вариант это репаки. 00 - ячейку надо обновлять и устанавливать инсталляторы вручную. version.txt - версия инсталлятора используется первая строка! версия определяется (для автообновляемых ячеек) автоматически, как она (версия) прописана на офсайтах данного инсталлятора. date.txt - дата успешного обновления в файле содержится дата, когда данная ячейка успешно обновилась. форма даты (для русской версии Win) такой: ДД.ММ.ГОД (15.03.2018) при дальнейшем использовании в сборках показ даты без года (15.03) для упрощения вывода group.txt - группа, к которой принадлежит ячейка (число) группирование (каталогизация, тегирование) ячейки очень важна! в ячейке содержится инсталлятор, который можно группировать по разл.критериям. например ячейка Mozilla Firefox (в ней содержится инсталлятор, что устанавливает браузер Mozilla Firefox в систему) тегирование может быть таким: интернет, браузеры все возможные и нужные теги пронумерованы. есть файл All-Group.txt (он расположен в корне сборки .. вернее в корне папки, где расположены все ячейки, которые представляют собой сборку) содержимое файла All-Group.txt такое (я использовал свою сборку всех браузеров): [Group] 0=- неправильная группа- 1=-- Браузеры на основе Firefox 2=-- Браузеры на основе Chromium 3=-- Браузеры на основе Internet Explorer 4=-- Комбо-Браузеры (много-движковые) ... 99=-- Выход / Перезагрузка вот он такой для ячейки Waterfox Browser (его содержимое): 1 если файла group.txt нет, то группа считается нулевой (0) тогда при создании сборки такие ячейки будут выделятся в группу - неправильная группа- изначально в ячейках нет тегирования. задача группирования - это проблема пользователя! причина: просто я не хочу навязывать своё вИдение группирования. диапазон числа 0 - 99 (99 - для выхода) в моих готовых сборках тегирование есть! icon.ico (или icon.txt) для визуального представления списка ячеек в сборке желательно использовать иконки. MInstall (как оболочка) использует иконки размером 32х32 для удобства вместо файла icon.ico можно использовать файл icon.txt в файле icon.txt содержится число х (> или < 0). MInstall использует для коллекции иконок два файла (dll-1.dll и dll-2.dll) расположение этих файлов от файла MInstall.exe такое: число х (к примеру 234 - используем номер иконки 234 из файла dll-1.dll) (-87 - используем номер иконки 87 из файла dll-2.dll) Важно! файл icon.ico важнее! если в ячейке есть кроме файла icon.ico текстовый файл icon.txt - то будет использоваться иконка icon.ico! если таких файлов нет - будет подставляться первая иконка из файла dll-1.dll about.txt - файл описания ячейки описание ячейки, краткое описание программы, что поставится при установки инсталлятора. используется только одна строка! если необходимо вывести информацию на сл.строке, используем символ | длина строки ограничена. предел 500-600 символов. файлы guid.txt license.txt os.txt не рассматриваются. см. описание программы MInstall, там эти файлы подробно описаны. файл alarm.txt - это маркер успешности ячейки понятие успешности ячейка обновляется из тернета. если содержащийся в ячейке инсталлятор обновился, то маркера alarm.txt в ячейке нет! успех - это состояние ячейки. в успешной ячейке есть инсталлятор, файл версии и файл даты обновления. неуспешная ячейка - в ней есть те же данные, но возможно старые и в процессе обновления (инсталлятора) были проблемы. еще важное понятие: живая-мертвая ячейка. ячейка живая. периодически появляются обновление софтов. с помощью обновление инсталлятора (запуск обновлятора) мы можем обновить инсталлятор и обновить файл версии. это живая ячейка .. иногда она обновляется. ячейка мертвая. в ней содержится инсталлятор уже необновляемой программы. к примеру Winamp .. Google Chrome для WinXp .. Ms .NET Framework 4.6.2 .. обновить мертвую ячейку можно. но получим те же данные! она не изменится! концепция Идеальной Сборки Скрытый текст
сборка - это интегратор + Мастер автоустановки приложений (MInstAll) + ячейки
интегратор (файл start.exe): управляющий сборкой. с помощью него можно перестроить сборку (собрать MInstAll) в различных режимах (фазах) и также запустить MInstAll на одном уровне с файлом start.exe есть файл start.ini - он текстовый, для управления интегратором. папка Scripts - в ней скрипты для управления, вывода, создания фаз (режимов сборки) папка ToolZ - фазо-создатели (bat-файлы). исполняемые файлы (текстовые, можно править и корректировать) Фазы - режимы перестройки сборки. пока фазы 2. сборка 2-хфазная! первая фаза: собрать сборку в режиме установка вторая фаза: собрать сборку в режиме обновления !! третья фаза Обновление необновляемых инсталляторов пока разрабатывается. !! смысл фаз. сборка динамичная, ячейки, которые составляют сборку, могут в любой момент обновиться и/или инсталлироваться. при обновлении ячейки может изменится версия инсталлятора в ячейке, могут возникнуть ошибки при обновлении. а Мастер автоустановки приложений (MInstAll) требует при работе статичные файлы профилей. поэтому после обновления ячеек требуется перестройка профилей (пересборка) интегратор взял отсюда: http://azjio.ucoz.ru/ Мастер автоустановки приложений (MInstAll): взял отсюда: http://forum.oszone.net/thread-265582.html Ячейки: ячейки, которые содержит наша сборка, расположены в определенном месте. обычно (можно менять) это папка Install которая расположена на одном уровне с интегратором в папке Install расположены ячейки в виде папок и есть еще один файл: All-Group.txt в этом файле прописаны строки для группирования сборки Итак, структура Идеальной Сборки: start.exe - файл интегратора start.ini - файл управления интегратором далее на одном уровне папки: Install - папка, где расположены ячейки MInstall - Мастер автоустановки приложений Scripts - папка скриптов и прочих файлов для создания фаз ToolZ - папка фазо-создателей Обновлятор Скрытый текст
рассмотрим только авто-обновляемые ячейки.
в каждой ячейке есть файл up.bat (а может и не быть). его назначение - обновление программ установки из тернета и коррекции версии этих программ файл up.bat - текстовый, его можно просмотреть или откорректировать в простом блокноте. сам файл шаблонизирован и сделан блоками. рассмотрим блоки: - блок определения переменных переменные используются одни и те же. переменная прямой ссылки на файл, переменная названия файла, который будет сохранятся (это наш дистрибутив) переменная донора (исходной веб-страницы), где расположена ссылки на нужные файлы переменная парсинговых выражений переменная версии аналогичных переменных может быть несколько. - блок парсинга (если он нужен). при парсинге из переменных создается текстовый файл (он мусорный, потом будут удален), в котором расположены нужные ссылки. - блок анализа из подготовленного текстового файла выделяются в переменные прямые ссылки на скачиваемые файлы. - блок скачивания файлов из подготовленных переменных (файлы скачиваются в названия по переменным). возможно скачивание 1, 2 или более файлов. например отдельно дистрибутив для х86 и отдельно для х64 - блок анализа (верификации) для определения версии дистрибутива. версия определяется или по версии уже скачанного файла или берется из результатов парсинга. - блок записи файлов в ячейку создание файлов version.txt и date.txt - блок чистки от мусорных файлов пример. рассматриваю ячейки из своей сборки Все Браузеры Mozilla Firefox (в сборке 2-е ячейки для получения дистрибутива. первая - официальная. вторая - получение инсталлятора по FTP) подробнее рассмотрим первый способ. есть прямые ссылки для скачивания, которые мы будем использовать. - блок переменных переменные названий готовых файлов: переменные прямых ссылок: set "g1=http://download.mozilla.org/?product=firefox-latest&os=win&lang=ru" set "g2=http://download.mozilla.org/?product=firefox-latest&os=win64&lang=ru" предварительно перед началом процесса создаем файл alarm.txt это символ неуспеха процесса обновления. если процесс обновления будет успешен, то в конце этот файл удалится. если же будут проблемы со скачиванием или мы сами прекратим процесс, то этот файл останется! скачивание идет не сразу! расcчитываем размер файла переменной %w1% (Firefox-Setup-x86.exe). если мы уже его скачивали (то есть в ячейке уже находится инсталлятор и мы хотим обновить ячейку), вычисляем его размер и заносим в переменную %fsize% если файла нет, в переменную %fsize% пишем 0 далее вычисляем размер дистрибутива (по прямой ссылке из переменной %g1%) напрямую из тернета, без скачивания самого дистрибутива! число (размер файла) заносим в переменную %nsize% сравниваем переменные %fsize% и %nsize% если они одинаковые, то наш инсталлятор (или первый дистрибутив) одинаков с расположенным в тернете! и его скачивать не надо! если есть отличия, то дистрибутив изменился. качаем его. скачивание идет не напрямую в файл переменной %w1%, а в промежуточный файл %w1%.~ (Firefox-Setup-x86.exe.~) файл скачался, проверяем его по размеру. если размер равен 0, то в процессе скачивания произошли ошибки (отсутствие тернета, недоступность файла, возможно сами прервали скачивание), тогда просто переходим на блок чистки и выход. размер не равен 0, скачивание успешное, переименовываем промежуточный файл в нужный %w1% (Firefox-Setup-x86.exe). если инсталлятор состоит из нескольких дистрибутивов (Firefox-Setup-x64.exe), выполняем еще раз блок скачивания но используем другую пару переменных %g2% и %w2% блок верификации (определение версии инсталлятора) зачастую версия вычисляется из уже готовых дистрибутивов используя определенный файл от мелкософта. но для мозилл такой способ не годится! версию вычисляем блоком верификации, используя определенный файл напрямую определяя версию из тернета. далее выполняем блок записи файлов в ячейку (заносим переменные версии и даты в нужные файлы.) убираем маркер успешности alarm.txt выполняем блок чистки от мусорных файлов всё! обновлятор в ячейке отработал. поменялись ли дистрибутивы (инсталлятор) в этой ячейке? смотрим версию и дату обновления. сама ячейка визуально не изменилась. файлы одни и те же. стал новее инсталлятор - это хорошо ![]() даже если в процессе обновления произошли ошибки (остался файл alarm.txt), то предыдущие файлы дистрибутивов остались! Инсталлятор Скрытый текст
файл ins.bat
его назначение - тихая (возможно) установка программы из файлов в ячейке. в ячейке есть файл name1.txt - характеристики ячейки: автообновление + автоустановка если вторая цЫфра в 2-х-значном числе равна 1 (11 или 01), то эту ячейку можно инсталлировать тихо с ключами. красота концепции ячейки: дистрибутивы (инсталлятор) скачиваются из тернета в независимости от названия файлов, расположенных на офсайте! поэтому содержимое ячеек (число и название файлов) неизменно! могут появляться мусорные файлы, которые леххко удалить. пример. Mozilla Firefox прямая ссылка: http://download.mozilla.org/?product...os=win&lang=ru если скормить эту ссылку любому качальщику или вставить её в браузере, то пойдет скачивание дистрибутива. на 18.03.18 будет предлагаться сохранить такой файл: Firefox Setup 59.0.1.exe мы же его сохраняем под определённым именем! и это имя неизменно! Firefox-Setup-x86.exe в файле version.txt (при успешном обновлении ячейки, т.е. запуска обновлятора) будет записана строка: 59.0.1 неизменность имён дистрибутивов при любом действии обновлятора приводит к упрощению работы инсталлятора. в файле ins.bat в кодировке 866 приведены строки, которые тихо устанавливают Mozilla Firefox: if defined ProgramW6432 ( set file=Firefox-Setup-x64.exe ) else ( set file=Firefox-Setup-x86.exe ) start /wait %file% -ms -ira - блок определения переменной %file% дистрибутива для установки: if defined ProgramW6432 ( set file=Firefox-Setup-x64.exe ) else ( set file=Firefox-Setup-x86.exe ) некоторые инсталляторы не позволяют установить дистрибутивы тихо с ключами. пример. (использую ту же сборку Всех Браузеров) QQBrowser файл ins.bat такой: и в файле name1.txt этой ячейки число такое: 10 т.е. обновляем эту ячейку автоматически, а устанавливаем руками Изоляция ячеек Скрытый текст
ячейка - независима от иных папок. убрав любую ячейку и перестроив сборку (выполнив фазы пересборки), мы удалим любые следы упоминания об этой ячейки!
аналогично, добавив ячейку и перефазировав сборку - у нас появится еще одна программа для установки-обновления (если такие возможности есть в этой ячейке) главная проблема для пользователя: группирование новых ячеек! контролируйте содержимое файла group.txt в такой ячейке. если такого файла не будет, то ячейка при фазировании попадет в неправильную группу. в файле All-Group.txt перечислены наши группы. выберите нужную группу (или добавьте строку, содержащую новую группу и число) и потом в новой ячейке исправьте или введите нужное число в файле group.txt в папке есть только один файл инсталлятора ins.bat, что подразумевает одно действие при установке. а как же быть, если возможно установить один и тот же инсталлятор разными путями, используя другие ключи установки. пример. ячейка Comodo Internet Security (CIS) 10 допустим, это папка с названием CIS10 (Full) в ней содержится обновлятор up.bat, который может обновить дистрибутивы cis_setup_x86.msi и cis_setup_x64.msi и в ней содержится инсталлятор ins.bat, который может установить полную версию Comodo Internet Security: if defined ProgramW6432 ( set file=cis_setup_x64.msi ) else ( set file=cis_setup_x86.msi ) start /wait msiexec.exe /i %file% /qn REBOOT=ReallySuppress CIS_LANGUAGE_ID=1049 SETOURDNSSERVER=2 решение: создаем рядом еще одну ячейку. название папки CIS10 (CF) в этой ячейки нет обновлятора (файла up.bat) поэтому эта ячейка не будет учитываться в фазе: собрать сборку в режиме обновления но, т.к. есть инсталлятор (файл ins.bat), то эта ячейка будет учитываться в фазе: собрать сборку в режиме установка файл ins.bat в этой ячейке CIS10 (CF) такой: set where=CIS10 (Full) if defined ProgramW6432 ( set file=cis_setup_x64.msi ) else ( set file=cis_setup_x86.msi ) start /wait "" msiexec.exe /i "%where%\%file%" /qn REBOOT=ReallySuppress CIS_LANGUAGE_ID=1049 INSTALLANTIVIRUS=0 SETOURDNSSERVER=2 Reg Add "HKLM\SYSTEM\software\Comodo\Firewall Pro\Configurations\2\HIPS\Settings\" /v "Mode" /t "REG_DWORD" /d "0x018ee7fe" /f ячейка CIS10 (CF) взаимо-зависима от ячейки CIS10 (Full) и т.к. в ней нет обновлятора (файла up.bat), то версия этой ячейки не изменится. а она и не нужна! можно убрать файл version.txt при фазировании (фаза: собрать сборку в режиме установка) вместо отсутствующих файлах будет подставляться пробел. остальные файлы нужны! Утилиты и папка Scripts Скрытый текст
для работы обновлятора (файла up.bat или pu.bat) нужны некоторые файлы (утилиты), к примеру: скачать файл по ссылке, проверить его размер по ссылке, утилиты для ускорения скачивания, утилита верификации
держать такие файлы в каждой ячейке неразумно. поэтому все они собраты и размещены в отдельной папке. эта папка Scripts расположение её рядом с нашими ячейками, что составляют сборку. эта папка должна быть! иначе многие блоки в обновляторах ячеек не сработают. вызов таких утилит из любых ячеек таков: к примеру, скачать ускорителем промежуточный файл, что определён переменной %w1% по ссылке, которая определена переменной %g1% файл axel.exe берется так: - спустились на уровень ниже ячейки (..\) т.е. это корневая папка где расположены все наши ячейки - и запустили файл axel.exe из ячейки Scripts\ перечислю утилиты, что содержатся в ячейке Scripts (тоже считаем эту папку ячейкой, но в ней нет ни обновлятора ни инсталлятора, поэтому при обработки фаз эта ячейка будет игнорироваться) замечу, что в папке, где содержатся ячейки, которые составляют нашу сборку, могут присутствовать любые папки и файлы. если в таких папках нет файлов up.bat или pu.bat и ins.bat - то они не учавствуют в фазах! wget.exe - главный файл для получения файлов из тернета. в папке присутствует в двух видах: wget-x86.exe и wget-x64.exe (по умолчанию используется х86 вариант) axel.exe (+ cygwin1.dll) - ускоритель скачивания. используется вместо wget.exe. реально ускоряет получения нужных файлов. некоторые сайты не поддерживают такой вид скачивания. в таком случае используем старый и медленный wget.exe http2cli.exe - утилита получения парсенных страниц netsize.exe - утилита получения размера скачиваемого файла без его реального скачивания. dl.exe - утилита для скачивания файлов, используется для получения версии качаемого файла без его реального скачивания. filever.exe - утилита получения версии реального (скачанного) файла. не работает на некоторых файлах (мозилло-подобных браузерах к примеру) 7z.exe (+ 7z.dll) - утилита разархивирования некоторых файлов. есть часть дистрибутивов, которые распространяются в архивном виде. в ячейках дистрибутивы уже готовые для инсталляции. поэтому в некоторых ячейках после скачивания нужных файлов, они распаковываются. AkelPad.exe (AkelPad.ini) - небольшой текстовый редактор для показа текстовых файлов. aria2c.exe - комбайн. большой и мощный. пока в ячейках не использую. но пусть будет! файлы http2cli.exe netsize.exe и dl.exe взял отсюда: http://dzzb.ru/blog/http2cli http://dzzb.ru/blog/2pomogators остальные взяты на просторах тернета |
|
Отправлено: 15:25, 22-03-2018 |
Старожил Сообщения: 256
|
Профиль | Отправить PM | Цитировать Парсинг и проблемы устойчивость ссылок.
Скрытый текст
Устойчивость ссылок
Компания, ведёт дела ни ниве программизЬма, разрабатывает программы (продукты), их обновляет с различными временными периодами. Каждая такая компания имеет сайт, на котором размещает ссылки для скачивания этих продуктов, или доверяет размещение таких ссылок своего рода огромным интеграторам. например сайт http://www.softpedia.com/ каждый день, час обновляется, некий продукт обновился - отдельная страница для этого продукта обновляется, на этой странице обновляется версия, формируется новая ссылка на новый продукт. вот, на 22.02.18 я выловил на этом сайте интересную для меня программу: Wise Anti Malware http://www.softpedia.com/get/Securit...-Malware.shtml скачаем эту страницу и поглядим, где расположена строка, показывающая версию: и эта ссылка навечно! навсегда! пока программисты, разрабатывающие сайт Softpedia не изменят саму структуру сайта. а оно им надо? думаю, нет. пойду в рассуждениях дальше. тот же сайт Softpedia. каждая программа, рассмотренная на этом сайте, имеет устойчивую и неизменную страницу, на которой расположены устойчивые и неизменные ссылки на программы, версии и протчее .. еще пример: Telegram Desktop http://www.softpedia.com/get/Interne...-Desktop.shtml строка версии: эта устойчивость в большинстве случаев распространяется на всё! можно логически понять, люди, разрабатывающие некий продукт, в меньшей степени заботятся об красоте своего сайта, на котором расположены ссылки для скачивания этого продукта. конечно, есть вариант некоего ребрендинга, импульса перестройки сайта для красивости и удобства. такая перестройка сайта ведет к потере размещения ссылок, которые мы выловили. Парсинг Парсинг - некий процесс, позволяющий из огромного потока ссылок, сайтов, HTML-страниц выловить интересующую нас информацию. рассмотрим его поподробнее. для моего обновлятора (файла up.bat) парсинг - это двигатель процесса получения дистрибутивов. после парсинга выделяются прямые ссылки на скачивания или получения версии. а скачать что-то по ссылкам - уже просто и шаблонно. вернусь к сайту Softpedia. Telegram Desktop страница донора (в терминах ) http://www.softpedia.com/get/Interne...-Desktop.shtml поисковое выражение: сам парсинг выглядит так: начинаю читать (скачивать страницу донора), используя поисковое выражение. чтение идет в файл (он мусорный, по окончании работы обновлятора удалится) этот файл тоже неизменный: down.txt вот команда парсинга: ("%~dp0..\Scripts\wget.exe" -q -O- "http://www.softpedia.com/get/Internet/Chat/Instant-Messaging/Telegram-Desktop.shtml" | findstr /R /C:"var spjs_prog_version=") >"%~dp0down.txt" и вообще парсинг в обновляторе сделан в виде блока. есть переменные донора, поисковых выражений. работа блока парсинга заканчивается созданием переменных (с неизменными именами) в которых будут прямые ссылки на скачивания или строка версии. файл down.txt содержит отпарсенные строки. в идеале хорошо иметь одну строку. но обычно таких строк много. например парсим ссылки на дистрибутивы для х86 и х64 версий. ссылки разные, значит и строки будут разные. конечно, можно сузить поиск и отпарсить отдельно ссылку на х86, включая в поисковые выражения упоминания об х86. потом еще раз парсить ту же страницу уже с другими поисковыми выражениями. для меня главный принцып - минимализация использования тернета! парсинг - скачали страницу из тернета. обработка результатов поиска, выделение ссылок - тернет не используется далее проверка необходимости качать нужный файл (сравнение уже существующего у нас в ячейке дистрибутива с находящимся в тернете без непосредственного скачивания) - тернет нужен! если есть необходимость качать файл - он качается! если есть возможность скачать этот файл ускорителем - он качается ускорителем! тоже использование тернета! если уже есть прямые ссылки на дистрибутивы, пример Yandex: https://download.cdn.yandex.net/brow.../ru/Yandex.exe использование тернета такое: - проверили необходимость скачивания - если файл по ссылке (его размер) не равен нашему файлу в ячейке - его скачиваем! остальные действия по определению версии и протчее - тернет не нужен! еще пример. WinRar страницы, где имеются ссылки на х86 и х64 разные. http://www.win-rar.com/postdownload.html?&L=4 http://www.win-rar.com/postdownload....&Version=64bit тут интересно, если эти ссылки открыть в браузере, то он предложит скачать уже готовый дистрибутив (сработал внутренний парсер на офсайте) но для нас эта такая же страница, на которой есть реальные ссылки на скачивание! поисковая строка такая: после парсинга получим в файле down.txt такую строку: <span><a href="https://www.win-rar.com/fileadmin/winrar-versions/winrar/wrar550ru.exe" class="postdownloadlink">нажмите здесь</a></span> после парсинга имеем файл down.txt в котором есть одна или несколько строк. используем ранее рассмотренный принцЫп устойчивости ссылок. WinRar в выше приведенной строке интересующая нас ссылка располагается между первым появлением символа " и заканчивается вторым появлением символа " (открою хитрость, разделитель " очень опасен для поисковых выражений, он заменяется на +++ путем использования при парсинге не простой утилиты wget.exe, а более навороченной http2cli.exe) используем сл. команду: в переменной %g1% будет прямая ссылка на дистрибутив: https://www.win-rar.com/fileadmin/wi.../wrar550ru.exe если выйдет новая версия архиватора, то по принцЫпу устойчивости ссылок при всех тех же поисковых выражений и команд у нас в итоге в переменной %g1% будет прямая ссылка на дистрибутив! пусть он будет другим, к примеру: https://www.win-rar.com/fileadmin/wi.../wrar566ru.exe но ссылка будет всегда! вернусь к Telegram Desktop в файле down.txt строка: ищем всё между первым появление символа = и заканчиваем поиск появлением символа ; всё пишем в переменную версии %f% это: "1.2.14" далее отрезаем по одному символу вначале и конце. команды такие: в переменной %f% будет такая строка: 1.2.14 на 22.03.14 это самая новая версия Telegram Desktop сразу покаюсь, я не гуру, который изрекает вечную истину ![]() возможно, в моих рассуждениях, делах и теориях много ерунды (рениксы), много неправильных суждений, возможно я неправильно понимаю некие процессы и делаю из этого неправильные выводы. хм, давай поговорим за это! приводите примеры, думайте со мной, разбирайтесь лучше меня. я специально ввел слова ТЕОРИЯ и концепция .. Теория Идеальной Сборки, концепция ячейки. это не есть ИСТИНА, это есть вИдение некой недостижимой ИСТИНЫ мною. Верификация и проблемы получения версии Скрытый текст
главная задача обновлятора - получение прямых ссылок на дистрибутивы, скачивание файлов по этим ссылкам и нормализация названий уже скачанных файлов.
помимо получения файлов, определение версии дистрибутивов - тоже вполне нетривиальная задача. Версия важна! ведь мы порой начинаем установку того или иного продукта, глядя на версию .. она новее моей установленной! а вот у меня новая версия браузера, срочно установи его! .. в новой версии исправили много ашипок, надо установить её. знакОмо? ![]() много сайтов, помимо ссылок на дистрибутив, выделяют версию этих дистрибутивов. типа так: вот ссылка на дистрибутив, а вот версия этого дистрибутива. качайте! однако, есть сайты, где есть ссылка на файл, но нет упоминание об версии. и нет от слова вообще ![]() пример. наш любимый Яндекс.Браузер https://browser.yandex.ru/ ссылка на дистрибутив есть, версию этого дистрибутива вижу, на 22.03.18 она такая: версия 18.2.1 но попробуйте пропарсить эту версию, её нет! она динамически показывается на странице, используя джава-вызовы из самого офсайта. как быть? путь первый. я назвал его нечестным и ячейка, в которой версия инсталлятора получена таким способом - эта нечестная ячейка. честная ячейка: дистрибутив получен с офсайта, версия получена с офсайта (или получена из самого дистрибутива, но об этом позжее) нечестная ячейка: некоторые элементы ячейки получены не из официальных ссылок! например версия. итак. используем огромные интеграторы программ. например Softpedia http://www.softpedia.com/ или такой сайт: http://www.majorgeeks.com/ страницы, описывающие наш Яндекс.Браузер на таких интеграторах неизменны: http://www.majorgeeks.com/files/deta...x_browser.html http://www.softpedia.com/get/Interne...-Browser.shtml получить версию, пропарсив эти ссылки довольно леххко. путь второй. работающий во многих случаях, но на многих продуктах не покажет ничего (например на мозилло-подобных браузерах) версию можно получить из самого дистрибутива! она там зашита! попробуйте на чём-либо исполняемом нажать ПКМ, свойства, закладка Подробно, смотрим строку Версия файла. тактика такая: - скачиваем дистрибутив (если он поменялся) - и путем использования небольшой утилиты от мелко-софта filever.exe получаем версию. такая верификация тоже сделана в виде блока. есть блок быстрого получения версии и блок получения версии подробным способом (иногда версия зашита в дистрибутив более глубоко) еще один способ. версия имеется в ссылках на дистрибутивы! например Evernote https://evernote.com/intl/ru/download ссылка на дистрибутив: https://cdn1.evernote.com/win6/publi....10.3.6921.exe порядок действия таков: - пропарсили донорскую ссылку: https://evernote.com/intl/ru/download - выделили ссылку на дистрибутив: https://cdn1.evernote.com/win6/publi....10.3.6921.exe - обработали эту ссылку: прочитаем её после первого появления символа _ до конца строки: 6.10.3.6921.exe уберем 4 символа с конца .exe и получим версию: 6.10.3.6921 завтра, через неделю будет новая версия этого продукта, она будет выглядеть так (к примеру): https://cdn1.evernote.com/win6/publi....16.6.6666.exe вид ссылки неизменен! и обработка и получение версии останется прежней! еще пример. Tor Browser получаем инсталлятор через FTP. есть прямые ссылки через офсайт, но они порой запаздывают с новинками. вышла новая версия, её все обсуждают, но на офсайте всё еще старая версия. некоторые ячейки есть в таких 2-х вариантах. один вариант получение инсталлятора через офсайт, другой через FTP. итак, ссылка: https://dist.torproject.org/torbrowser/ поисковое выражение: поясню это поисковое выражение: - ищем строки, в которых есть символы: href - потом идут любые символы: .* - потом идет любая цЫфра: [0-9] - потом точка [.] - потом любые символы, кроме символов из диапазона a-b (т.е это цЫфры 0-9 и точки .): .[^a-b] итого, пропарсив с такими данными в файле down.txt получим сл. строки: <img src="/icons/folder.gif" alt="[DIR]"> <a href="7.5.1/">7.5.1/</a> 2018-03-12 21:45 - <img src="/icons/folder.gif" alt="[DIR]"> <a href="7.5.2/">7.5.2/</a> 2018-03-17 01:06 - и соответственно прямая ссылка на дистрибутив переменная %g1%:: далее блок скачки (если это необходимо) дистрибутива .. Структуризация ячеек. Группы Скрытый текст
в хорошей сборке может быть не одна сотня ячеек. Представляете, как трудно будет работать с таким списком, что обновить, что установить.
В каждой ячейке есть инсталлятор, который ставит некую программу в систему. предназначение этой программы можно описать некими тегами: - интернет утилиты - браузеры - текстовые редакторы - кодеки - плейеры - системные утилиты - и т.д. т.е. каждую ячейку необходимо про-стуктуризировать для облегчения восприятия и дальнейших действий. термин структуризация в пределах нашей сборки заменён словом группы. Группа каждая ячейка в себе содержит файл group.txt (и в этом файле в одну строку прописано число - номер группы) Номер группы - число от 0 до .. думаю, предела нет ![]() Группы нумеруются по порядку! по-умолчанию 0 - это неправильная группа (если в ячейке нет файла group.txt, то при фазировании сборки этой ячейке присвоится номер группы 0) в сборке есть файл All-Group.txt (он расположен в папке, где находятся все наши ячейки, по умолчанию эта папка Install) первая строка этого файла строго фиксирована: и далее по списку: вот содержимое файла All-Group.txt моей сборки Все Браузеры: [Group] 0=- неправильная группа- 1=-- Браузеры на основе Firefox 2=-- Браузеры на основе Chromium 3=-- Браузеры на основе Internet Explorer 4=-- Комбо-Браузеры (много-движковые) 5=-- Браузеры : Opera 6=-- Браузеры : Yandex 7=-- Браузеры : Экзотика и собственные движки 8=-- Браузеры в архиве (без инсталляции) 9=-- Online Браузеры (интернет-установка полной версии) 99=-- Выход / Перезагрузка например ячейка Maxthon5 Ru и там в файле group.txt число 4 если в этом файле прописано число вне нашего диапазона, например 10, то ячейка не будет участвовать в фазах и не попадет в списки приведу пример группирования сборка BELOFF 2018 [Ru] [Group] 0=Системa | Компоненты 1=Microsoft Office 2003 2=Microsoft Office 2007 3=Microsoft Office 2010 4=Microsoft Office 2013 5=Microsoft Office 2016 6=Текст | Перевод 7=Офис | Учёба 8=Архивация | Распаковка 9=Установка | Удаление 10=Файловые Менеджеры | Редакторы Ресурсов 11=Информация и Диагностика ПК | ОС 12=Обслуживание HDD | SSD 13=Обслуживание ОС 14=Виртуальные машины 15=Графика | Дизайн 16=Графика 17=Медиа | Кодеки 18=Медиа | Плееры 19=Медиа | Редакторы 20=Медиа | Конвертеры 21=DVD | ISO | USB 22=Общение | Почта 23=Интернет | Сети 24=Скачивание | Загрузка 25=Мини-Игры 26=Интерфейс | Гаджеты 27=Скринсейверы | Обои 28=Браузеры 29=Безопасность 30=3Planesoft 31=Завершение [Group] 0=АКТИВАЦИЯ : 1=СИСТЕМНЫЕ : 2=ОБСЛУЖИВАНИЕ ОС : 3=ИНТЕРНЕТ : 4=БРАУЗЕРЫ : 5=ГРАФИКА : 6=ТЕКСТОВЫЕ РЕДАКТОРЫ : 7=ОФИС : 8=ИНТЕРФЕЙС : 9=ИГРЫ : 10=КОДЕКИ : 11=ПЛЕЕРЫ : 12=DVD-BLU-RAY ISO : 13=АРХИВАТОРЫ : 14=ИНФОРМАЦИЯ : 15=ФАЙЛОВЫЕ МЕНЕДЖЕРЫ : 16=РЕДАКТОРЫ РЕСУРСА : 17=ИНСТАЛЛЯЦИЯ : 18=УДАЛЕНИЕ : 19=КОНВЕРТЕРЫ : 20=МЕДИА РЕДАКТОРЫ : 21=ЗАПИСЬ : 22=ОБСЛУЖИВАНИЕ HDD-SSD : 23=ВИРТУАЛЬНЫЕ МАШИНЫ : 24=ДРАЙВЕРЫ : 25=MICROSOFT OFFICE 2003 : 26=MICROSOFT OFFICE 2007 : 27=MICROSOFT OFFICE 2010 : 28=MICROSOFT OFFICE 2013 : 29=MICROSOFT OFFICE 2016 : 30=БЕЗОПАСНОСТЬ : 31=ЗАВЕРШЕНИЕ : [Group] 0= - неправильная группа- 1= - CD-DvD-ISO : Burn 2= - CD-DvD-ISO : Copy 3= - CD-DvD-ISO : ISO 4= - CD-DvD-ISO : Virtual 5= - 6= - Drv : DrvPack 7= - Drv : Drv-Update 8= - Drv : Tools 9= - Drv : Mobile 10= - 11= - DeskTop : Calendar-DockBar-Widget 12= - DeskTop : Scr 13= - DeskTop : Tools 14= - 15= - Grafics : Edit 16= - Grafics : Snapshot 17= - Grafics : View 18= - Grafics : Toolz 19= - 20= - HDD : Defrag 21= - HDD : Manager 22= - HDD : Tweak 23= - 24= - File : Archive 25= - File : BackUp 26= - File : Dublicate 27= - File : FileManager 28= - File : Rename 29= - File : Search 30= - File : Synchro 31= - File : Tools 32= - 33= - Lan : Manager 34= - Lan : Remote 35= - Lan : Toolz 36= - 37= - I-net : Browzer 38= - I-net : Chat 39= - I-net : Cloud 40= - I-net : DC-FTP 41= - I-net : DefenZe 42= - I-net : Download 43= - I-net : Mail 44= - I-net : Toolz 45= - I-net : Torrent 46= - I-net : TV-Radio 47= - 48= - Media : Codecs 49= - Media : Edit 50= - Media : Encoder 51= - Media : Player 52= - Media : Toolz 53= - 54= - Office : Big-Pack 55= - Office : DJV-DWG-AutoCAD-Kompas 56= - Office : Edit 57= - Office : Font 58= - Office : Organize 59= - Office : PDF 60= - Office : Reader 61= - Office : Russ-ClipBoard 62= - Office : Scan 63= - Office : Translate 64= - 65= - Recovery : Password 66= - Recovery : Recovery 67= - 68= - USB-Flash : Defenze 69= - USB-Flash : Install 70= - USB-Flash : Manager 71= - 72= - Games 73= - 74= - System : Ms-Patch-Dx-Update 75= - System : Clear 76= - System : Toolz 77= - System : Tweak 78= - System : UnInstall 79= - System : Test 80= - 81= - DefenZe : Avir 82= - DefenZe : FireWall 83= - DefenZe : Scan 84= - DefenZe : Toolz 85= - 86= - Win7-8-10 : Crack 87= - Win7-8-10 : StartMenu 88= - Win7-8-10 : Tools 89= - 99= - Выход / Перезагрузка |
Последний раз редактировалось wadimus, 22-03-2018 в 20:13. Отправлено: 15:28, 22-03-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 256
|
Профиль | Отправить PM | Цитировать Сборка браузеров (Browser-Pack) вариант 16.03.18
немного за сборку .. в этой сборке собрал более 100 браузеров. реально! все популярные, не-популярные, экзотика, сплошная кЕтайщина, собрал всё, что встретилось на просторах тернета. много дублей и форков .. не правится браузер - ячейку долой! готовая сборка, распакуйте в любое место (флешку) и пользуйтесь. Browzers Pack Full (16.03.18).7z Сборка AKVIS Suite вариант 01.03.18 сборка всех программ от AKVIS. ретриалы и прочие варианты снятия триала удалены! AKVIS Suite (01.03.18) |
Последний раз редактировалось wadimus, 14-04-2018 в 21:24. Отправлено: 05:58, 23-03-2018 | #3 |
Старожил Сообщения: 256
|
Профиль | Отправить PM | Цитировать начало работы со всеми сборками:
- в сборке нет ни одного профиля, все ячейки неуспешные - в ячейках нет даты обновления, нет версии - одним словом: сборка пустая! - нам нужно её заполнить (обновить и загрузить свежие дистрибутивы) - если совсем ничего непонятно - нажмите 5-ую кнопку (Help) и четайте - запустите интегратор: файл start.exe - вначале создаём профиль для обновления нашей сборки: 3-ая кнопка (Create Update-pack) - сработает определённый скрипт (в окне) и по окончании работы скрипта появится попап-окно (сколько ячеек отработано) - далее можно запустить MInstAll (с профилем обновления) - в окне MInstAll будет много символов ? - не беда ![]() - отмечаем галочками нужные строки (можно всё) для обновления - для запуска обновления жмём кнопку Выполнить - после чего в синем окне будут работать скрипты обновлятора наших ячеек Внимание! вариант для Browzers Pack Full (16.03.18) : полностью заполненная сборка занимает около 7 Гиг! т.е. для заполнения всей сборки вам необходимо принять не менее 7 гиг из тернета! бойтесь владельцы лимитированного или платного трафика! вариант для AKVIS Suite (02.18) : полностью заполненная сборка занимает 4.8 Гиг! Еще одна проблема: время заполнения (обновления) сборки. если вы держите сборку в более или менее актуальном состоянии, то даже если вы выбрали все ячейки для обновления, в итоге у вас обновится 1-2 .. ну 10 ячеек. обновление будет только тогда, когда изменилась версия дистрибутива на офсайте (вернее их размер) в иных случаях обновлятор быстро завершит работу. некоторые ячейки заполняются ускорителем (спец.утилитой в 8-м потоков) некоторые ячейки не поддерживают такой тип скачивания и качаются обычным wget.exe время работы обновляторов зависит от серверов, где находятся эти дистрибутивы. некоторые быстрые, некоторые до ужжаса медленные ![]() определяйте сами такие ячейки (которые долго обновляются) - итак, после обновления всех (или любой части) ячеек ничего визуально не изменилось. ведь наш MInstAll работает со статичными профилями. - выйдем из MInstAll и перестроим профили заново. - перестроим профиль для обновления нашей сборки и запустим заново MInstAll - поглядим, остались ли еще в строках символа ? - если символ ? присутствует в ячейках - обновим эти ячейки (галочки и Выполнить) - наша задача: полностью заполнить сборку! Внимание! всего в сборке может быть очень много ячеек, 50 - 100 - ... кому-то это много ![]() многие ячейки дублируются, многие просто не нужны. как быть? убирайте ненужные ячейки! все ячейки расположены в папке Install зайдите туда и удалите всё ненужное вам. просто удалите папку! затем запустите интегратор и заново создайте профили - если в строках запущеного MInstAll уже нет символа ?, то наша сборка полностью заполнена! - выходим из MInstAll и создаем профиль Create Install-pack (2-ая кнопка) - далее опять заходим в MInstAll (1-ая кнопка) и уже работаем с профилем авто-установки. работа с уже заполненной сборкой: - запускаем интегратор, нажимаем первую кнопку и запускаем MInstAll (там уже выбираем нужный профиль) необходимо обновить сборку: - запускаем интегратор, создаем профиль для обновления нашей сборки: 3-ая кнопка (Create Update-pack) - запускаем MInstAll и обновляем нужные ячейки (или все) - после обновления перестроим профили и уже можно запускать MInstAll с профилем установки |
Последний раз редактировалось wadimus, 10-04-2018 в 20:32. Отправлено: 13:34, 24-03-2018 | #4 |
Старожил Сообщения: 256
|
Профиль | Отправить PM | Цитировать добавил AKVIS Suite вариант 01.03.18
см сообщение http://forum.oszone.net/post-2804943.html#post2804943 |
|
Отправлено: 20:31, 10-04-2018 | #5 |
Старожил Сообщения: 256
|
Профиль | Отправить PM | Цитировать немного о тактике.
работа с архивами. некоторые сайты предлагают скачать в качестве дистрибутива архив. понятно дело, распаковываем архив, работаем уже с файлами, которые были в архиве. архив уже не нужен, его удаляем! тут имеем 2-е проблемы: - первая: как определить, что дистрибутив изменился на офсайте? с обычными файлами проще - высчитали размер существующего файла (если он есть), определили размер файла на офсайте (без его скачивания), далее простое сравнение двух размеров. размеры одинаковы - качать не надо! размер разный - качать надо! архив же после распаковки не нужен, сохранять его в ячейке - не нужно! я эту проблему решаю так: - в ячейке появляется еще один файл size.txt. в нём в одной строке записан размер архива. в начале скачивания (когда ячейка пустая) этого файла нет. он создастся, когда будет успешно скачан архив, и в него (в файл size.txt) будет записан размер архива. далее после обработки (распаковки) и удаления архива у нас останется размер, с которым мы можем в дальнейшем сравнивать и принимать решение о скачивании изменившегося архива. - вторая проблема: что в архиве? некоторые (большинство ?) производителей в архиве пакуют определённое имя exe- или msi- (или иное) файлов. пример: Comodo Internet Security 10 дистрибутив получаем со стационарной ссылки: https://cdn.download.comodo.com/cis/..._installer.exe но полученный exe-файл - это архив! в нём есть 2 интересующих нас файла: cis_setup_x64.msi и cis_setup_x86.msi и эти файлы неизменны по именам! Winstep Nexus http://www.winstep.net/nexus.zip внутри архива неизменный файл: NexusSetup.exe посложнее пример: MusicBee отсюда: https://www.getmusicbee.com/downloads/ ищем архив и его скачиваем. на 11.04.18 ссылка такая: https://www.mediafire.com/file/d3fr2..._1_Update3.zip внутри архива имя такое: MusicBeeSetup_3_1_Update3.exe как быть тут? - качаем архив в определённое имя: MusicBeeSetup.zip - распаковываем его и переименовываем получившийся exe-файл в определённое имя: MusicBeeSetup.exe |
Отправлено: 11:05, 11-04-2018 | #6 |
Старожил Сообщения: 256
|
Профиль | Отправить PM | Цитировать переработал сборку
Сборка всех браузеров версия от 01.11.18 распакуйте в любое место читайте !faq!.txt - там вопросы и ответы сборка пустая, полное заполнение зависит от скорости тернета и может продолжаться более 1 часа полная сборка занимает более 8Гб |
Отправлено: 21:03, 05-11-2018 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
в Google Chrome выходит такое сообщение: мы зарегистрировали подозрительный трафик ис | Honey.da | Лечение систем от вредоносных программ | 1 | 02-06-2013 15:00 | |
Доступ - Авто принтеры и авто поиск сетевых папок | Василий-аноним | Microsoft Windows 2000/XP | 1 | 18-06-2012 18:02 | |
ИС Метролог 2.1 | OSZone Software | Новости программного обеспечения | 0 | 25-09-2009 21:30 | |
Система - [решено] Хочется обновляемый полный комплект утилит Nirsoft | truvo | Программное обеспечение Windows | 4 | 20-04-2009 23:14 | |
Проблема ис запуском Win 2000 | Anatoliy2004 | Microsoft Windows NT/2000/2003 | 9 | 06-08-2007 08:17 |
|