Wie installiere ich apt-get in einer GitHub-Aktion?

75

In den neuen GitHub-Aktionen versuche ich, ein Paket zu installieren, um es in einem der nächsten Schritte zu verwenden.

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
    # ...

Dies schlägt jedoch mit fehl

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.

Was ist der beste Weg, dies zu tun? Muss es nach Docker greifen?

Niklas
quelle
2
sudo apt-get install libxml2-utils
Runwuf
4
In den Dokumenten heißt es: "Die virtuellen Linux- und MacOS-Maschinen werden beide ohne Kennwort ausgeführt. Daher sollte sudoes einfach sudo apt-getfunktionieren, wie @runwuf vorgeschlagen hat.
rmunn
Oh, das habe ich nicht erwartet. Fühlen Sie sich frei, dies als Antwort zu posten.
Niklas
@runwuf - Möchten Sie die Wiederholungspunkte für Ihre Antwort? Mach weiter und poste eine Antwort. Ich werde selbst eine Antwort posten, damit die Frage so aussieht, als hätte sie eine Antwort in der Suchliste. Wenn Sie jedoch eine Antwort posten, sollte Niklas sie akzeptieren und dann meine löschen.
Mittwoch,
1
@rmunn keine Sorge, Ihre Antwort hat die richtige Referenz und Details im Gegensatz zu meinem Einzeiler :) Prost! froh, dass es für dich funktioniert @Niklas!
Runwuf

Antworten:

114

Die Dokumente sagen:

Die virtuellen Linux- und MacOS-Maschinen werden beide ohne Kennwort ausgeführt sudo. Wenn Sie Befehle ausführen oder Tools installieren müssen, die mehr Berechtigungen als der aktuelle Benutzer erfordern, können Sie diese verwenden, sudoohne ein Kennwort angeben zu müssen.

Es sollte also einfach funktionieren, einfach Folgendes zu tun:

- name: Install xmllint
  run: sudo apt-get install libxml2-utils
rmunn
quelle
1
Es wäre schön, wenn jemand einen Einblick geben könnte, warum dies getan werden könnte ...
MichaelChirico
2
@ Mike'Pomax'Kamermans: Eine Erklärung dafür sudo: command not foundist, dass Sie eine Umgebungsvariable erstellt haben, die PATHin Ihrer Aktionsdatei benannt ist und den Systempfad überschreibt, der zum Suchen von Befehlen verwendet wird. Fragen Sie mich, woher ich weiß ...
Martin Liversage
8
in diesem Fall nicht , obwohl - ich wurde mit actfür die Offline - Test, und actnutze offenbar ein Bild , das nicht hat sudo, und es ist ziemlich Unsinn (es fehlt lsb-releaseauch, und ein whoooole Haufen anderer Dinge , die im Grunde Ihre Github Aktion machen Testen sinnlos )
Mike 'Pomax' Kamermans
sudosollte hier nicht gebraucht werden.
Naved Khan