J'essaye d'installer Oh mon zsh. Après l'installation de zsh (Sudo apt-get update && Sudo apt-get install -y zsh
)
Ensuite j'installe
Sudo apt-get install -y curl
puis installez git.
les problèmes se produisent lorsque j'essaie cette commande.
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | bash
c'est le journal
Sudo curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 146 100 146 0 0 91 0 0:00:01 0:00:01 --:--:-- 91
100 1779 100 1779 0 0 525 0 0:00:03 0:00:03 --:--:-- 1416
\033[0;34mCloning Oh My Zsh...\033[0m
Cloning into '/home/icom3/.oh-my-zsh'...
remote: Reusing existing pack: 10101, done.
remote: Total 10101 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (10101/10101), 1.92 MiB | 172.00 KiB/s, done.
Resolving deltas: 100% (5337/5337), done.
Checking connectivity... done.
\033[0;34mLooking for an existing zsh config...\033[0m
\033[0;33mFound ~/.zshrc.\033[0m \033[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh\033[0m
\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m
\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m
\033[0;34mTime to change your default Shell to zsh!\033[0m
Password: chsh: PAM: Authentication failure
Y a-t-il une idée?
Notez que j'ai essayé
Sudo vim /etc/pam.d/chsh
puis commentez l'autorisation requise pam_shells.so. Cependant, l'erreur persiste.
Téléchargez et exécutez le script séparément:
curl -OL https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh
bash install.sh
Et vous devriez probablement annuler les modifications apportées à /etc/pam.d/chsh
.
Explication:
Piping le texte d'un script à bash
cat script.sh | bash
n'est pas la même chose que donner un script en paramètre à bash
bash script.sh
En transmettant install.sh
à bash
, bash utilise son entrée standard ( stdin ) du canal plutôt que de l'utilisateur. Dans ce cas, chsh
semble également recevoir son entrée de stdin , qui est la ligne suivante du script après l'appel à chsh
. (Pour le moment, cela semble être une ligne vide. Si c'était votre mot de passe, vous n'auriez aucun problème ;-))
Vous pouvez tester cela avec ce court script dans lequel read
attend une ligne d'entrée:
read -p 'input: ' INPUT
echo -n 'You wrote this: '
echo "> $INPUT <"
enregistré sous script.sh
:
$ bash script.sh
input: foobar
You wrote this: > foobar <
$ cat script.sh | bash
> echo -n 'You wrote this: ' <