wadimus
  - Longevity: 6 years 10 months
- Posts: 764
- REPUTATION:91[+] [-]
|
korsak7, SunOK, хм .. а как вам такая система репачества: - зафиксировали систему - установили нужную прогу - еще раз зафиксировали систему - оформили разницу между двумя фиксами в исполняемый файл. это репак? да! ставится махом! занимает колоссально мало места! в гиг можно пару сотен программ зарепачить .. это нечестный репак! честность, ИМХО, в исходном инсталляторе и в инсталляторе твоего репака. исходный инсталлятор был на msi - и честный репак должен быть на msi. не на нсисе (подмигнул кролику) или на инно-сетапе (моргнул чупакабре) :)
|
KaSpieC 666
  - Longevity: 8 years 7 months
- Posts: 787
- REPUTATION:127[+] [-]
- Location: Одесса
|
wadimus, Приветствую. Суть репаков - вылечить (если нужно), убрать лишнее (программы/расширения/тулбары/не нужные дополнения к проге и т.д.), сделать ключи тихой установки, сделать по возможности максимально портативной (а не так, чтобы слово портативное, заканчивалось на этом слове, и весь срачь оставался на компе/реестре). И не только это. По-этому, делают репаки. Но и не все делают нормально, некоторые делают криво, либо свой хлам суют.
|
korsak7
  - Longevity: 8 years 9 months
- Posts: 1082
- REPUTATION:62[+] [-]
|
wadimus, идею сразу в топкуставится махом! занимает колоссально мало места! оба два восхищения - заблуждение не говоря уж про то что на разные оси ставится по разному и т.д.честность, ИМХО, в исходном инсталляторе и в инсталляторе твоего репака. исходный инсталлятор был на msi - и честный репак должен быть на msi. не на нсисе (подмигнул кролику) или на инно-сетапе (моргнул чупакабре) :) даже и не знаю как назвать такой подход, чтоб ты не разочаровался в жизни и меня не покарала десница праведная  ну то есть логика вообще непонятная
|
wadimus
  - Longevity: 6 years 10 months
- Posts: 764
- REPUTATION:91[+] [-]
|
korsak7, ох .. разработчики разрабатывают некую программу. для установки ея в систему используют или известный пакет для инсталляции или что-то само-писанное .. то есть, есть момент, когда данной программы нет в системе и есть момент, когда она уже стоит, зарегенная и настроенная, и по русски и без довесок и тулбаров. переход системы из одного такого состояния в другое (так называемая инсталляция) - он может быть разным, любым. и это всё можно (и нужно) назвать репаком! можно такой переход оформить в пакет известными средствами, например через msi, да хоть через WinRAR или 7zip! в своё время на ось-зоне продвигались репаки через inf-файл. чем не репак? быстрый! надёжный? .. был сторонником такого творчества лет 10 назад. а такой вид репака: инсталлировал оригинал с ключами, потом нужное поправил через реестр или путем копирования нужных файлов - имеет право на существования! а установка проги посредством авто-ита? тоже репак! так что, мир репаков как океан .. главное - делай! и сам! и не проси, чтобы кто-то сделал!
|
korsak7
  - Longevity: 8 years 9 months
- Posts: 1082
- REPUTATION:62[+] [-]
|
wadimus, а можно в 2 словах суть того что ты хотел этим сказать?
|
wadimus
  - Longevity: 6 years 10 months
- Posts: 764
- REPUTATION:91[+] [-]
|
6 слов: репак - это сделать установку программ проще!
|
 Отправлено: 06-Jun-2021 16:37
(after 3 years 4 months)
wadimus
  - Longevity: 6 years 10 months
- Posts: 764
- REPUTATION:91[+] [-]
|
Обновление ячеек. вначале немного теории. все файлы (дистрибутивы), скачиваемые из тернета, условно поделил на 2 группы: - обновляемые; - необновляемые; Обновляемые файлы это к примеру браузеры .. место-обитание таких файлов можно вычислить парсингом или использовать прямые ссылки. пример 1: Mozilla Firefox Last (поиск по FTP): исходная ресурс: http://ftp.mozilla.org/pub/firefox/releases/ парсинг по строке:[0-9][0-9][.][0-9][^b][^esr] ищем все вхождения строк типа: <цифра><цифра><. - точка> <еще цифра> и далее без буков b (это бета-версии) и esr (ESR пока не интересует тоже) берем 2-е последних строки поиска и сравниваем номера версий, т.к номерация строк такая: 58.0.2 а потом 58 далее может быть 58 и потом 59, если выйдет еще одна версия 59.0.1, то она будет первее 59!! выделяем только номера, записываем в переменные f1 и f2 и сравниваем их:if %f1% GTR %f2% (set "f=%f1%") else (set "f=%f2%") получаем прямые ссылки для самых новых версии Mozilla Firefox: https://ftp.mozilla.org/pub/firefox/releases/%f%/win32/ru/Firefox Setup %f%.exe https://ftp.mozilla.org/pub/firefox/releases/%f%/win64/ru/Firefox Setup %f%.exe пример 2: Google Chrome (MSI) Stable ссылки прямые: http://dl.google.com/edgedl/chrome/install/GoogleCh...neEnterprise.msi http://dl.google.com/edgedl/chrome/install/GoogleCh...Enterprise64.msi и таких примеров для обновляемых инсталляторов (у меня введено понятие ячейка) оченть много. НЕобновляемые файлы репаки и прочие переделки. Явного место-обитания таких файлов найти практически невозможно. как поступаю я: - скачиваю такой инсталлятор (репак) - многие репакеры уже заимели свои сайты по распространению своих поделок. - стандартизирую его имя. к примеру скачал: 4K Video Downloader v.4.16.1.4270 RePack + Portable by KpoJIuK файл имеет имя: 4K.Video.Downloader.v4.16.1.4270.exe переименовываю в: 4K.VDownloader.exe - далее определяю его версию и записываю полученное число в файл version.txt. - пакую 2 полученных файла 4K.VDownloader.exe + version.txt в некий файл (к примеру такой: 4K.Video.Downloader.rar) паковать также можно описание (файл about.txt) и/или батник авто-установки (ins.bat) .. короче всё, что изменили в процессе корректировки. - закидываю этот файл на ЯД в мою расшаренную папку (открытую яндекс-папку) в ячейке есть файл it.txtи также в ячейке есть батник получения НЕобновляемого файла - это файл pu.bat@echo off mode con cols=85 lines=5 SetLocal EnableExtensions EnableDelayedExpansion CD /d "%~dp0" echo ... Ya-Disk echo.?> "%~dp0alarm.txt" :: защита от дурака if not exist "%~dp0it.txt" exit/b получаем название файла Set /p w1=<"%~dp0it.txt" :: и вызываем внешний файл-интегратор качалок :: первый переданный аргумент - название нужного нам файла call "%~dp0..\..\ToolZ\pu-all.bat" %w1% exit/b в общей папке скриптов (папка ToolZ - она находится возле нашего MInstall) дополнительно есть несколько файлов: what.txt where.txt pu-all.bat файл what.txthttps://getfile.dokpub.com/yandex/get адрес спрямления яндекс-ссылки файл where.txthttps://yadi.sk/d/TQQSg2LF3NiZG3 адрес открытой яндекс-папки важны только первые строки таких файлов! файл pu-all.bat - это интегратор качалок::: первый переданный аргумент - это название файла, что нужно скачать set "w1=%1" :: защита от дурака if "%w1%" == "" exit/b if not exist "%~dp0where.txt" exit/b if not exist "%~dp0what.txt" exit/b :: читаем первую строку файлов Set /p wh=<"%~dp0where.txt" Set /p hw=<"%~dp0what.txt" :: сочиняем ссылку на файл: адрес открытой яндекс-папки + адрес спрямления яндекс-ссылки + название файла, что нужно скачать set "g1=%hw%/%wh%/%w1%" :: размер скачиваемого файла храним в файле size1.txt (если он есть), если файла нет - то используем 0 :: читаем размер и заносим в переменную fsize if exist "size1.txt" ( Set /p fsize=<"size1.txt" ) else ( set "fsize=0" ) :: определяем размер файла на ЯД и заносим его в переменную nsize ("..\Scripts\netsize.exe" "%g1%") >"down.txt" Set /p nsize=<"down.txt" :: размеры не совпадают - качаем, иначе - качать не надо if %fsize% NEQ %nsize% ( :: качаем через много-потоковую качалку axel.exe в 8 потоков :: защита от дурака - скачиваемый файл будет таким, к примеру: 234.rar.~ "..\Scripts\axel.exe" "%g1%" -k -a -n 8 -o "%w1%.~" :: определяем размер скачанного файла for %%a in ("%w1%.~") do set size=%%~za :: защита от дурака - если размер файла равен 0 - то файл не получен, идет на зачистку временных файлов if !size!==0 goto 1 :: всё нормально! :: удаляем старый файл (234.rar) а скачанный файл 234.rar.~ переименовываем в 234.rar del "%w1%" /q ren "%w1%.~" "%w1%" :: и заносим размер этого файла в файл size1.txt echo !size!> "size1.txt" echo %date%> "date.txt" :: далее полученный файл (это архив) 234.rar распаковываем с перезаписью :: в архиве кроме инсталлятора есть к примеру файл версии version.txt :: после чего полученный файл-архив удаляем :: "..\Scripts\7z.exe" x "%w1%" -y -o"." del "%w1%" /q :: ) del "alarm.txt" /q :1 del "down.txt" /q del "*.~" /q Для обновления ячейки - запускаем файл pu.bat если на ЯД есть новая версия этой ячейки - то она обновится иначе - ячейка останется с прежним содержимым Про утилиты netsize.exe и axel.exe - я писал ранее
|
wadimus
  - Longevity: 6 years 10 months
- Posts: 764
- REPUTATION:91[+] [-]
|
шаблон и как с ним работать Примечание: все утилиты для скачивания, определения размера, версии и протчее - находятся в папке Scripts - эта папка на одном уровне с нашей ячейкой - рабочая папка, где находятся все ячейки - обычно это папка Install | + - наша ячейка | + - еще одна или много ячеек | + - папка Scripts Начинаем работу - создаем папку, называем её по теме, копируем туда шаблон и начинаем с ним (шаблоном) работать в начале определение переменных, что качаем, как качаем, зачем .. цЫфры 1 или 2 в шаблоне - для различия (инсталляторов может быть и 2 - для х86 и х64 к примеру) если качаем один инсталлятор - используем переменные с 1 - остальные удаляем пример подготовки скачивания: возьмем прекрасную утилиту Simple IP Config и начнем переделывать наш шаблон страница на гит-хабе https://github.com/KurtisLiggett/Simple-IP-Config зашли на офсайт, кнопочка справа: Releases (13 - это число готовых релизов) - нажали, скопировали полную ссылку это будет первая строка в шаблонеset "h1=https://github.com/KurtisLiggett/Simple-IP-Config/releases" запустим шаблон, первое стопэ ..echo.?> "%~dp0alarm.txt" "%~dp0..\Scripts\wget.exe" -N --waitretry=5 -t5 -T15 "%h1%" Exit /B анализируем скачанную страницу .. решили, будем качать архив (т.н. архив портабле - AP) - это файл с расширением .zip первый найденный архив на странице: Simple-IP-Config-2.9.6.1.Portable.zip цЫфры в шаблоне не нужны, нормализуем имя: Simple-IP-Config-Portable.zip заполняем шапку - определение переменныхecho ... Simple-IP-Config set "h1=https://github.com/KurtisLiggett/Simple-IP-Config/releases" set "d1=download/.*[.]zip" set "w1=Simple-IP-Config-Portable.zip" переменные g1-g2 у нас вычисляемые - убираем лишние строки - убираем весь остальной мусор начинаем работу .. сайт гитхаб хорошо структурирован, позволяет работать с утилитой http2cli.exe плюс, легко вычисляется и версия того, что будем скачивать (она будет определяться из вычисляемой прямой ссылки g1)echo.?> "%~dp0alarm.txt" ("%~dp0..\Scripts\http2cli.exe" "%h1%" 2| findstr /R /C:"%d1%") >"%~dp0down.txt" for %%a in ("%~dp0down.txt") do set size=%%~za if %size%==0 goto 0 Exit /B второе стопэ .. в файл alarm.txt пишется что-то (символ ?) - это признак неуспешности ячейки (если этот файл есть в ячейке после скачивания - ячейка неуспешная) goto 0 - если ничего не скачали (нет тернета к примеру) - зачем нам еще что-то делать? на выход если файл alarm.txt уже был создан и мы ничего не скачали - этот файл не удаляется - ячейка неуспешная! - принимайте меры для появления тернета анализируем временный файл down.txt .. там одна строка (т.к. в нем находится ссылка на первый архив - потом таких архивов будет много)нам нужна первая строка! - анализируем её и вычисляем недоделанную ссылку (она между 2-ым и 3-им вхождением +++) и тут же приклеиваем к этой недоделанной ссылке голову (https://github.com) потом из подготовленной ссылки вычисляем версию того, что качаем:<"%~dp0down.txt" (for /f "tokens=1* delims=[]" %%a in ('find /n /v ""') do set "s%%a=%%b") FOR /F "tokens=2 delims=+++" %%a in ("%s1%") do set "g1=https://github.com%%a" FOR /F "tokens=7 delims=/" %%a in ("%g1%") do set "f=%%a" set f=%f:*v=% Exit /B третье стопэ .. анализируем результат .. получили прямую ссылку на наш архив для скачивания (она в переменной g1) - (сам архив в переменной w1) и также определили версию архива (она в переменной f) результат работы батника:.. set "g1=https://github.com/KurtisLiggett/Simple-IP-Config/releases/download/2.9.6.1/Simple-IP-Config-2.9.6.1.Portable.zip" set "f=2.9.6.1" .. Ну, что, прямая ссылка есть (переменная g1), что качаем есть (переменная w1), версия того, что качаем есть (переменная f) в строке g1 нет буквы v для версии - хотя у многих гитхабовских проектах она может быть - поэтому эта строка лишняя:далее - блок скачивания:if exist "%~dp0%w1%" ( for %%a in ("%~dp0%w1%") do set "fsize=%%~za" ) else ( set "fsize=0" ) ("%~dp0..\Scripts\netsize.exe" "%g1%") >"%~dp0down.txt" Set /p nsize=<"%~dp0down.txt" if %fsize% NEQ %nsize% ( cls echo. "%w1%" echo. "%~dp0..\Scripts\aria2c.exe" "%g1%" --check-certificate=false --console-log-level=error --file-allocation=none --allow-overwrite=true -x8 -s8 -o "%w1%.~" for %%a in ("%~dp0%w1%.~") do set size=%%~za if !size!==0 goto 0 del "%~dp0%w1%" /q ren "%~dp0%w1%.~" "%w1%" echo %date%> "%~dp0date.txt" ) Exit /B четвертое стопэ .. анализируем результат .. качаем файл качалкой aria2c.exe, предварительно определяем размер еще нескачанного из тернета файла утилитой netsize.exe качаем файл только тогда, когда размер рядом находящегося файла Simple-IP-Config-Portable.zip отличается от вычисленного по тернету размера если файла Simple-IP-Config-Portable.zip рядом нет - принудительно считаем этот размер 0if exist "%~dp0%w1%" ( for %%a in ("%~dp0%w1%") do set "fsize=%%~za" ) else ( set "fsize=0" ) качаем не напрямую файл (в переменной w1), а его временную копию (w1.~) то есть качаем не сразу файл Simple-IP-Config-Portable.zip - а временный файл Simple-IP-Config-Portable.zip.~ скачали (или не скачали - внезапно кончился тернет) - проверили размер этого временного файла. размер отличается от 0 - всё ок! по идее, размер этого временного файла должен был равняться с число, что записано в переменной nsize но, сделаем допущение - что-то скачалось (и размер этого что-то не равен 0) - скачивание будет успешным далее, удаляем наш старый файл Simple-IP-Config-Portable.zip а временный (Simple-IP-Config-Portable.zip.~) переименовываем в исходный (Simple-IP-Config-Portable.zip) строки:для красоты - в CMD-окне выдаст имя того, чего качаем всё! чистим и удаляем временные файлы вычисление версии того, что скачали - не делаем, версия уже получена (она в переменной f) пишем переменную f в файл version.txt и удаляем файл - признак неуспешности ячейки - alarm.txt удаляем временные файлы (*.~) - зачем нам мусор в ячейке?echo %f%> "%~dp0version.txt" del "%~dp0alarm.txt" /q :0 del "%~dp0down.txt" /q del "%~dp0*.~" /q Exit /B после окончания работы переработанного шаблона получили 3 файла: date.txt - в нем в первой строке дата получения готового файла version.txt - в нем в первой строке версия готового файла Simple-IP-Config-Portable.zip - это наш готовый файл Примечание. допустим, нам в ячейке нужен инсталлятор - файл с расширением .exe меняем в переработанном шаблоне строку:set "d1=download/.*[.]zip" на:set "d1=download/.*Setup.*[.]exe" и строку:set "w1=Simple-IP-Config-Portable.zip" на:set "w1=Simple-IP-Config-Setup.exe" и этого достаточно. начало нашего шаблона:@echo off mode con cols=85 lines=5 SetLocal EnableExtensions EnableDelayedExpansion CD /d "%~dp0" наш батник это - узкая терминальное окно в 5 строк. после скачивания (или нескачивания окно закроется) ЗЫ. код корявый до ужаса .. начальные строки шаблона были написаны лет 5 назад -так что, не обессудьте Добавлено через 36 минут 46 секунд: ЗЫ. в архиве - шаблон (с комментами) + готовый батник https://disk.yandex.ru/d/gCQnFcJtZjG85Q
|
wert
  - Longevity: 3 years 9 months
- Posts: 87
- REPUTATION:2[+] [-]
|
Last edited by wert on 2022-07-05 13:40; edited 2 times in total
|
wert
  - Longevity: 3 years 9 months
- Posts: 87
- REPUTATION:2[+] [-]
|
wadimus, вот пробоывл браузеры приладить яндекс и гугл не в какую не поддоются не самообноыляются Добавлено через 1 час 7 минут 14 секунд: всеи сдаюсь блин
|
wadimus
  - Longevity: 6 years 10 months
- Posts: 764
- REPUTATION:91[+] [-]
|
Yandexecho ... Yandex x86-x64 set "g1=https://browser.yandex.ru/download/?full=1&bitness=32" set "g2=https://browser.yandex.ru/download/?full=1&bitness=64" set "w1=Yandex-x86.exe" set "w2=Yandex-x64.exe" и блок скачивания с защитой от повторного скачивания 2 раза повторить (один раз для пары g1 и w1 и второй раз g2-w2) проверка версии - простая:("%~dp0..\Scripts\filever.exe" /A /D "%~dp0%w1%") >"%~dp0down.txt" FOR /F "usebackq tokens=4" %%a in ("%~dp0down.txt") do set f=%%a echo %f%> "%~dp0version.txt" Opera - аналогичноecho ... Opera Stable set "w1=Opera_setup-x86.exe" set "w2=Opera_setup-x64.exe" set "g1=http://www.opera.com/download/get/?partner=www&opsys=Windows&product=Opera¬hanks=yes" set "g2=http://www.opera.com/download/get/?partner=www&opsys=Windows&product=Opera&arch=x64¬hanks=yes" ссылки - я их называю запросные (запросил на офсайте - дайте новейшую версию оперы или яндекс-браузера с нужной разрядностью - нате тебе просимое) .. такие ссылки правильно называются .. хм .. забыл  далее для оперы - полный аналог, блок скачивания 2 раза, проверка версии такая же ..
|
 Отправлено: 05-Dec-2022 11:45
(after 4 months 30 days)
timon45
  - Longevity: 7 years 6 months
- Posts: 86
- REPUTATION:5[+] [-]
- Location: Беларусь
|
86218парсинг по строке: [0-9][0-9][.][0-9][^b][^esr] сейчас версии завалили за 100 (т.е. 3 знака) следовательно должно быть[0-9][0-9][0-9][.][0-9][^b][^esr] с этим все понятно, но как быть если есть версии: 107.0 и есть 107.0.1? в первом случае в первом случае,[0-9][0-9][0-9][.][0-9][^b][^esr] начнет качать 107.0 даже если есть новее 107.0.1 но если сделать[0-9][0-9][0-9][.][0-9][.][0-9][^b][^esr] скачает 107.0.1 т.е. ту что нужно (последнюю) но, парой выходят версии с одной точкой, т.е. 107.0 и парсинг выше не сработает, Как быть в таких случаях?
|
Page 8 of 9
Current time is: 24-Sep 02:53
All times are UTC + 3
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|