在新的GitHub动作,我试图安装一个包,以便在下一个步骤中使用它。

name: CI

on: [push, pull_request]

jobs:
  translations:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
      with:
        fetch-depth: 1
    - name: Install xmllint
      run: apt-get install libxml2-utils
    # ...

但是这在

Run apt-get install libxml2-utils
  apt-get install libxml2-utils
  shell: /bin/bash -e {0}
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
##[error]Process completed with exit code 100.

最好的方法是什么?我需要拿Docker吗?


医生说:

Linux和macOS虚拟机都使用无密码sudo运行。当您需要执行比当前用户需要更多权限的命令或安装工具时,您可以使用sudo而不需要提供密码。

所以简单地做以下几点就可以了:

- name: Install xmllint
  run: sudo apt-get install -y libxml2-utils

请在这里看到答案:https://stackoverflow.com/a/73500415/2038264

cache-apt-pkgs-action可以安装和缓存apt包,因此后续构建很快。它也更容易配置,只需添加你想要的包:

      - uses: awalsh128/cache-apt-pkgs-action@latest
        with:
          packages: dia doxygen doxygen-doc doxygen-gui doxygen-latex graphviz mscgen
          version: 1.0