GNU/Linux >> Linux Esercitazione >  >> Linux

[Risolto] bash:sudo:comando non trovato

sudo , il comando più utile di Linux, a volte manca in diverse distribuzioni Linux, in particolare i contenitori docker e le distribuzioni Linux leggere.

sudo è un'utilità che consente agli utenti di eseguire comandi con root accesso. È il comando più utile ed è incluso in quasi tutte le principali distribuzioni Linux. Sì, quasi tutti. Diverse distribuzioni Linux, in particolare le immagini docker, non forniscono il sudo pacchetto per impostazione predefinita. Se vedi l'errore bash: sudo: command not found significa semplicemente che sudo non è installato.

bash:sudo:comando non trovato

Nella maggior parte dei casi, avviare il gestore pacchetti e installare sudo sarà sufficiente. Tuttavia, l'installazione di un nuovo pacchetto richiede l'uso di root capacità. Accedi come utente root e installa sudo .

Per Ubuntu o suoi derivati

$ apt install sudo

Per Fedora o suoi derivati

$ dnf install sudo

Per RHEL o suoi derivati

$ yum install sudo

Per Arch Linux o suoi derivati

$ pacman install sudo

Per le immagini Docker

Tuttavia, se non è presente un account root, come nel caso di numerose immagini Docker, ciò potrebbe non essere possibile. Quando crei un contenitore finestra mobile da un'immagine finestra mobile, l'immagine potrebbe avere o meno una root utente. In tal caso, dovremo creare un'immagine personalizzata con sudo pre installato. Non preoccuparti, è facile.

Crea un'immagine Docker personalizzata

Per creare un'immagine Docker personalizzata è necessario un Dockerfile. Dockerfile viene utilizzato per definire tutto in una determinata sintassi e il comando docker build viene utilizzato per generare un'immagine da esso. Ad esempio, se desideri creare un contenitore Docker utilizzando un'immagine Docker ospitata su Docker Hub, possiamo specificare nel Dockerfile quell'immagine come immagine di base e passare i comandi per installare strumenti aggiuntivi, ad esempio sudo nel nostro caso.

Crea file Docker

touch Dockerfile

Apri il Dockerfile nel tuo editor di testo preferito.

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

Abbiamo usato l'etichetta RUN nella terza parte, che è contrassegnata con "Installa gli strumenti", e qualsiasi comando dopo RUN verrà eseguito prima di generare la nostra immagine personalizzata. Quindi, digitando un comando qui, possiamo installare qualsiasi pacchetto desideriamo. Se continuiamo a scrivere comandi, possiamo persino avviare un server completo.

Per ulteriori informazioni su Dockerfile, fare riferimento alla documentazione ufficiale della finestra mobile.

Salva e chiudi il Dockerfile. Ora apri la riga di comando e vai alla directory contenente il Dockerfile ed esegui il seguente comando –

sudo docker build -t image-name:tag .
Modifica il nome-immagine:tag con qualsiasi nome e tag desideri.

Ricorda che il comando docker build accetta solo la directory, non il Dockerfile. Se specifichi nel comando il Dockerfile, otterrai l'errore:unable to prepare context: context must be a directory: /home/sandy/Dockerfile . Quindi devi essere all'interno della directory contenente Dockerfile e utilizzare . per specificare la directory corrente o il percorso completo della directory contenente Dockerfile.

E questo è tutto. docker build inizierà a costruire il comando. Ci vorranno alcuni secondi. Una volta terminato, la nostra immagine della finestra mobile personalizzata viene salvata nella nostra cache di immagini locale. Ora possiamo usare image-name:tag per creare un contenitore mobile con sudo preinstallato.


Linux
  1. Sudo:comando non trovato?

  2. bash:netstat:comando non trovato.

  3. id:comando non trovato

  4. w:comando non trovato

  5. df:comando non trovato

sudo:apt-add-repository:comando non trovato?

Comando alternativo all'aggiornamento non trovato?

visudo:comando non trovato

sudoedit:comando non trovato

sudo:comando non trovato

sudo:npm:comando non trovato