GNU/Linux >> LINUX-Kenntnisse >  >> Linux

[Behoben] bash:sudo:Befehl nicht gefunden

sudo , der nützlichste Befehl von Linux, fehlt gelegentlich in mehreren Linux-Distributionen, insbesondere in Docker-Containern und leichten Linux-Distributionen.

sudo ist ein Dienstprogramm, mit dem Benutzer Befehle mit root ausführen können Zugriff. Es ist der hilfreichste Befehl und in fast allen wichtigen Linux-Distributionen enthalten. Ja, fast alle. Mehrere Linux-Distributionen, insbesondere Docker-Images, liefern sudo nicht aus Paket standardmäßig. Wenn Sie den Fehler bash: sudo: command not found sehen es bedeutet einfach, dass sudo ist nicht installiert.

bash:sudo:Befehl nicht gefunden

In den meisten Fällen starten Sie Ihren Paketmanager und installieren sudo wird genug sein. Die Installation eines neuen Pakets erfordert jedoch die Verwendung von root Fähigkeiten. Melden Sie sich als Root-Benutzer an und installieren Sie sudo .

Für Ubuntu oder seine Derivate

$ apt install sudo

Für Fedora oder seine Derivate

$ dnf install sudo

Für RHEL oder seine Derivate

$ yum install sudo

Für Arch Linux oder seine Derivate

$ pacman install sudo

Für Docker-Images

Wenn jedoch kein Root-Konto vorhanden ist, wie im Fall zahlreicher Docker-Images, ist dies möglicherweise nicht möglich. Wenn Sie einen Docker-Container aus einem Docker-Image erstellen, kann das Image dies haben oder nicht ein root Benutzer. In diesem Fall müssen wir mit sudo ein benutzerdefiniertes Image erstellen vorinstalliert. Keine Sorge, es ist ganz einfach.

Benutzerdefiniertes Docker-Image erstellen

Eine Dockerfile ist erforderlich, um ein benutzerdefiniertes Docker-Image zu erstellen. Dockerfile wird verwendet, um alles in einer bestimmten Syntax zu definieren, und der Befehl docker build wird verwendet, um daraus ein Image zu generieren. Zum Beispiel, wenn Sie einen Docker-Container mit einem auf Docker gehosteten Docker-Image erstellen möchten Hub können wir dieses Image in der Docker-Datei als Basis-Image angeben und die Befehle zum Installieren zusätzlicher Tools übergeben, in unserem Fall sudo.

Dockerfile erstellen

touch Dockerfile

Öffnen Sie die Docker-Datei in Ihrem bevorzugten Texteditor.

nano Dockerfile or gedit Dockerfile
# This is the base image we will use to create our custom docker image
FROM ubuntu:latest
 
#
# the maintainer of an image
LABEL maintainer="[email protected]"
 
#
# Install the tools (sudo)
RUN apt-get update && apt-get upgrade -y && apt install sudo tasksel -y

Wir haben im dritten Teil das RUN-Label verwendet, das mit „Install the tools“ gekennzeichnet ist, und alle Befehle nach RUN werden ausgeführt, bevor unser benutzerdefiniertes Image generiert wird. Wenn wir also hier einen Befehl eingeben, können wir jedes gewünschte Paket installieren. Wenn wir weiterhin Befehle schreiben, können wir sogar einen vollen Server hochfahren.

Weitere Informationen zu Dockerfile finden Sie in der offiziellen Docker-Dokumentation.

Speichern und schließen Sie die Dockerfile. Öffnen Sie nun die Befehlszeile und navigieren Sie zu dem Verzeichnis, das die Dockerdatei enthält, und führen Sie den folgenden Befehl aus –

sudo docker build -t image-name:tag .
Ändern Sie das image-name:tag mit jedem gewünschten Namen und Tag.

Denken Sie daran, dass der Docker-Build-Befehl nur das Verzeichnis akzeptiert, nicht die Docker-Datei. Wenn Sie im Befehl das Dockerfile angeben, erhalten Sie den Fehler – unable to prepare context: context must be a directory: /home/sandy/Dockerfile . Sie müssen sich also in dem Verzeichnis befinden, das Dockerfile enthält, und verwenden . um das aktuelle Verzeichnis oder den vollständigen Pfad zum Verzeichnis mit Dockerfile. anzugeben

Und das ist es. docker build beginnt mit dem Erstellen des Befehls. Es dauert ein paar Sekunden. Sobald dies erledigt ist, wird unser benutzerdefiniertes Docker-Image in unserem lokalen Image-Cache gespeichert. Wir können jetzt den image-name:tag verwenden, um einen Docker-Container zu erstellen, auf dem sudo vorinstalliert ist.


Linux
  1. Update-alternative-Befehl nicht gefunden?

  2. Sudo:Befehl nicht gefunden?

  3. bash:netstat:Befehl nicht gefunden.

  4. visudo:Befehl nicht gefunden

  5. sudoedit:Befehl nicht gefunden

sudo:apt-add-repository:Befehl nicht gefunden?

df:Befehl nicht gefunden

du:Befehl nicht gefunden

rm:Befehl nicht gefunden

mv:Befehl nicht gefunden

sudo:python:Befehl nicht gefunden