Je travaille sur la machine Windows et j'utilise bash Shell fourni avec Git. Mais il existe de nombreux utilitaires qui manquent dans cette version de bash Shell.
Comment puis-je installer plus de commandes sur ce shell?
Il y a deux versions de Git que vous utiliserez probablement - le msysgit distribution ou Cygwin .
Même si vous n’avez peut-être installé Git que dans le cadre de votre installation Cygwin (si vous avez utilisé Cygwin), Cygwin dispose d’un programme appelé setup.exe que vous pouvez utiliser pour ajouter des packages. Essentiellement, tout ce que vous avez à faire est d’exécuter setup.exe
et de choisir les programmes à installer lorsque vous accédez à la fenêtre Select Packages . L'introduction ici fournit un bon aperçu avec des images détaillant le processus.
Le programme d’installation de Cygwin est assez intelligent pour comprendre que vous avez une installation préexistante et il ajoutera des packages à votre installation (au lieu de la remplacer et de recommencer).
L'autre version de Git que vous utilisez probablement (sinon Cygwin) est msysgit. Dans la mesure où msysgit installe un environnement minimal Unix peu compatible avec MinGW, vous devrez installer la suite MinGW à côté de msysgit. La page MinGW Mise en route donne un aperçu détaillé de la procédure à suivre pour installer MinGW. Étant donné que je n’ai aucune expérience personnelle de MinGW, tout ce que je peux faire est de vous référer à leurs instructions.
Vous devrez ensuite migrer votre installation msysgit vers MinGW. Ceci peut être accompli en procédant comme suit (tiré de ici ). Une fois la séquence suivante effectuée, MinGW devrait rechercher votre installation Git.
cd GITDIR # Where GITDIR is wherever inside Program Files you put Git
cp bin/git* /MINGW/bin # Where MINGW is wherever you put MinGW
cp -r libexec/git* /MINGW/libexec
cp -r share/git* /MINGW/share
Si vous utilisez msysgit, une option simple consiste simplement à installer MinGW , puis à ajouter le chemin MINGW au fichier .bashrc que vous utilisez pour votre installation Git:
PATH=$PATH:/MINGW/msys/1.0/bin
... où MINGW est où vous avez installé MinGW
De cette façon, vous pouvez utiliser les outils MinGW directement depuis votre installation Git bash. Si vous avez besoin d'un autre outil bash, vous pouvez simplement l'installer dans MinGW.
Avec les récents Git pour Windows installations, il est assez facile d’installer des scripts et programmes Shell supplémentaires.
Je recommande d'installer git avec chocolateychoco install git
, car vous pouvez mettre à jour git (et tous les autres outils installés avec chocolatey) en exécutant choco upgrade all
.
Il suffit de mettre les exécutables dans C:\Program Files\Git\usr\bin
(%ProgramFiles%\Git\usr\bin
).
Copiez le fichier git-fresh dans C:\Program Files\Git\usr\bin
.
src/
dans C:\Program Files\Git\usr\bin
J'ai trouvé une réponse assez simple aujourd'hui qui a fonctionné pour rsync
.
rsync
depuis futureware.at *C:\rsync-3.1.2-2-x86_64.pkg
* Je ne sais pas qui est derrière Futureware.at, je préférerais créer un lien vers une source plus primaire.
Vous pouvez télécharger des unités Unix supplémentaires Wget, Hugo, Xpdf, make, Nano
à partir d’ici: https://Gist.github.com/evanwill/0207876c3243bbb6868e65ec5dc3f058
wget64.exe
en wget.exe
si nécessaire.wget.exe
vers votre Git\mingw64\bin\
.Remarque: j'ai remarqué quelques bugs lors de l'utilisation de Wget sur Git Bash pour créer des fichiers WARC. Pour une utilisation plus complexe de Wget, considérons plutôt Cygwin .
Hugo le générateur de site statique peut être téléchargé en tant que fichier binaire et ne dispose pas d'un programme d'installation. Le déposer dans votre bin
l'ajoute facilement à votre chemin Git Bash. Prenez la version Windows 64 bits à partir de la page des versions . Décompressez le téléchargement, puis copiez hugo.exe
dans votre répertoire Git\mingw64\bin
.
Xpdf est un utilitaire pratique pour manipuler des fichiers PDF.
xpdf-tools-win-4.00\bin64\
dans votre Git\mingw64\bin\
.pdftotext
et pdftopng
.make-4.1-2-without-guile-w32-bin.Zip
(obtenez la version sans astuce).Git\mingw64\
fusionnant les dossiers, mais ne remplacez/remplacez aucun fichier existant.À compter de 2018, les versions récentes de Git Bash incluent Nano, c'est donc inutile!
.exe
, nommé nano-git-0d9a7347243.exe
(au moment de l'écriture).nano.exe
et copiez-le dans le répertoire mingw64\bin
.winpty
, par exemple, winpty nano test.txt
.On pourrait augmenter le nombre de fonctionnalités de git-bash en créant des scripts et les appeler en les définissant dans le fichier ~/.bash_profile
.
Exemple
Si vous souhaitez utiliser la commande watch
, alors ce script peut être ajouté au ~/.bash_profile
:
https://Gist.github.com/espaciomore/28e24ce4f91177c0964f4f67bb5c5fda
ARGS="${@}" clear; while(true); do OUTPUT=`$ARGS` clear echo -e "${OUTPUT[@]}" done
et l'envelopper dans une fonction:
watch() {
ARGS="${@}"
clear;
while(true); do
OUTPUT=`$ARGS`
clear
echo -e "${OUTPUT[@]}"
done
}
Dès que l'on enregistre le fichier et exécute source ~/.bash_profile
, on devrait pouvoir regarder le résultat des commandes.
J'ai essayé ce qui suit et installé emacs sur git-bash .. 1. Installez msys2 quelque part (il ne doit pas nécessairement s'agir du même ordinateur). 2. Sous msys2, exécutez ce qui suit:
cd /tmp mkdir -p var/lib cp -R /var/lib/pacman var/lib/ pacman -Sr /tmp emacs tar zcf emacs.tar.gz usr
Copiez
emacs.tar.gz
où vous pouvez accéder depuis git-bash, puis sous git-bash:tar zxf emacs.tar.gz -C/emacs
C'est tout, bonne chance.
Après le premier post, j'ai essayé un autre ordinateur mais je ne travaillais pas. Il se trouve que certaines DLL sont manquantes dans git-bash. Ensuite, j'ai testé sur une machine virtuelle propre en procédant comme suit:
Installez msys2-x86_64-20180531 et Git-2.19.1-64-bit .
Mettez à jour msys2, ouvrez la console msys64 et exécutez:
pacman -Syyu
Fermez la console msys64 à l'invite, puis réexécutez la commande ci-dessus.
Obtenez les fichiers emacs comme dans les étapes précédentes (procédez comme suit dans msys64):
cd /tmp
mkdir -p var/lib
cp -R /var/lib/pacman var/lib/
pacman -Sr /tmp emacs
tar zcf emacs.tar.gz usr
mv emacs.tar.gz /c/tmp
ps: J'ai déjà essayé les étapes ci-dessus dans/d/tmp au lieu de/tmp et je n’ai pas pu y installer emacs.
Ouvrez git-bash et extrayez les fichiers emacs:
cd /c/tmp
tar zxf emacs.tar.gz -C /
Il va se plaindre manquant bibliothèque partagée "?" en essayant de lancer Emacs maintenant. Le "?" ne sera révélé à aucun lisible
Retournez à msys64 et récupérez les dlls msys2:
ls --color=never /bin/*.dll > /c/tmp/1.txt
Dans git-bash, comparez les dll avec msys:
cd /c/tmp
git init
git add 1.txt && git commit
ls --color=never /bin/*.dll | sed 's#\*$##g' > /c/tmp/1.txt
git diff 1.txt | grep '^-' | sed '1d' | sed 's#^-/bin/##g' > diff_dlls.txt
Dans mon cas, il y a 26 dll dans diff_dlls.txt.
Copiez les dll de msys64 dans git-bash:
Dans msys64:
mkdir /c/tmp/dlls
cat /c/tmp/diff_dlls.txt | xargs -I {} cp /bin/{} /c/tmp/dlls
En git-bash:
cp /c/tmp/dlls/* /bin
Tout est terminé, maintenant emacs s'exécute en git-bash. Certaines des 26 dll ne sont peut-être pas nécessaires, mais je préférerais gagner du temps plutôt que de l'espace disque.
Si vous utilisez Git bash pour Windows (MinGW64), j’ai eu beaucoup de mal à faire ajouter rsync. continué à avoir l'erreur: dup () in/out/err a échoué
Au lieu de cela, utiliser Cygwin a finalement fonctionné.
Mesures prises pour utiliser rysnc dans Gitbash pour Windows
Windows-> Système-> Réglages avancés-> Variables d'environnement
Ajouter un chemin pour C:\cygwin64\bin \
*** erreur fatale - incompatibilité base cygheap détectée
installer "Git pour Windows SDK" (aller au bas de https://gitforwindows.org/ qui fournit un lien pour télécharger le programme d’installation depuis https://github.com/git-for-windows/build-extra/releases/latest )
https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows/52105321#52105321