我想将Oh My Zsh添加到我的 Vagrant 引导过程中,但直接安装不起作用。
通过卷曲:
curl -L http://install.ohmyz.sh | sh
通过 wget:
wget --no-check-certificate http://install.ohmyz.sh -O - | sh
找到了解决方案:
# Added zsh shell.
sudo apt-get install zsh
wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
sudo chsh -s /bin/zsh vagrant
zsh
作为一个很好的补充,这样您的终端在不同的盒子上看起来不会太相似
# Change the oh my zsh default theme.
sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="3den"/g' ~/.zshrc
这是Vagrantfile
在 Ubuntu 14.04.2 LTS 机器上安装 Oh My Zsh 并将其设置为标准vagrant
用户的默认 shell 的完整程序。
这适用于 Vagrant 1.7.2。(您的里程可能因不同版本而异。)它使用自述文件的手动安装部分中的说明,而不是尝试使用自动脚本。
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Pick a box to use:
config.vm.box = "ubuntu/trusty64"
############################################################
# Oh My ZSH Install section
# Install git and zsh prerequisites
config.vm.provision :shell, inline: "apt-get -y install git"
config.vm.provision :shell, inline: "apt-get -y install zsh"
# Clone Oh My Zsh from the git repo
config.vm.provision :shell, privileged: false,
inline: "git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh"
# Copy in the default .zshrc config file
config.vm.provision :shell, privileged: false,
inline: "cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc"
# Change the vagrant user's shell to use zsh
config.vm.provision :shell, inline: "chsh -s /bin/zsh vagrant"
############################################################
end
作为奖励,您可以使用以下方法将主机.zshrc
文件一次性复制到 vagrant box:
config.vm.provision "file", source: "~/.zshrc", destination: ".zshrc"
(请记住,由于主机和 vagrant box 的设置之间的差异,您可能不得不考虑最初无法正常工作的事情。)
我来这里是因为有同样的问题。在看到一些答案并尝试之后,大部分zsh
&oh-my-zsh
被安装为root
. 将root
设置他$SHELL
的zsh
。我想要的是它们作为用户安装vagrant
。配置时引导由 root 完成。所以逻辑是尝试以用户身份运行安装zsh
和oh-my-zsh
。这是我在尝试了很多次之后所做的,直到我得到了我想要的:
## In Vagrantfile try to call bootstrap.sh
config.vm.provision "shell", path: "bootstrap.sh"
## This is the bootstrap.sh
aptInstl() {
DEBIAN_FRONTEND=noninteractive apt-get install -qq -y $1 > /dev/null
}
install_zsh() {
aptInstl "zsh"
su -l vagrant -s "/bin/sh" \
-c "curl -fsSO https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh; chmod 755 install.sh; ./install.sh --unattended"
chsh -s /bin/zsh vagrant
}
install_miscellaneous() {
apt-get update > /dev/null
apt-get upgrade > /dev/null
for i in curl git; do
aptInstl "$i"
done
}
main() {
install_miscellaneous
install_zsh
}
main
而且它工作得很好:)
当你完成后,vagrant ssh
它会自动使用zsh
shell 和oh-my-zsh
. 这是完整的文件。