web-dev-qa-db-fra.com

Comment ajouter man et Zip à l'installation de "git bash" sous Windows

J'utilise "git bash" sous Windows - c'est git pour Windows via la bash intégrée. Apparemment, il utilise le support MINGW/MSYS. (Update from @VonC: It now utilise msys2 puisque msysgit est obsolète depuis le quatrième trimestre de 2015.)

Donc, de nombreux outils MSYS sont déjà installés - de awk à zcat. Toutefois, je manque la commande man et Zip pour compresser plusieurs fichiers dans un fichier Zip (unzip existe!). 

Où puis-je les installer? Je ne veux pas installer une autre copie du système MINGW! Est-il possible d'ajouter des outils précompilés à l'installation de git bash?

22
halloleo

La commande Zip peut être installée à partir de GoW (Gnu Sous Windows) . man n'est pas fourni (trop grand).

Il convient toutefois de noter que si vous uniquement souhaitez ajouter la commande Zip à partir de GoW, le système complet doit toujours être téléchargé et installé. Ensuite, vous pouvez supprimer les autres commandes du répertoire bin, tout en veillant toutefois à conserver les dll nécessaires dans le répertoire.

16
VonC

git-archive , est préparé sans aucune installation, peut créer une archive ZIP.

mkdir workrepo
cd workrepo
git init
cp -r [target_file_or_dir] .
git add .
git commit -m commit
git archive -o ../myarchive.Zip @
cd ..
rm -rf workrepo

Le script suivant peut être utilisable: Zip.sh foo.Zip target_file_or_dir

#!/usr/bin/bash

set -eu

unset workdir
onexit() {
  if [ -n ${workdir-} ]; then
    rm -rf "$workdir"
  fi
}
trap onexit EXIT

workdir=$(mktemp --tmpdir -d gitzip.XXXXXX)


cp -r "$2" "$workdir"

pushd "$workdir"
git init
git add .
git commit -m "commit for Zip"
popd

git archive --format=Zip -o "$1" --remote="$workdir" HEAD
6
yukihane

Je suis tellement heureux de partager mon expérience sur cette question que je ne connais pas depuis deux ans depuis le premier jour où j'ai joué avec Groovy. Ma méthode doit avoir git pour Windows installé sous Windows.

Les étapes pour résoudre ce problème pourraient être suivies:

  • Téléchargez et installez 7z-Zip à partir de son site officiel . Par défaut, il est installé dans le répertoire /c/Program Files/7-Zip sous Windows 10, comme dans mon cas.
  • Exécutez git Bash sous les privilèges d’administrateur et accédez au répertoire /c/Program Files/Git/mingw64/bin. Vous pouvez exécuter la commande ln -s /c/Program Files/7-Zip/7z.exe Zip.exe.
  • Suivez ensuite les instructions présentées dans sdkman website (si vous essayez d’installer sdk sous Windows, je suppose. Sinon, ignorez cette étape).

Je suis à peu près sûr que cela pourrait vous aider beaucoup. Croyez-moi!

5
Tung

Vous pouvez imiter un petit sous-ensemble de comportement man dans le shell en mappant man <command> à <command> --help | less.

Malheureusement, sur ma machine, les alias bash n’ajouteront pas d’indicateurs aux arguments de position, ils essaieront de l’exécuter en tant que commande et échoueront (alias man="$1 --help" ne fonctionne pas).

Et une fonction appelée man() n'est pas autorisée!

Heureusement, une combinaison de fonctions bash et d'alias permet de réaliser ce mappage. Mettez le code ci-dessous dans votre ~/.bashrc (créez-en un s'il n'est pas là). N'oubliez pas de source ~/.bashrc.

# man command workaround: alias can't pass flags, but can't name function man
m() {
    "$1" --help | less
}
alias man="m"

Cela ne vous donne pas la page de manuel complète, mais si vous ne recherchez que des informations de base sur une commande et ses indicateurs, vous aurez peut-être besoin de tout cela.

4
Dylan Kirkby

Vous pouvez installer des outils GNU individuels à partir de http://gnuwin32.sourceforge.net/packages.html tels que Zip.

Ajoutez ensuite "/c/Program Files (x86)/GnuWin32/bin" à PATH dans votre script de démarrage tel que .profile, .bash_profile, .bashrc, etc.

2
wisbucky

Ajouter 7-Zip à gitbash est facile.

  1. Installez 7-Zip sur Windows.
  2. ajouter un dossier 7-Zip à PATH exp: C:\Program Files\7-Zip
  3. dupliquer une copie de 7z.exe pour qu'il soit Zip.exe
  4. rouvrez gitbash again.done!

Je viens de le faire fonctionner! Sur mon ordinateur portable.

Conclusion: Gitbash fonctionne sous Windows Path, je pense que vous pouvez exécuter n’importe quelle commande que vous avez ajoutée à votre PATH Windows. 
Au fait, n'oubliez pas de donner votre avis sur vos résultats si vous essayez ceci.

1
nokieng

Voici les étapes que vous pouvez suivre.

  1. Cliquez sur le lien suivant https://sourceforge.net/projects/gnuwin32/files/

  2. Découvrez quelle que soit la commande qui vous manque Ici, j'ai besoin de Zip et de bzip2 pour la commande Zip. Parce que la commande Zip repose sur bzip2.dll à exécuter. Sinon, vous obtiendrez une erreur «erreur lors du chargement des bibliothèques partagées:?: Impossible d'ouvrir le fichier objet partagé: aucun fichier ni répertoire de ce type».

  3. Décompressez les fichiers téléchargés. Ici, je télécharge «Zip-3.0-bin.Zip» pour «Zip.exe» et «bzip2-1.0.5-bin.Zip» pour «bzip2.dll» dans le dossier bin. /bin/.exe

  4. Copiez le fichier exe de commande dans le dossier git-bash Ici, je copie «Zip.exe» et «bzip2.dll» dans\Git\usr\bin.

Lien de référence https://ranxing.wordpress.com/2016/12/13/add-Zip-into-git-bash-on-windows/

0
sagekoda

En ce qui concerne Zip, vous pouvez utiliser un script Perl suivant pour compresser les fichiers:

#!/usr/bin/Perl
use IO::Compress::Zip qw(:all);
$z = shift;
Zip [ @ARGV ] => $z or die "Cannot create Zip file: $ZipError\n";

Si vous le rendez exécutable, nommez-le Zip et mettez-le dans votre $PATH, vous pouvez l'exécuter comme suit:

Zip archive.Zipfiles...

cependant, cela ne fonctionnera pas pour les répertoires. Il n'est pas nécessaire d'installer quoi que ce soit, car Perl et tous les modules requis sont déjà présents dans Git pour Windows installation.

En ce qui concerne man, au moins pour git, il existe une documentation appelée comme ceci:

git option --help

il s'ouvrira dans votre navigateur par défaut.

0
mik

Si vous souhaitez également installer CygWin, vous pouvez ajouter le chemin CygWin à votre chemin GitBash. Si Zip existe, cela fonctionnera. par exemple. ajouter 

PATH=$PATH:/c/cygwin/bin
export PATH

à votre .bashrc; NOTE: Je le mettrais au end du chemin comme indiqué, pas au début.

CygWin étant doté d’un programme d’installation basé sur l’interface utilisateur, il est facile d’ajouter ou de supprimer des applications telles que Zip ou man.

Vous pouvez comprendre les chemins de fenêtres de chacun en disant 

`cygpath -w /bin`

dans chaque coquille respective. 

0