GNU/Linux >> Tutoriels Linux >  >> Linux

[Corrigé] bash :sudo :commande introuvable

sudo , la commande la plus utile de Linux, est parfois absente de plusieurs distributions Linux, notamment les conteneurs Docker et les distributions Linux légères.

sudo est un utilitaire qui permet aux utilisateurs d'exécuter des commandes avec root accéder. C'est la commande la plus utile et elle est incluse dans presque toutes les principales distributions Linux. Oui, presque tous. Plusieurs distributions Linux, en particulier les images docker, ne fournissent pas le sudo paquet par défaut. Si vous voyez l'erreur bash: sudo: command not found cela signifie simplement que sudo n'est pas installé.

bash :sudo :commande introuvable

Dans la plupart des cas, démarrer votre gestionnaire de paquets et installer sudo sera suffisant. Cependant, l'installation d'un nouveau paquet nécessite l'utilisation de root capacités. Connectez-vous en tant qu'utilisateur root et installez sudo .

Pour Ubuntu ou ses dérivés

$ apt install sudo

Pour Fedora ou ses dérivés

$ dnf install sudo

Pour RHEL ou ses dérivés

$ yum install sudo

Pour Arch Linux ou ses dérivés

$ pacman install sudo

Pour les images Docker

Cependant, s'il n'y a pas de compte root, comme dans le cas de nombreuses images docker, cela peut ne pas être possible. Lorsque vous créez un conteneur Docker à partir d'une image Docker, l'image peut avoir ou non une root utilisateur. Dans ce cas, nous devrons créer une image personnalisée avec sudo Pre installé. Ne vous inquiétez pas, c'est facile.

Créer une image Docker personnalisée

Un Dockerfile est requis pour construire une image Docker personnalisée. Dockerfile est utilisé pour tout définir dans une certaine syntaxe, et la commande docker build est utilisée pour générer une image à partir de celle-ci. Par exemple, si vous souhaitez créer un conteneur Docker à l'aide d'une image Docker hébergée sur Docker Hub, nous pouvons spécifier dans le Dockerfile cette image comme image de base et transmettre les commandes pour installer des outils supplémentaires, c'est-à-dire sudo dans notre cas.

Créer un fichier Docker

touch Dockerfile

Ouvrez le Dockerfile dans votre éditeur de texte préféré.

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

Nous avons utilisé l'étiquette RUN dans la troisième partie, qui est marquée par "Installer les outils", et toute commande après RUN sera exécutée avant de générer notre image personnalisée. Ainsi, en tapant une commande ici, nous pouvons installer n'importe quel paquet que nous souhaitons. Si nous continuons à écrire des commandes, nous pouvons même faire tourner un serveur complet.

Pour plus de connaissances sur Dockerfile, reportez-vous à la documentation officielle du docker.

Enregistrez et fermez le Dockerfile. Maintenant, ouvrez la ligne de commande et accédez au répertoire contenant le Dockerfile et exécutez la commande suivante -

sudo docker build -t image-name:tag .
Changez le image-name:tag avec n'importe quel nom et tag que vous souhaitez.

N'oubliez pas que la commande docker build n'accepte que le répertoire, pas le Dockerfile. Si vous spécifiez dans la commande le Dockerfile, vous obtiendrez l'erreur - unable to prepare context: context must be a directory: /home/sandy/Dockerfile . Vous devez donc être dans le répertoire contenant Dockerfile et utiliser . pour spécifier le répertoire courant ou le chemin complet vers le répertoire contenant Dockerfile.

Et c'est tout. docker build commencera à construire la commande. Cela prendra quelques secondes. Une fois cela fait, notre image docker personnalisée est enregistrée dans notre cache d'image local. Nous pouvons maintenant utiliser la balise image-name:tag pour créer un conteneur Docker dans lequel sudo est préinstallé.


Linux
  1. Commande introuvable dans Bash corrigé

  2. La commande alternative de mise à jour est introuvable ?

  3. Sudo :Commande introuvable ?

  4. bash :netstat :commande introuvable.

  5. id :commande introuvable

sudo :apt-add-repository :commande introuvable ?

sudoedit :commande introuvable

sudo :commande introuvable

bash sh - commande introuvable

sudo :npm :commande introuvable

sudo :python :commande introuvable