2

How can I cleanly remove my ruby version 1.8.7 from CentOS 5? I installed it by downloading the source code and performed a make.

Jonas
  • 1,147
  • 5
  • 17
  • 31

4 Answers4

4

You shouldn't install software this way.
Removing software which was installed like this may be dangerous:

  1. unpack the same ruby to /tmp
  2. run:
    ./configure --prefix=/tmp/somedir    # by default prefix points to /usr/local
    make
    make install    # this will install ruby in /tmp/somedir instead of where you've installed it
    cd /tmp/somedir
    find . -type f -exec rm -i /usr/local{} \;    # Use without -i if you are shure
    find . -type d -exec rm -ir /usr/local{} \;

I hope this will help you

Brian Fisher
  • 621
  • 3
  • 10
  • 15
Alex Bolotov
  • 857
  • 3
  • 10
  • 17
  • Interesting idea. You could also use the list of files generated in /tmp/somedir and manually remove the bits from the real installation tree. Either way, the fake installation is an interesting idea. – ewwhite Nov 26 '09 at 21:38
2

You could also try the technique from this question. Basically look for .installed.list in the directory you built ruby in. This should have a list of all the files installed. One way to remove them all would be

cat .installed.list | xargs rm

Note that this will only delete files, not directories. I guess you could also do

cat .installed.list | xargs rmdir

after the first command. That should clean up the directories aswell. And rmdir will not remove a directory if it still contains files, so it should be safe ...

Hamish Downer
  • 9,142
  • 6
  • 36
  • 49
  • 1
    You may need to run the `cat .installed.list | xargs rmdir` several times to get rid of all the directories it creates. – user9517 Jun 02 '10 at 14:34
  • Or use something like "cat .installed.list | while read F; do test -f $F && rm -r $F; done" – HUB Aug 06 '12 at 09:17
1

This works for me.

more .installed.list | xargs rm -rfv
splattne
  • 28,348
  • 19
  • 97
  • 147
myk
  • 11
  • 1
0

It will not be easy if you issued configure and make without using --prefix switch, but you can try this way:

  1. Extract file list from the RPM database:

    rpm -qla > list1.txt

  2. Then find all files from your system

    find / > list1.txt

  3. Then diff is your friend:

    diff list1.txt list2.txt > alien_files.txt

In alien_files.txt you'll have the files which weren't installed via rpm (including ruby's). Of course you'll have to filter /proc, /tmp, ... files, but I said that it will not be easy. :)

If you like the RPM philosophy as I do, then read my article on howto install Ruby Enterprise 1.8.7 on CentOS 5 as rpm here:

http://www.cherpec.com/2009/10/ruby-enterprise-edition-1-8-7-source-rpm-for-centos5-rhel5/

vitalie
  • 502
  • 2
  • 5