postmodern / chruby

Changes the current Ruby
MIT License
2.87k stars 190 forks source link

Won't able to remove chruby from MacOS Shell #482

Closed CharlesCCC closed 2 years ago

CharlesCCC commented 2 years ago

Description

Won't able to remove chruby from MacOS Shell

Tried run the uninstall script. (with or without sudo)

% sudo ./uninstall.sh 
>>> Uninstalling chruby ...
make: `uninstall' is up to date.
*** Please restart any running shells.

Steps To Reproduce

Steps to reproduce the bug:

  1. ./uninstall.sh

Expected Behavior

remove chruby from shell (MacOS

Actual Behavior

nothing happens.

Environment

$ zsh --version

zsh 5.8.1 (x86_64-apple-darwin21.0) $ chruby --version chruby: 0.3.9

$ ruby --version

ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21]

postmodern commented 2 years ago

It appears that running ./uninstall.sh inside of the scripts/ directory does something entirely different.

>>> Uninstalling chruby ...
cat uninstall.sh >uninstall 
chmod a+x uninstall
>>> Removing /etc/profile.d/chruby.sh ...

As a workaround try running ./scripts/uninstall.sh in chruby's root directory.

CharlesCCC commented 2 years ago

thank you @postmodern for the quick reply, here I tried with your suggestion


>>> Uninstalling chruby ...
for file in `find etc lib bin sbin share -type f 2>/dev/null`; do rm -f /usr/local/$file; done
rm -rf /usr/local/share/doc/chruby-0.3.9
rmdir /usr/local/share/chruby
rmdir: /usr/local/share/chruby: No such file or directory
make: *** [uninstall] Error 1

MacBook-Pro chruby % sudo ./scripts/uninstall
>>> Uninstalling chruby ...
for file in `find etc lib bin sbin share -type f 2>/dev/null`; do rm -f /usr/local/$file; done
rm -rf /usr/local/share/doc/chruby-0.3.9
rmdir /usr/local/share/chruby
rmdir: /usr/local/share/chruby: No such file or directory
make: *** [uninstall] Error 1

It Error out with status code 1... :(

postmodern commented 2 years ago

It appears that chruby may have already been uninstalled. or partially uninstalled, or was installed into a prefix other than /usr/local. The other commands succeed because they use the -f flag. I could change the rmdir command to a rm -rf to ensure make uninstall exits successfully, even if chruby wasn't previously installed.

CharlesCCC commented 2 years ago

Thank you again.

Long story short: I'm trying to remove chruby from shell. so that it won't affect another tool that I'm using(my company built tool) right now, the chruby still works after tried the uninstall

Here is what I got after run the chruby

Macbook% chruby
   3.1.2
   latest
postmodern commented 2 years ago

chruby is loaded into the shell, so even after uninstalling the files, the code will still be loaded in the current shell. Simply restart the shell and chruby should no longer be there.