playwright/utils/linux-browser-dependencies
Andrey Lushnikov 7906a8f2f5
feat: add best-effort support for Ubuntu 21.04 (#6429)
With this patch:
- `npx playwright install-deps` will install deps on Ubuntu 21.04
- launch doctor knows the package<->lib mapping for Ubuntu 21.04

**NOTE:** our webkit build, however, doesn't work on Ubuntu 21.04. Since
this is not LTS release, we're doing best-effort here.

Fixes #6405
2021-05-06 10:37:06 -07:00
..
inside_docker feat: add best-effort support for Ubuntu 21.04 (#6429) 2021-05-06 10:37:06 -07:00
.gitignore devops: add script to generate shared object => package mapping (#3022) 2020-07-20 10:35:42 -07:00
README.md devops: add script to generate shared object => package mapping (#3022) 2020-07-20 10:35:42 -07:00
run.sh devops: re-factor list-dependencies script to output per-browser results (#3194) 2020-07-29 13:38:54 -07:00

Mapping distribution libraries to package names

Playwright requires a set of packages on Linux distribution for browsers to work. Before launching browser on Linux, Playwright uses ldd to make sure browsers have all dependencies met.

If this is not the case, Playwright suggests users packages to install to meet the dependencies. This tool helps to maintain a map between package names and shared libraries it provides, per distribution.

Usage

To generate a map of browser library to package name on Ubuntu:bionic:

$ ./run.sh ubuntu:bionic

Results will be saved to the RUN_RESULT.

How it works

The script does the following:

  1. Launches docker with given linux distribution
  2. Installs playwright browsers inside the distribution
  3. For every dependency that Playwright browsers miss inside the distribution, uses apt-file to reverse-search package with the library.