question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[BUG] nix and playwright: install-deps is missing required dependencies

See original GitHub issue

Context:

  • Playwright Version: 1.25.0
  • Operating System: Linux (Debian 11)
  • Node.js version: v16.1.0
  • Browser: Chromium
  • Extra:
➜ hostnamectl                                                                                                                                                                           
   Static hostname: work-machine
   Pretty hostname: work machine
         Icon name: computer-laptop
           Chassis: laptop
        Machine ID: c3a17238f0f0b7f7c73994f3616edc3e
           Boot ID: 87ed44a27c324165a0e5d31e49261133
  Operating System: Debian GNU/Linux 11 (bullseye)
            Kernel: Linux 5.12.0-rc7+
      Architecture: x86-64
➜ npx envinfo --preset playwright --markdown
## System:
 - OS: Linux 5.12 Debian GNU/Linux 11 (bullseye) 11 (bullseye)
 - Memory: 10.78 GB / 46.80 GB
 - Container: Yes
## Binaries:
 - Node: 16.1.0 - /nix/store/2mnn77jly8q0mqaayca5mjfv23f3pks4-bifrost-env/bin/node
 - npm: 7.11.2 - /nix/store/2mnn77jly8q0mqaayca5mjfv23f3pks4-bifrost-env/bin/npm
## Languages:
 - Bash: 5.1.8 - /nix/store/lz9s7v9xxkr3jf4wlah9vw1knmic2nda-bash-interactive-5.1-p8/bin/bash

Describe the bug

Tests are failing with the following error

  140) [Desktop Chrome] › playwright/tests/forms_cms_standard.spec.ts:24:9 › lp-standard cms-generated pages › [140/140] fills and submits form on /resources/workshop-gcp-workshop-2022/

    browserType.launch: 
    ╔══════════════════════════════════════════════════════╗
    ║ Host system is missing dependencies to run browsers. ║
    ║ Missing libraries:                                   ║
    ║     libgobject-2.0.so.0                              ║
    ║     libglib-2.0.so.0                                 ║
    ║     libnss3.so                                       ║
    ║     libnssutil3.so                                   ║
    ║     libsmime3.so                                     ║
    ║     libnspr4.so                                      ║
    ║     libatk-1.0.so.0                                  ║
    ║     libatk-bridge-2.0.so.0                           ║
    ║     libcups.so.2                                     ║
    ║     libgio-2.0.so.0                                  ║
    ║     libdrm.so.2                                      ║
    ║     libdbus-1.so.3                                   ║
    ║     libexpat.so.1                                    ║
    ║     libxcb.so.1                                      ║
    ║     libxkbcommon.so.0                                ║
    ║     libX11.so.6                                      ║
    ║     libXcomposite.so.1                               ║
    ║     libXdamage.so.1                                  ║
    ║     libXext.so.6                                     ║
    ║     libXfixes.so.3                                   ║
    ║     libXrandr.so.2                                   ║
    ║     libgbm.so.1                                      ║
    ║     libpango-1.0.so.0                                ║
    ║     libcairo.so.2                                    ║
    ║     libasound.so.2                                   ║
    ║     libatspi.so.0                                    ║
    ║     libwayland-client.so.0                           ║
    ╚══════════════════════════════════════════════════════╝

yet when running npx playwright install-deps, it’s telling me everything’s up-to-date and installed

➜ npx playwright install-deps                                                                                                                                                          
Installing dependencies...
Switching to root user to install dependencies...
Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://deb.debian.org/debian-security bullseye-security InRelease                                                                                                                                           
Hit:5 https://packages.microsoft.com/repos/vscode stable InRelease                                                                                                                                                
Hit:6 https://deb.beekeeperstudio.io stable InRelease                                                                                                                                                             
Hit:7 http://dl.google.com/linux/chrome/deb stable InRelease                                                                                                                                                      
Hit:8 https://download.docker.com/linux/debian buster InRelease                                                                                                                                                   
Hit:4 https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease                                                                                                                                     
Hit:9 http://fai-project.org/download bullseye InRelease                                                                                                                                     
Hit:10 http://deb.debian.org/debian bullseye-backports InRelease                                                               
Hit:11 http://repository.spotify.com stable InRelease               
Hit:3 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libasound2 is already the newest version (1.2.4-1.1).
libatk-bridge2.0-0 is already the newest version (2.38.0-1).
libatspi2.0-0 is already the newest version (2.38.0-4).
libatk1.0-0 is already the newest version (2.36.0-2).
libcairo-gobject2 is already the newest version (1.16.0-5).
libcairo2 is already the newest version (1.16.0-5).
libcups2 is already the newest version (2.3.3op2-3+deb11u2).
libdbus-1-3 is already the newest version (1.12.20-2).
libdbus-glib-1-2 is already the newest version (0.110-6).
libenchant-2-2 is already the newest version (2.2.15-1).
libfontconfig1 is already the newest version (2.13.1-4.2).
fonts-freefont-ttf is already the newest version (20120503-10).
fonts-ipafont-gothic is already the newest version (00303-21).
fonts-liberation is already the newest version (1:1.07.4-11).
fonts-noto-color-emoji is already the newest version (0~20200916-1).
fonts-tlwg-loma-otf is already the newest version (1:0.7.2-1).
fonts-wqy-zenhei is already the newest version (0.9.45-8).
libfreetype6 is already the newest version (2.10.4+dfsg-1+deb11u1).
libatomic1 is already the newest version (10.2.1-6).
libgdk-pixbuf-2.0-0 is already the newest version (2.42.2+dfsg-1).
libglib2.0-0 is already the newest version (2.66.8-1).
gstreamer1.0-libav is already the newest version (1.18.4-3).
gstreamer1.0-plugins-bad is already the newest version (1.18.4-3).
gstreamer1.0-plugins-base is already the newest version (1.18.4-2).
libgstreamer-gl1.0-0 is already the newest version (1.18.4-2).
libgstreamer-plugins-base1.0-0 is already the newest version (1.18.4-2).
libgstreamer1.0-0 is already the newest version (1.18.4-2.1).
libgtk-3-0 is already the newest version (3.24.24-4+deb11u2).
libharfbuzz-icu0 is already the newest version (2.7.4-1).
libharfbuzz0b is already the newest version (2.7.4-1).
libhyphen0 is already the newest version (2.8.8-7).
libicu67 is already the newest version (67.1-7).
liblcms2-2 is already the newest version (2.12~rc1-2).
libdrm2 is already the newest version (2.4.104-1).
libepoxy0 is already the newest version (1.5.5-1).
libevdev2 is already the newest version (1.11.0+dfsg-1).
libegl1 is already the newest version (1.3.2-1).
libgles2 is already the newest version (1.3.2-1).
libglx0 is already the newest version (1.3.2-1).
libopengl0 is already the newest version (1.3.2-1).
libgudev-1.0-0 is already the newest version (234-1).
libjpeg62-turbo is already the newest version (1:2.0.6-4).
libmanette-0.2-0 is already the newest version (0.2.5-1).
libnotify4 is already the newest version (0.7.9-3).
libpng16-16 is already the newest version (1.6.37-3).
libproxy1v5 is already the newest version (0.4.17-1).
libsecret-1-0 is already the newest version (0.20.4-2).
libsoup2.4-1 is already the newest version (2.72.0-2).
libwebp6 is already the newest version (0.6.1-2.1).
libwebpdemux2 is already the newest version (0.6.1-2.1).
libx11-6 is already the newest version (2:1.7.2-1).
libx11-xcb1 is already the newest version (2:1.7.2-1).
libxcb-shm0 is already the newest version (1.14-3).
libxcb1 is already the newest version (1.14-3).
libxcomposite1 is already the newest version (1:0.4.5-1).
libxcursor1 is already the newest version (1:1.2.0-2).
libxdamage1 is already the newest version (1:1.1.5-2).
libxext6 is already the newest version (2:1.3.3-1.1).
libxfixes3 is already the newest version (1:5.0.3-2).
libxi6 is already the newest version (2:1.7.10-1).
libxkbcommon0 is already the newest version (1.0.3-2).
libxml2 is already the newest version (2.9.10+dfsg-6.7+deb11u2).
libxrandr2 is already the newest version (2:1.5.1-1).
libxrender1 is already the newest version (1:0.9.10-1).
libxslt1.1 is already the newest version (1.1.34-4).
libxtst6 is already the newest version (2:1.2.3-1).
libgbm1 is already the newest version (20.3.5-1).
libnspr4 is already the newest version (2:4.29-1).
libnss3 is already the newest version (2:3.61-1+deb11u2).
libopenjp2-7 is already the newest version (2.4.0-3).
libopus0 is already the newest version (1.3.1-0.1).
libpango-1.0-0 is already the newest version (1.46.2-3).
libpangocairo-1.0-0 is already the newest version (1.46.2-3).
fonts-unifont is already the newest version (1:13.0.06-1).
libwayland-client0 is already the newest version (1.18.0-2~exp1.1).
libwayland-egl1 is already the newest version (1.18.0-2~exp1.1).
libwayland-server0 is already the newest version (1.18.0-2~exp1.1).
libwoff1 is already the newest version (1.0.2-1+b1).
xfonts-cyrillic is already the newest version (1:1.0.5).
xfonts-scalable is already the newest version (1:1.0.3-1.2).
gstreamer1.0-plugins-good is already the newest version (1.18.4-2+deb11u1).
xvfb is already the newest version (2:1.20.11-1+deb11u2).
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.

Here’s my playwright.config.ts

import { devices, PlaywrightTestConfig } from "@playwright/test";

const config: PlaywrightTestConfig = {
    forbidOnly: Boolean(process.env.CI),
    reporter: "list",
    fullyParallel: true,
    workers: 4,
    maxFailures: process.env.CI ? 10 : undefined,
    use: {
        trace: "on-first-retry",
        viewport: { width: 1440, height: 720 },
    },
    outputDir: "./playwright-test-results",
    projects: [
        {
            name: "Desktop Chrome",
            use: {
                ...devices["Desktop Chrome"],
                browserName: "chromium",
            },
        },
    ],
};

export default config;

Ideally install-deps should be installing those missing deps, and I don’t need to manually sudo apt install every single one.

Issue Analytics

  • State:closed
  • Created a year ago
  • Comments:8 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
rwollcommented, Aug 11, 2022

👍 Yeah, I’m not a nix user, but looks like the info in https://github.com/microsoft/playwright/pull/5806 will help (either the code or some community user comments in that PR).

If you’re open to it, feel free to contribute a PR doc page of how to use PW and nix!

1reaction
rwollcommented, Aug 11, 2022

Hid my last comment, as it’s no longer relevant.

one thing that i noticed is that the tests don’t fail with missing deps if I don’t run them in nix-shell. I assume the deps are being installed on my machine, but maybe they also need to be avail in nix?

I’m not a nix user, but it sounds like some interaction with nix and Playwright is not happy. For now, I recommend running outside of nix-shell since that works 😄 .

If you sort out the nix issue, please file a new issue and we can address, otherwise we’ll have to continue recommending running outside nix since I don’t have the expertise to troubleshoot nix.

Thanks!

Read more comments on GitHub >

github_iconTop Results From Across the Web

[BUG] nix and playwright: install-deps is missing required ...
I tried reproducing, but was unable to at this time: $ npx playwright install-deps 0 upgraded, 0 newly installed, 0 to remove and...
Read more >
[BUG] Can't run Playwright in Nix · Issue #5501 - GitHub
Running Playwright in Nix Shell throws missing dependencies error. ... [BUG] nix and playwright: install-deps is missing required ...
Read more >
playwright._impl._api_types.Error: Host system is missing ...
This means that your operating system dependencies are not installed. You can install them by executing playwright install-deps after you ...
Read more >
Release notes — conda-build 3.23.3+0.g20b08017.dirty ...
When checking for circular dependencies in cross-compiling mode, build requirements are ignored now. Make sure symlinked directories are found in ...
Read more >
27482 – parallel make -j 16 install falls over in 2.36
I think there may be some missing dependencies for libctf in binutils 2.36. I'm finding that 'make -j 16 install' falls over.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found