Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров23K

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 тоже будет работать.

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

Теги:
Хабы:
Всего голосов 11: ↑3 и ↓8-3
Комментарии10

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн