From 8eafcaed1c72e7ed7c98641369a437c3ee9e27aa Mon Sep 17 00:00:00 2001 From: Marvin Steadfast Date: Mon, 1 Aug 2016 09:11:38 +0000 Subject: [PATCH] updated article --- ansible/vagrant.yml | 2 +- content/posts/xonsh-aus-bash-heraus-starten.md | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ansible/vagrant.yml b/ansible/vagrant.yml index 181132a..7707bff 100644 --- a/ansible/vagrant.yml +++ b/ansible/vagrant.yml @@ -96,7 +96,7 @@ - name: run batcave command: - ansible-playbook -i hosts xonsh.yml -c local --extra-vars="hosts=localhost" + ansible-playbook -i hosts xonsh.yml -c local --extra-vars="hosts=127.0.0.1" chdir=~/.batcave environment: SSL_CERT_FILE: /etc/ssl/certs/ca-certificates.crt diff --git a/content/posts/xonsh-aus-bash-heraus-starten.md b/content/posts/xonsh-aus-bash-heraus-starten.md index cd116a3..37fd9a1 100644 --- a/content/posts/xonsh-aus-bash-heraus-starten.md +++ b/content/posts/xonsh-aus-bash-heraus-starten.md @@ -7,8 +7,22 @@ Noch ein kleiner Nachtrag zu dem [Artikel]({filename}/posts/meine-neue-shell-xon /bin/sh: sudo -H -S -n -u root /bin/sh -c 'echo BECOME-SUCCESS-mtobhjchhszgqaaixzbsbsolwbuprmhn; LANG=de_DE.UTF-7 LC_ALL=de_DE.UTF-8 LC_MESSAGES=de_DE.UTF-8 /usr/bin/python /home/vagrant/.ansible/tmp/ansible-tmp-1469778394.25-104576843898387/apk; rm -rf \"/home/vagrant/.ansible/tmp/ansible-tmp-1469778394.25-104576843898387/\" > /dev/null 2>&1' && sleep 0: not found\r\n -Loggte ich mich ein und führe das Ansible Playbook manuell aus, kein Problem. Ich hatte xonsh als Login Shell eingerichtet und da läuft etwas schief. SSH ruft den Befehl per `exec` auf und da hat xonsh noch ein paar Probleme. Es gibt den Shell Befehl `exec` und die Python-Funktion `exec`. Diese sind schwierig zu unterscheiden und schon läuft es schief. Es wird an einem Fix gearbeitet. Der soll auch in den nächsten Tagen released werden. Bis dahin habe ich mich dazu entschieden meine Login-Shell wieder auf Bash umzustellen und daraus dann xonsh zu starten. Dazu benutze ich das File `~/.profile`. Dies ist dafür da Sachen beim Login auszuführen. Aber nur wenn es `~/.bash_profile` und `~/bash_login` nicht gibt. Ich erweitere also `~/.profile`. +Loggte ich mich ein und führe das Ansible Playbook manuell aus, kein Problem. Ich hatte xonsh als Login Shell eingerichtet und da läuft etwas schief. SSH ruft den Befehl per `exec` auf und da hat xonsh noch ein paar Probleme. Es gibt den Shell Befehl `exec` und die Python-Funktion `exec`. Diese sind schwierig zu unterscheiden und schon läuft es schief. Es wird an einem Fix gearbeitet. Der soll auch in den nächsten Tagen released werden. Bis dahin habe ich mich dazu entschieden meine Login-Shell wieder auf Bash umzustellen und daraus dann xonsh zu starten. + +Dazu benutze ich das File `~/.profile`. Dies ist dafür da Sachen beim Login auszuführen. Aber nur wenn es `~/.bash_profile` und `~/bash_login` nicht gibt. Ich erweitere also `~/.profile`. [ -f /usr/local/bin/xonsh ] && exec /usr/local/bin/xonsh -Wenn es `/usr/local/bin/xonsh` gibt dann führe es aus. Nun geht erstmal wieder alles. Ein Workaround... aber was solls? +Wenn es `/usr/local/bin/xonsh` gibt dann führe es aus. + +Ich nahm an das es so funktionieren würde. Falsch gedacht. Es gab einige Probleme. Das schwerwiegendste war das LightDM mich nicht mehr einloggen wollte. Es liest beim einloggen die `~/.profile` und der `exec` Befehl behindert das ausführen von i3. Das starten von xonsh aus .profile heraus erschien mir als ein guter Weg. Aber sind wir mal ehrlich: Das ich xonsh nicht per `chsh` setzen kann, endet wohl oder übel in heftigstes, unsauberes gefrickel. Was macht man sonst an einem Samstag Vormittag? Nun kam ich zu folgender Lösung: Ich starte xonsh aus der `~/.bashrc` mit: + + [ -f /usr/local/bin/xonsh ] && exec /usr/local/bin/xonsh + +Überraschung: die wird nicht immer geladen. SSH auf eine Alpine Linux Box warf mich in eine bash Shell. Also sollte man sich eine `~/.bash_profile` anlegen mit folgenden Inhalt: + + if [ -f ~/.bashrc ]; then + . ~/.bashrc + fi + +Nun geht erstmal wieder alles. Ein Workaround... aber was solls? Ich warte auf das nächste Krachen. Aber am meisten freue ich mich auf den Fix.