mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-14 13:45:36 +03:00
6e78dcb7dc
Although very common, bash is not guaranteed to be located at `/bin/bash`. NixOS is an example of this. More commonly, `/bin/bash` can be quite out of date. An example of this is MacOS's version of `bash`. This realistically won't affect Playwright but it's worth noting. You can technically update MacOS's system version of bash but you need elevated permissions to do so. By using `/usr/bin/env bash` instead of `/bin/bash` we can execute Playwright's bash scripts in like NixOS and generally improve the selection behaviour for bash in other systems too. Some discussion of why it's worth favouring `/usr/bin/env bash` over `/bin/bash`: - Discusses `/bin/bash` missing in NixOS: https://discourse.nixos.org/t/add-bin-bash-to-avoid-unnecessary-pain/5673 - Some general commentary on why `/usr/bin/env bash` is favoured: https://askubuntu.com/a/1402721 - Points out how old bash is in MacOS: https://itnext.io/upgrading-bash-on-macos-7138bd1066ba Improves situation at #5501 |
||
---|---|---|
.. | ||
inside_docker | ||
.gitignore | ||
README.md | ||
run.sh |
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:
- Launches docker with given linux distribution
- Installs playwright browsers inside the distribution
- For every dependency that Playwright browsers miss inside the distribution, uses
apt-file
to reverse-search package with the library.