Yandex Portable
github.com/Tensionix/yandex-portable ↗
Портативной сборки у Яндекса нет; эта программа собирает её и держит свежей. Ничего не пишется в реестр, удаление папки удаляет браузер. Отдельная польза — российские корневые сертификаты в нём уже есть, поэтому госпорталы открываются сразу.
6 загрузок с GitHubAudion Yandex Portable
Содержание
Собирает портативный Яндекс.Браузер, обновляет собранное и держит в свежем виде Chrome++, на котором держится сама портативность.
Зачем это сделано
У Яндекс.Браузера портативной сборки нет, а причин её иметь — две, и вторая неочевидна.
Первая: браузер отделяется от системы и переносится папкой. Обычная выгода портативности.
Вторая: сертификаты НУЦ Минцифры у него уже встроены. Российские государственные порталы выдают сертификаты, которых нет в хранилище Windows; другие браузеры без них эти сайты не открывают, и приходится ставить корневые сертификаты в систему. Яндекс.Браузер несёт их с собой — значит портативная сборка открывает такие сайты не трогая системное хранилище вообще.
В Windows при этом ничего не устанавливается: дистрибутив распаковывается, а не запускается.
Как это устроено
Полный дистрибутив — исполняемый файл, в ресурсах которого лежит ровно один архив с браузером. Программа достаёт его и раскладывает в папку сборки: браузер, профиль, файл запуска.
Chrome++
На нём держится портативность сборки, поэтому он обновляется наравне с самим браузером.
Про него стоит знать одно: сборка может упасть на упаковке с ошибкой доступа к файлу — и это не диск и не битый архив, а антивирус, разбирающий свежий исполняемый файл. Разобрано в tools\CHROME_PLUS_AND_DEFENDER.md.
Дальше
- Руководство — работа по шагам.
- Проверки — что прогоняется перед выпуском.
tools\CHROME_PLUS_AND_DEFENDER.md— Chrome++ и антивирус.tools\DECISIONS_EN.md— принятые решения.
Техническая часть
Что в сборке
Браузер, профиль с закладками и расширениями, файл запуска и запись о том, какие версии внутри. Переносится целиком, следов в системе не оставляет.
Обновление
Сверяется, что вышло у разработчика, с тем, что в сборке. Обновляется только изменившееся, профиль не трогается.
Программа портативная: распакованная папка и есть установленная программа. Реестр не трогается, удаление — удалить папку.
$name = "Audion_Yandex_Portable_v1.0.2_Full.zip"
Invoke-WebRequest "https://audion.dev/get/yandex-portable/1.0.2/Audion_Yandex_Portable_v1.0.2_Full.zip" -OutFile $name
Invoke-WebRequest "https://audion.dev/get/yandex-portable/1.0.2/Audion_Yandex_Portable_v1.0.2_Full.zip.sha256" -OutFile "$name.sha256"
$want = (Get-Content "$name.sha256").Split(" ")[0]
$have = (Get-FileHash $name -Algorithm SHA256).Hash.ToLower()
if ($want -ne $have) { throw "сумма не сошлась: загрузка повреждена" }
Expand-Archive $name -DestinationPath ".\yandex-portable"