What To Do When You Can’t Upgrade Oh my zsh
January 13th, 2017
I have been using the
Z Shell, specifically
Oh My Zsh, for almost two years
now. It worked without a hitch for a while, and then one day it didn’t work so
smoothly. It had something to do with my PATH configuration. I’m not sure
whether the issue began before or after I installed
El Capitan (but I don’t
think so), or if it was a
ruby gems installation issue. I think it was the
latter. Anyway, it never seemed to resolve itself.
I started to dive deeper into
Command Line. I was getting to know my
computer much better. One of my New Year’s Resolutions is to become extremely
well acquainted with the
Command Line, and therefore my computer. I know
that this will make me a MUCH better developer, designer, and technologist in
general. It will also help me with another of my New Year’s resolutions.
Increasing my knowledge of personal cyber security. Everyone these days should
educate themselves about personal cyber security. It’s a crazy world out there
in the realm of technology!
Z shell education sky rocketed when I came across
Wes Bos’ video
“Command Line For Power Users”. In it he goes into depth
about how to set up the
Z Shell on your computer, and specifically
Oh my zsh. There is not much great documentation on the topic all in one place
geared at developers. Many even frown upon replacing the
default bash. I disagree. I think it’s great. I will be very soon
learning more about exactly why. I’m only a bit more than halfway through the
But I digress. I re-encountered my
$PATH problem with
playing around with the different
oh-my-zsh themes I have installed on my
computer. Everything was fine until I added the
Soliah theme. It told me that
Ruby Version Manager)
$PATH was configured incorrectly and
that I should fix it.This is the message I would get in
Warning! PATH is not properly set up, '/Users/mariacam/.rvm/gems/ruby-2.2.2/bin' is not available, usually this is caused by shell initialization files - check them for 'PATH=...' entries, it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles', to fix temporarily in this shell session run: 'rvm use ruby-2.2.2'.
So I googled for a fix to the issue. After much searching, I finally came across a fix which was clearly explained:
This is what corrected the error for me: My .bashrc: The last line should be: export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting My .bash_profile The last 2 lines should be: [[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
I found the same fix elsewhere, but the explanations were not as clear. My
.bashrc already contained the line mentioned above, but my
PATH instead of
HOME. I think something
installation of my
ruby gems. I installed that when I was
taking a Web Development Course, and already had installed
Z shell/Oh my zsh.
I clearly remember the teacher telling me that I should be using the default
bash shell, and I said “No. I want to use Oh my zsh.” Then he created a hack so
that I would be able to use both (nightmare), and a whole bunch of other stuff
which he didn’t even clue me in on. That’s why I will say it again (and again
and again and again if I have to): so important to know Command Line, and thus
get to know the inner workings of your computer, so that you don’t have to be at
the mercy of others who then won’t even enlighten you as to what they have done
to your machine! And their fix won’t necessarily be the right one for you OR
your machine! It’s like a doctor not knowing his or her anatomy!
The issue wasn’t resolved immediately, however. Why? First of all, I *didn’t
iTerm2. I only closed the window. In order for iTerm2 to
register the change, you have to quit the program and re-open it. OR, you should
type the command
source + path to file that was changed. For instance, if
I changed the
oh-my-zsh theme I was using in
iTerm2 in my
I would save the file, go back into iTerm2 and type the command
and hit return. I would immediately notice in the current instance of
iTerm2 that my theme had changed. In the case of my
to update it. OR completely quit
Terminal and re-open it.
After I had gotten half-way into Wes’
course, I became much more familiar with
Z shell, and realized that I hadn’t completely quit
.bash_profile with the
source command. So I did it, and
this is what I subsequently got in
Terminal when I checked for my
ruby -v ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14] which ruby /Users/mariacam/.rvm/rubies/ruby-2.2.2/bin/ruby rvm -v rvm 1.28.0 (latest) by Wayne E. Seguin <firstname.lastname@example.org>, Michal Papis <email@example.com> [https://rvm.io/]
No more problems there!
My problems weren’t quite over yet, however. I still had the issue of
not being able to upgrade
my oh-my-zsh. That started happening
after I installed
El Capitan. Something happened to the
path to my
oh-my-zsh local repository on my computer when I upgraded to
El Capitan. I would try and fix the issue as explained on
elsewhere, but it never took. This is what would appear in
Terminal when I
would try and upgrade
Upgrading Oh My Zsh fatal: Not a git repository (or any of the parent directories): .git There was an error updating. Try again later?
And when I would try and initialize it as a new (local) git repository, I would get the message:
fatal: 'origin' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
Well, yesterday I tried again after fixing the
$PATH issue. And this
time it took! This is what I did:
git init git remote add origin firstname.lastname@example.org:robbyrussell/oh-my-zsh.git
The second line contains the SSH for oh-my-zsh, because that’s how I’m set up with Github. I use public and private SSH keys to identify myself, or rather my computer, with Github. If you are not set up that way, please switch over. It’s much more secure that way, and much less of a hassle in the long run! To learn about Github and SSH, please visit Github’s documentation Adding a new SSH key to your GitHub account.
And my initialization took! So I had to complete the process with:
git fetch git reset --hard origin/master git fetch fetches the latest version of the oh-my-zsh repository on Github, and git reset --hard origin/master means throw away all my staged and un-staged changes,
I found both solutions on
StackOverflow. To read about the whole oh-my-zsh
upgrading process fix, please visit
Upgrading Oh My Zsh gives me ‘not a git repository’ error.
To learn more about
git reset --hard origin/master
please visit What is the meaning of git reset –hard origin/master?.
So now I have configured my
RVM $PATH correctly and I will be able to
oh-my-zsh when changes have been made to the remote repository.
My next thing to tackle is
Node Version Manager). Had similar problems
there too which began with installation of
Node way back when. You’ll be
hearing about that as well!