Pull to refresh

Yandex Browser, стань портабельным! На линукс, плиз

Reading time2 min
Views21K

Omnia mea mecum porto (Рус: "Всё своё ношу с собой“) — фраза, которую Цицерон приписывал Бианту.

Наверняка, некоторые пользуются так называемыми portable-программами, которые запускаются из любого места на диске, а все данные хранят в своём же рабочем каталоге. Допустим, это может пригодиться, когда вы работаете за чужим компьютером и не хотите устанавливать программу, не хотите, чтоб она оставляла что-либо после себя в системе. Ну, или просто считаете, что данный подход — это "фэн-шуй". Данная заметка написана для случая с браузером от компании Яндекс для операционной системы Linux. Конкретно — для Ubuntu. На официальном сайте https://browser.yandex.ru/beta предоставлена возможность скачать установочный пакет deb, но других вариантов, а тем более так и не ставшего популярным AppImage — нет. Хотя про эту штуку, как утверждается на сайте https://appimage.org сам Линус Торвальдс сказал: — "This is just very cool".

Итак, сделаем браузер портабельным. Скачиваем пакет deb, открываем его как архив (допустим, с помощью файлового менеджера Double Commander), и видим, что в нём три папки: etc, opt, usr. В папке etc лежит папка для ежедневного запуска планировщиком cron.daily с символической ссылкой yandex-browser-beta. Данную папку мы проигнорируем. В папке usr лежат папки bin и share. В папке bin лежит символическая ссылка для запуска браузера. В папке share лежат тоже очень важные файлы - предлагаю и их проигнорировать. Находим вложенную папку browser-beta в папке opt, достаём её из пакета deb. Однако, если мы просто запустим из неё браузер, то профиль пользователя будет создан в системной папке пользователя /home/$USER/, а нас это явно не устраивает. Вспоминаем, что Яндекс браузер создан на основе движка Blink, используемого в открытом браузере Chromium, идём на страницу https://chromium.googlesource.com/chromium/src/+/master/docs/user_data_dir.md, на которой указано, что нужно написать в командной строке, чтоб запустить браузер с подменой папки профиля пользователя. А именно: chrome --user-data-dir. Пишем в командной строке:

/НАШ_ПУТЬ/browser-beta/yandex-browser-beta --user-data-dir=/НАШ_ПУТЬ/config

Если у вас уже есть папка профиля, просто скопируйте её в этот путь. Если её у вас нет - нужная папка создастся там сама. Казалось бы - вот счастье. Но не бывает же так, чтоб всё так просто оказалось. Как только расслабимся и погрузимся в просмотр любимых роликов на ютубе, то неожиданно заметим, что некоторые ролики (особенно стримы) не запускаются и вылетают с ошибкой, которая гласит что-то вроде: "An error occured. Please try again later". Проблема известная, но видимо, не слишком широко.

Видимо, в каталоге браузера лежит старая версия ffmpeg. Заходим по адресу https://mirror.yandex.ru/ubuntu/pool/universe/c/chromium-browser/, скачиваем последний по дате ffmpeg, например: chromium-codecs-ffmpeg-extra_90.0.4430.72-0ubuntu0.16.04.1_amd64.deb. Снова открываем пакет как архив, находим в нём файл libffmpeg.so, и заменяем им точно такой же, лежащий по пути /НАШ_ПУТЬ/browser-beta/lib/libffmpeg.so. Внимательный читатель обратил внимание, что в скачанном файле фигурирует цифра 16.04. Для Ubuntu 20.04 тоже есть deb пакет, но он не содержит нужного файла libffmpeg.so. Но ничего, в двадцатой убунте скачанный libffmpeg.so тоже будет работать.

Что ж, теперь всё работает, и чтобы каждый раз не тянуться к командной строке, можно создать шелл скрипт для его запуска.

Tags:
Hubs:
Total votes 13: ↑5 and ↓8-3
Comments10

Articles