Wie man AWS command line interface arbeiten in cygwin
Habe ich installiert, die AWS-Befehlszeilen-Schnittstelle auf meinem Windows 7-Rechner, und es hat sofort funktioniert, wenn ich die genannten Befehle aus einer DOS-shell.
Aber DOS ist die Schlimmste Sprache, die jemals erfunden wurde, ist abscheulich für jeden ernsthaften scripting. Also, würde ich mag, um zu verwenden Sie die AWS CLI von bash via cygwin.
In meinem Fall, die installierten AWS CLI und die Windows-version. Im Prinzip, das sollte kein problem sein, weil Windows-Kommandos sind ausführbare Datei von cygwin. (cygwin enthält Ihre Windows-Umgebungsvariablen, wie PFAD, in seiner eigenen Umgebung.)
Leider, als ich versuchte, führen Sie eine AWS-CLI-Befehl von cygwin/bash, ich bekam eine Fehlermeldung:
$ aws s3 cp code.tgz s3://xyz/
upload failed: .\code.tgz to s3://xyz/code.tgz
Unable to locate credentials
Dieser Fehler ist wahrscheinlich, weil die AWS CLI Blick in das falsche Verzeichnis für die credentials
- Datei. Auf Windows, rechnet es sich, die Datei in %UserProfile%.aws
und in unix in ~/.aws
.
Einem hack umgehen, ist, dass in meinem home-Verzeichnis habe ich erstellt eine neue Datei mit dem Namen config_credentials
enthält eine union der Inhalt dieses Verzeichnisses die Dateien config
und credentials
. Ich machte dann eine neue Windows-System env var namens AWS_CONFIG_FILE
deren Wert der Pfad zu config_credentials
. Erfolg: AWS CLI-Befehle, die von cygwin funktionieren jetzt.
Frage ich mich, ob es eine bessere Lösung?
Ich bin neugierig, warum AWS CLI zunächst keine Suche in die richtige home-Verzeichnis für den config
und credentials
- Dateien. Ich Frage mich auch, ob es eine Möglichkeit gibt zu korrigieren, dass (dieses würde die Notwendigkeit beseitigen, für die AWS_CONFIG_FILE
env var).
Nur als letzten Ausweg. Meine Firma will limit, wie viele Sprachen, die wir verwenden (Kontinuität der Wartung ist ein Anliegen), und die bash verwendet an mehreren stellen (vor allem auf Servern) in der Erwägung, dass PowerShell wurde noch nie genutzt. Es müsste eine wirklich überzeugende Anwendungsfall zu rechtfertigen, eine neue Sprache.
Ah ja, DOS, bekannte Sprache.
InformationsquelleAutor HaroldFinch | 2015-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem. Ich habe um es durch die Installation einer neuen Kopie von AWSCLI innerhalb von Cygwin. Sie müssen zuerst installieren Sie die "curl" und "python" Cygwin-Pakete, installieren Sie AWSCLI wie folgt:
Wenn Sie die bash benutzen, und Sie haben zuvor ausgeführt, die Windows AWS-Befehlszeile, müssen Sie zum löschen der Cache-Pfad wie folgt:
"aws --version" wird dann etwa so Aussehen:
im Gegensatz zu den Windows-Befehl line-Ausgang, die etwa so aussieht:
Ich bin jetzt in der Lage, das zu tun "aws konfigurieren" unter Cygwin, und alles funktioniert wie es sollte.
Gearbeitet, allerdings hatte ich die Verwendung der cygwin installierte Version von python, anstatt das man über die windows-msi-installer.
Wo wird es installiert? Ich muss einen schlechten Weg, denn obwohl pip installiert
aws
kann nicht gefunden werden.Justin, sind Sie sicher, dass Sie mit der Cygwin-Python-anstatt das Windows einen, wie Adrian darauf hingewiesen? Ich habe gerade neu installiert, und: "die python" gibt mir "/usr/bin/python", "die aws" vermittelt "/usr/bin/aws" und "aws --version" gibt "aws-cli/1.11.66 Python/2.7.13 CYGWIN_NT-10.0/2.7.0(0.306/5/3) botocore/1.5.29".
Wenn ich
which python
es gibt die python-version gespeichert in der Windows-Anaconda-Verzeichnis: d.h. C:\Users\rchase\AppData\Local\Continuum\Anaconda2\python.exe. Wie gehe ich zum ändern? Bedeutet das, dass wir nicht verwenden können, anaconda python version??InformationsquelleAutor Craig Heath
Nachdem eine MENGE Zeit verbracht, auf dieses, ich habe eine Lösung gefunden, die funktioniert.
Das primäre Problem ist, dass die cygwin nicht mit python installiert, und nicht wissen, wo Sie die vorhandenen Windows-Anaconda-version auf deinem Rechner. Dies kann überprüft werden, indem Sie ausführen, die von python innerhalb der cygwin - er konnte nicht finden, wo python gespeichert. Beachten Sie, dass dies verwirrend sein kann, da läuft pip installieren awscli wahrscheinlich nicht werfen eine Fehlermeldung. Cygwin tatsächlich installiert awscli in der Fenster Anaconda installation von Python (ich finde das merkwürdig, da wir nicht laufen conda installieren awscli).
JEDOCH, anstatt zu versuchen, zu zeigen cygwin, um die bereits installierte version von Anaconda python auf Ihrem Computer, wird es sparen Sie eine Menge Kopfschmerzen, installieren Sie einfach eine cygwin-spezifische Instanz von python. Die Schritte, die zu tun sind hier dokumentiert: 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
...Beachten Sie jedoch, dass der erste Befehl
pip uninstall awscli
"hung up" für mich. Also nur entgehen, indem Siequit()
und weiter mit den anderen um.Können Sie überprüfen, dass alles funktioniert, wenn Sie Sie ausführen
which python
im cygwin und es weist auf die cygin version (d.h. /usr/bin/python , im Gegensatz zu: /users/.../Anaconda2/).Darüber hinaus, wenn Sie geschehen, zu Fragen, dieses in Verbindung mit der Beobachtung der setup video für, die schnelle.ai-Lehrgang (http://course.fast.ai/lessons/aws.html), dann ist der nächste Schritt KRITISCHE für Windows-Nutzer: beim download von alle shell-Skripte von Github setup-Ordner (https://github.com/fastai/courses/tree/master/setup), Windows fügt automatisch CRLF line terminators! Deshalb, cygwin, führen Sie die folgenden Befehle, um diese zu entfernen Zeilenenden:
apt-cyg install dos2unix
dos2unix setup_p2.sh
dos2unix setup_instance.sh
bash setup_p2.sh
Dies sollte den trick tun.
which python
zeigte sich richtig, aberwhich pip
nicht - und das war mein problem. Ich landete deinstallieren alle meine Instanzen von python (außer anaconda) und löschen Sie den Ordner mit den Paket-cache in meinem C-Laufwerk (das python-Ordner). Danach war ich in der Lage zu laufen bekommen-pip, überprüfen Sie, ich rief Sie, und schließlich installieren awscli. Was für ein Kopfschmerz!InformationsquelleAutor Ryan Chase
Ich verwendet, aws Konfiguration von DOS-cmd-Fenster zum erstellen der cfg-Dateien (config und Anmeldeinformationen) und testete Sie mit einer Probe aws cmd (DOS-Fenster). Dann kopierte ich Benutzer\.aws-Ordner zu erkennen, wo cygwin denkt der Benutzer-home-Ordner (in meinem Fall c:\cygwin64\home\). Dann habe ich TextPad zu wandeln die Zeilenenden (verwenden Sie Datei>speichern-als; wählen Sie unix-Zeilenenden; stellen Sie sicher, dass die Dateien nicht umbenannt x.txt). Jetzt funktioniert es.
InformationsquelleAutor Tom Murphy