Skip to content

Instantly share code, notes, and snippets.

@ZhaofengWu
Last active June 5, 2024 16:27
Show Gist options
  • Save ZhaofengWu/f345652e994e3b68c309352a7610460f to your computer and use it in GitHub Desktop.
Save ZhaofengWu/f345652e994e3b68c309352a7610460f to your computer and use it in GitHub Desktop.
Install zsh without root
#!/bin/bash
set -e
# OPTIONAL: zsh will not install without ncurses. IF your machine doesn't have ncurses, you need to install it first.
export CXXFLAGS=" -fPIC" CFLAGS=" -fPIC" CPPFLAGS="-I${HOME}/include" LDFLAGS="-L${HOME}/lib"
wget https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.2.tar.gz
tar -xzvf ncurses-6.2.tar.gz
cd ncurses-6.2
./configure --prefix=$HOME --enable-shared
make
make install
cd .. && rm ncurses-6.2.tar.gz && rm -r ncurses-6.2
# install zsh itself
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
mkdir zsh && unxz zsh.tar.xz && tar -xvf zsh.tar -C zsh --strip-components 1
cd zsh
./configure --prefix=$HOME
make
make install
cd .. && rm zsh.tar && rm -r zsh
echo -e "export SHELL=~/bin/zsh\nexec ~/bin/zsh -l" >> ~/.bash_profile # or chsh
# OPTIONAL: install oh-my-zsh
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
@sahiljhawar
Copy link

This script more or less worked. My group has multiple machines with different configurations, however for all the machines the $HOME directory is the same. oh-my-zsh works perfectly fine when I ssh to one of the inferior machine, but when I ssh to one of the powerful machines for actual computation the following error occurs:

/etc/zshrc:71: compinit: function definition file not found
/home/powermachine/myuser/.oh-my-zsh/oh-my-zsh.sh:131: compinit: function definition file not found
/home/powermachine/myuser/.oh-my-zsh/oh-my-zsh.sh:154: zrecompile: function definition file not found
/home/powermachine/myuser/.oh-my-zsh/lib/completion.zsh:78: bashcompinit: function definition file not found
 compdef: command not found
/home/powermachine/myuser/.oh-my-zsh/lib/termsupport.zsh:108: add-zsh-hook: function definition file not found
/home/powermachine/myuser/.oh-my-zsh/lib/termsupport.zsh:109: add-zsh-hook: function definition file not found
/home/powermachine/myuser/.oh-my-zsh/lib/theme-and-appearance.zsh:2: colors: function definition file not found
 compdef: command not found
 compdef: command not found
 compdef: command not found
 compdef: command not found
/home/powermachine/myuser/.oh-my-zsh/plugins/git/git.plugin.zsh:219: is-at-least: function definition file not found
 compdef: command not found
 compdef: command not found
 compdef: command not found
 compdef: command not found
/home/powermachine/myuser/.oh-my-zsh/plugins/git/git.plugin.zsh:297: is-at-least: function definition file not found
 compdef: command not found
/home/powermachine/myuser/.oh-my-zsh/plugins/git/git.plugin.zsh:308: is-at-least: function definition file not found
 compdef: command not found
/home/powermachine/myuser/.oh-my-zsh/plugins/git/git.plugin.zsh:367: is-at-least: function definition file not foundf

Do you have any solution for this?

@ZhaofengWu
Copy link
Author

Sorry I don't know what causes this :(

@zhuzzz
Copy link

zhuzzz commented Jan 31, 2024

Thanks for the script! Works like a charm :)

@NiklasRoberts
Copy link

Works perfectly, thanks!

@sahiljhawar
Copy link

sahiljhawar commented May 21, 2024

This is not a promotion or spam, but for those people who cannot run oh-my-zsh due to some limitations and are using oh-my-bash but facing sluggish performance. I highly suggest all of them to watch this video and setup all the plugins independent of oh-my-zsh. Works flawlessly!

IMAGE ALT TEXT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment