Comment faire pour obtenir l'AWS interface de ligne de commande pour travailler dans cygwin
J'ai installé l'interface de ligne de commande AWS sur mon Windows 7 boite, et cela a fonctionné immédiatement quand j'ai appelé des commandes à partir d'un shell DOS.
Mais le DOS, le pire de la langue jamais inventé, est hideuse pour tout sérieux de script. Donc, je voudrais utiliser AWS CLI de bash via cygwin.
Dans mon cas, l'installation de AWS CLI est la version Windows. En principe, cela ne devrait pas être un problème parce que les commandes de Windows sont exécutables à partir de cygwin. (cygwin comprend vos variables d'environnement de Windows, comme CHEMIN, dans son propre environnement.)
Malheureusement, lorsque j'ai d'abord essayé d'exécuter une AWS commande CLI à partir de cygwin/bash, j'ai une erreur:
$ aws s3 cp code.tgz s3://xyz/
upload failed: .\code.tgz to s3://xyz/code.tgz
Unable to locate credentials
Cette erreur est probablement à cause de la AWS CLI est à la recherche dans le mauvais répertoire pour le credentials
fichier. Sur Windows, il s'attend à ce que le fichier soit dans %UserProfile%.aws
et unix dans ~/.aws
.
Un hack de travail est que dans mon répertoire home, j'ai créé un nouveau fichier nommé config_credentials
qui contient une union du contenu de ce répertoire les fichiers config
et credentials
. J'ai ensuite fait un nouveau Système de Windows env var nommé AWS_CONFIG_FILE
dont la valeur est le chemin d'accès à config_credentials
. Succès: AWS commandes CLI émis à partir de cygwin maintenant travailler.
Je me demande si il y a une meilleure solution?
Je suis curieux de savoir pourquoi AWS CLI d'abord omis de recherche dans le bon répertoire pour l' config
et credentials
fichiers. Je me demande aussi si il existe un moyen de corriger cela (ce qui permettrait d'éliminer la nécessité pour les AWS_CONFIG_FILE
env var).
Seulement comme un dernier recours. Mon entreprise veut limiter le nombre de langues que nous utilisons (continuité de la maintenance est un sujet de préoccupation), et bash est utilisé à plusieurs endroits (en particulier sur les serveurs) alors que PowerShell n'a jamais été utilisé. Il y aurait à être vraiment convaincante de cas d'utilisation pour justifier une nouvelle langue.
Ah oui, ms-DOS, que le bien-connu de la langue.
OriginalL'auteur HaroldFinch | 2015-06-12
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. J'ai eu autour de lui par l'installation d'une nouvelle copie de AWSCLI dans Cygwin. Vous devez d'abord installer le "curl" et "python" Cygwin paquets, alors vous pouvez installer AWSCLI comme suit:
Si vous utilisez bash, et vous avez déjà exécuté la Windows AWS ligne de commande, vous devez vider le cache de chemin d'accès comme suit:
"aws --version" va alors ressembler à ceci:
par opposition à la ligne de commande de Windows de sortie, qui ressemble à ceci:
Je suis maintenant capable de faire "aws configurer" sous Cygwin, et tout fonctionne comme il se doit.
Travaillé, mais j'ai dû utiliser cygwin copie installée de python, plutôt que de l'une par l'intermédiaire de la msi windows installer.
Où faut-il installer? Je dois avoir un mauvais chemin, car même si pip installe
aws
ne peut pas être trouvé.Justin, êtes-vous sûr que vous êtes en utilisant Cygwin Python plutôt que celui de Windows, comme Adrian souligné? Je viens de réinstallé, et: "python" donne-moi "/usr/bin/python", "qui aws" donne "/usr/bin/aws" et "aws --version" donne "aws-cli/1.11.66 Python/2.7.13 CYGWIN_NT-10.0/2.7.0(0.306/5/3) botocore/1.5.29".
Quand je lance
which python
il retourne la version de python stockées dans le Windows Anaconda répertoire: c'est à dire C:\Users\rchase\AppData\Local\Continuum\Anaconda2\python.exe. Comment m'y prendre pour changer cela? Est-ce à dire on ne peut pas utiliser l'anaconda version de python??OriginalL'auteur Craig Heath
Après BEAUCOUP de temps passé sur le présent, j'ai trouvé une solution qui fonctionne.
Le principal problème est que la cygwin n'est pas venu avec python installé, et ne savez pas où trouver les Fenêtres existantes Anaconda version sur votre ordinateur. Cela peut être vérifié en exécutant qui de python à l'intérieur de cygwin - il ne pouvait pas trouver où python est enregistré. Notez que cela peut être source de confusion, car l'exécution du pip install awscli probablement ne jette pas un message d'erreur. Cygwin procède à l'installation de awscli dans la Fenêtre d'installation Anaconda de Python (je trouve cela bizarre, car nous n'avons pas rencontré conda installer awscli).
CEPENDANT, plutôt que d'essayer de pointer cygwin pour la version déjà installée de Anaconda python sur votre machine, il va vous faire économiser une tonne de maux de tête, il suffit d'installer un cygwin instance spécifique de python. Les étapes pour le faire sont documentées ici: http://wiki.fast.ai/index.php/Awscli_in_cygwin)
pip uninstall awscli
wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /bin
apt-cyg install python
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install awscli
...À noter, cependant, que la première commande
pip uninstall awscli
"hung up" pour moi. Donc, juste de sortir de l'aidequit()
et continuer avec les autres dans l'ordre.Vous pouvez vérifier que tout fonctionnait si vous exécutez
which python
dans cygwin, et il points de la cygin version (c'est à dire /usr/bin/python , par opposition à l': /users/.../Anaconda2/).En outre, si vous arrive d'être en demandant à ce projet en collaboration avec l'écoute de l'installation vidéo pour le jeûne.ai cours (http://course.fast.ai/lessons/aws.html), alors la prochaine étape est CRITIQUE pour les utilisateurs de Windows: lorsque vous téléchargez tous les scripts shell à partir de Github dossier d'installation (https://github.com/fastai/courses/tree/master/setup), Windows ajoute automatiquement CRLF ligne terminators! Par conséquent, dans cygwin, exécutez les commandes suivantes pour supprimer ces fins de ligne:
apt-cyg install dos2unix
dos2unix setup_p2.sh
dos2unix setup_instance.sh
bash setup_p2.sh
Cela devrait faire l'affaire.
which python
a montré correctement maiswhich pip
n'a pas - et c'était mon problème. J'ai fini par désinstaller tous mes instances de python (à l'exception de l'anaconda) et la suppression du dossier avec le cache des paquets dans mon disque C (le python dossier). Après que j'ai été en mesure d'exécuter get-pip, vérifier, j'ai été de l'appeler, et enfin installer awscli. Ce que les maux de tête!même que j'ai le même problème, est-il possible que je peux le faire sans la suppression de toutes les instance de python car je l'utilise aussi bien?
OriginalL'auteur Ryan Chase
J'ai utilisé aws configurer à partir de DOS fenêtre cmd pour créer les fichiers cfg (configuration et les informations d'identification) et les a testés auprès d'un échantillon aws cmd (dans la fenêtre DOS). Puis j'ai copié Users\.aws dossier à l'endroit où cygwin pense que l'accueil de l'utilisateur les dossiers sont (dans mon cas c:\cygwin64\home\). J'ai ensuite utilisé TextPad pour convertir les fins de ligne (utiliser le fichier>enregistrer sous, sélectionnez les fins de ligne unix; assurez-vous que les fichiers ne sont renommés x.txt). Maintenant, il fonctionne.
OriginalL'auteur Tom Murphy