2014-09-23 2 views
4

У меня есть сценарий инициализации бродяг, который пытается установить Zsh, если он недоступен, а затем изменить оболочку на использование Zsh.Ubuntu Zsh (через Vagrant) не находит Zsh или его функции

Есть две проблемы, я считаю, что я имею:

Первое, что я не считаю, что оболочка, меняется в Zsh, потому что, когда я бегу vagrant ssh для доступа к Ubuntu VM и когда-то запустить ps -p $$ в команда указывает, что Bash - это работающая оболочка (где я ожидал бы Zsh).

Второй вопрос, если он является изменением в оболочку ЗША (независимо от того, каких ps -p $$ отчетов назад), то Zsh отображает много ошибок, когда я источник .zshrc файл, предполагающий указанные функции отсутствуют или просто не ссылаясь правильно.


Я разбить его на этапы, делая установку Zsh, а вручную, чем через провизий сценарий Бродячей ...

  1. cat /etc/shells -> Я не вижу ссылок на ЗШ †
  2. sudo apt-get update
  3. sudo apt-get install zsh
  4. cat /etc/shells -> есть теперь /bin/zsh и /usr/bin/zsh
  5. which zsh ->/usr/bin/zsh
  6. zsh --version ->zsh 5.0.2 (x86_64-pc-linux-gnu)
  7. chsh -s $(which zsh)
  8. source .zshrc -> Много ошибок, посланных на стандартный вывод ~~
  9. tree /usr/share/zsh/ -> смотри ниже ** для вывода, но обратите внимание function каталог не внутри 5.0.2 directory?

Я думаю, что более вероятно, Zsh не изменяется, потому, если я выполнить команду zsh я получаю доставлен в новой среде оболочки, и если я затем запустить source .zshrc я не получаю никаких ошибок. Кроме того, если я запустил ps -p $$, теперь я увижу, что Zsh сообщается как запущенная оболочка.

Весь мой сценарий подготовки брандмауэра можно найти в нижней части этого вопроса.

† список оболочек, которые я вижу, являются:

/bin/sh 
/bin/dash 
/bin/bash 
/bin/rbash 
/usr/bin/tmux 
/usr/bin/screen 

≠ выход:

Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
The following extra packages will be installed: 
    zsh-common 
Suggested packages: 
    zsh-doc 
The following NEW packages will be installed: 
    zsh zsh-common 
0 upgraded, 2 newly installed, 0 to remove and 55 not upgraded. 
Need to get 2,726 kB of archives. 
After this operation, 11.4 MB of additional disk space will be used. 
Do you want to continue? [Y/n] Y 
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main zsh-common all 5.0.2-3ubuntu6 [2,119 kB] 
Get:2 http://archive.ubuntu.com/ubuntu/ trusty/main zsh amd64 5.0.2-3ubuntu6 [607 kB] 
Fetched 2,726 kB in 6s (420 kB/s)            
Selecting previously unselected package zsh-common. 
(Reading database ... 61742 files and directories currently installed.) 
Preparing to unpack .../zsh-common_5.0.2-3ubuntu6_all.deb ... 
Unpacking zsh-common (5.0.2-3ubuntu6) ... 
Selecting previously unselected package zsh. 
Preparing to unpack .../zsh_5.0.2-3ubuntu6_amd64.deb ... 
Unpacking zsh (5.0.2-3ubuntu6) ... 
Processing triggers for man-db (2.6.7.1-1) ... 
Setting up zsh-common (5.0.2-3ubuntu6) ... 
Setting up zsh (5.0.2-3ubuntu6) ... 
update-alternatives: using /bin/zsh5 to provide /bin/zsh (zsh) in auto mode 
update-alternatives: using /bin/zsh5 to provide /bin/rzsh (rzsh) in auto mode 
update-alternatives: warning: skip creation of /usr/share/man/man1/rzsh.1.gz because associated file /usr/share/man/man1/zsh.1.gz (of link group rzsh) doesn't exist 

~~ Ниже представлен список ошибок, а конфигурационный файл Zsh можно увидеть здесь https://github.com/Integralist/dotfiles/blob/linux/.zshrc

autoload: command not found 
zmodload: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'style' from package 'diction' (universe) 
Command 'astyle' from package 'astyle' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
No command 'zstyle' found, did you mean: 
Command 'astyle' from package 'astyle' (universe) 
Command 'style' from package 'diction' (universe) 
zstyle: command not found 
bindkey: command not found 
bindkey: command not found 
bindkey: command not found 
bindkey: command not found 
bindkey: command not found 
bindkey: command not found 
bindkey: command not found 
autoload: command not found 
No command 'colors' found, did you mean: 
Command 'xcolors' from package 'xcolors' (universe) 
colors: command not found 
-bash: %{$fg_no_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_no_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_no_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_no_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_no_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_no_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_no_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_no_bold[${(L)COLOR}]%}: bad substitution 
-bash: %{$fg_bold[${(L)COLOR}]%}: bad substitution 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
unsetopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
No command 'setopt' found, did you mean: 
Command 'getopt' from package 'util-linux' (main) 
setopt: command not found 
autoload: command not found 

** выход из tree команды на /usr/share/zsh Каталог:

/usr/share/zsh/ 
├── 5.0.2 
│   └── scripts 
│    └── newuser 
├── functions 
│   ├── Calendar 
│   │   ├── ... 
│   ├── Calendar.zwc 
│   ├── Chpwd 
│   │   ├── ... 
│   ├── Chpwd.zwc 
│   ├── Completion 
│   │   ├── AIX 
│   │   │   ├── ... 
│   │   ├── AIX.zwc 
│   │   ├── Base 
│   │   │   ├── ... 
│   │   ├── Base.zwc 
│   │   ├── bashcompinit 
│   │   ├── BSD 
│   │   │   ├── ... 
│   │   ├── BSD.zwc 
│   │   ├── compaudit 
│   │   ├── compdump 
│   │   ├── compinit 
│   │   ├── compinstall 
│   │   ├── Cygwin 
│   │   │   ├── ... 
│   │   ├── Cygwin.zwc 
│   │   ├── Darwin 
│   │   │   ├── ... 
│   │   ├── Darwin.zwc 
│   │   ├── Debian 
│   │   │   ├── ... 
│   │   ├── Debian.zwc 
│   │   ├── Linux 
│   │   │   ├── ... 
│   │   ├── Linux.zwc 
│   │   ├── Mandriva 
│   │   │   ├── _rebootin 
│   │   │   └── _urpmi 
│   │   ├── Mandriva.zwc 
│   │   ├── openSUSE 
│   │   │   ├── ... 
│   │   ├── openSUSE.zwc 
│   │   ├── Redhat 
│   │   │   ├── ... 
│   │   ├── Redhat.zwc 
│   │   ├── Solaris 
│   │   │   ├── ... 
│   │   ├── Solaris.zwc 
│   │   ├── Unix 
│   │   │   ├── ... 
│   │   ├── Unix.zwc 
│   │   ├── X 
│   │   │   ├── ... 
│   │   ├── X.zwc 
│   │   ├── Zsh 
│   │   │   ├── ... 
│   │   └── Zsh.zwc 
│   ├── Completion.zwc 
│   ├── Exceptions 
│   │   ├── catch 
│   │   └── throw 
│   ├── Exceptions.zwc 
│   ├── MIME 
│   │   ├── ... 
│   ├── MIME.zwc 
│   ├── Misc 
│   │   ├── ... 
│   ├── Misc.zwc 
│   ├── Newuser 
│   │   └── zsh-newuser-install 
│   ├── Newuser.zwc 
│   ├── Prompts 
│   │   ├── ... 
│   ├── Prompts.zwc 
│   ├── TCP 
│   │   ├── ... 
│   ├── TCP.zwc 
│   ├── VCS_Info 
│   │   ├── ... 
│   ├── VCS_Info.zwc 
│   ├── Zftp 
│   │   ├── ... 
│   ├── Zftp.zwc 
│   ├── Zle 
│   │   ├── ... 
│   └── Zle.zwc 
└── help 

Вот мой Vagrant скрипт инициализации

# Install dependencies 
add-apt-repository ppa:pi-rho/dev # for latest tmux 
apt-get update 
apt-get remove vim-tiny -y 
apt-get install vim tmux git tree htop reptyr xclip -y 

# Install Zsh shell if it's not available 
if ! cat /etc/shells | grep zsh; then 
    echo "Zsh is not available, so we'll install it now" 
    apt-get install zsh -y 
fi 

# For the Reptyr program to work we need to enable system access 
# We do this by changing the ptrace scope from one to zero 
sed -i 's/kernel.yama.ptrace_scope = 1/kernel.yama.ptrace_scope = 0/' /etc/sysctl.d/10-ptrace.conf 

# Because this is a system control daemon, we need to restart the relevant service 
sysctl -p /etc/sysctl.d/10-ptrace.conf 

# Avoid the shell asking us to authorise the authenticity of github.com 
# This happens when doing a git clone for the first time 
echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config 

# Install dotfiles... 
dotfiles_location=/home/vagrant/dotfiles 
git clone https://github.com/Integralist/dotfiles.git $dotfiles_location 
cd $dotfiles_location && git fetch && git checkout linux 

# Ensure we don't move unnecessary files 
shopt -s extglob 
mv !(.|..|.git|README.md) .. 

# Clean-up 
cd ../ && rm -rf dotfiles 

# Change to Zsh shell 
chsh -s $(which zsh) 

# Source the Zsh config file 
source .zshrc 
+0

Ваш вопрос, потому что вы четко изложите детали своей проблемы. В следующий раз нам, вероятно, не нужно будет видеть каждый бит информации, немного отредактируйте его с помощью заметок (например, аналогичная ошибка повторяется 40 раз) ;-) Удачи. – shellter

ответ

4

chsh только изменяет оболочку по умолчанию/входа для текущего пользователя он не изменяет текущей оболочки.

Вам необходимо либо вернуться в систему, либо снова войти в систему или вручную exec zsh, чтобы изменить действующую/текущую оболочку.

+0

Спасибо, что сделал трюк! Я явно был пончиком: - / – Integralist

Смежные вопросы