Installer les outils uutils sous Windows

Installer les outils uutils sous Windows


Introduction

Canonical travaille sur la réimplémentation des outils de base Linux depuis quelques temps.

Le projet est suffisamment mature pour fonctionner sous Linux, et, grâce à Rust, est plutôt compatible Windows.

Il est possible, moyennant quelques modifications, d’avoir accès à tous les outils Linux directement dans Windows, c’est le but de cet article.

Build

De nombreux packages ne sont évidemment pas compatibles Windows (chmod etc.), et doivent être exclus.

On ne rencontre pas de problème avec la commande proposée par Canonical dans le README, mais les outils sont installés dans un binaire unique (coreutils.exe), on veux les utiliser séparément.

J’ai donc exclus les packages problématiques pour le build, et indiqué de build chaque binaire séparemment (--workspace --bins):

Build des outils

cargo build --release --workspace --bins --exclude uu_stdbuf --exclude uu_install --exclude uu_stat --exclude uu_who --exclude uu_timeout --exclude uu_chroot --exclude uu_pinky --exclude uu_chown --exclude uu_stty --exclude uu_nohup --exclude uu_nice --exclude uu_chmod --exclude uu_chgrp --exclude uu_id --exclude uu_mkfifo --exclude uu_kill --exclude uu_uptime --exclude uu_users --exclude uu_mknod --exclude uu_groups --exclude uu_logname --exclude uu_hostid

Installation

On peut ensuite installer les outils:

Installation propre des outils

mkdir C:\tools\coreutils
copy target\release\*.exe C:\tools\coreutils\

A noter que cargo install est exclus car il ne supporte pas nos options.

On peut ensuite ajouter simplement nos outils au PATH global (Win+R -> sysdm.cpl -> Avancé -> Variables d'environnement -> Ajouter C:\tools\coreutils)

Les outils Powershell type ls passeront toujours en priorité (ce sont souvent des alias)

Pour les retirer, il faut remove les alias initialement:

Editer $PROFILE

notepad.exe $PROFILE

Ajouter dans $PROFILE

Remove-Item Alias:ls -ErrorAction SilentlyContinue

Quitter et relancer Powershell après ces modifications, de nombreux outils Linux sont maintenant installés !

Quelques outils utiles rajoutés:

Enfin, pour sécuriser le dossier (et éviter que tout le monde modifie nos binaires):

Suppression de l’héritage d’ACL, RW aux admins, RX aux utilisateurs

icacls C:\tools /inheritance:r
icacls C:\tools /grant "Administrateurs:(OI)(CI)F"
icacls C:\tools /grant "Utilisateurs:(OI)(CI)RX"

Commandes à modifier pour un Windows en anglais…

Vérifier l’application des permissions ensuite:

icacls C:\tools