In the past, I've done all my Rails development with a simple text editor, and have setup virtual Linux machines on my MacBook so I didn't have to worry about messing up OS X's native Ruby installation. Now I am leaning towards giving Rubymine a shot. I've been trying it out on a Windows platform and I like it enough to want to try it on my main development machine.
I'm a little apprehensive about installing it - will it compromise my system's default Ruby installation at all? Is it easily (and completely) uninstalled if I decide to change my mind later?
If anyone has any experience with Rubymine on OS X and can let me know about any potential conflicts or issues, I would appreciate it.
I have used it for over a year--it does nothing environmentally damaging. It detects and uses Rubies already on your system.
I don't do any Ruby development without it, because I jump between Windows/Linux/Mac, and can have the same hotkey behavior with all that syntax highlighting, refactoring, and debugging. There is nothing better than being able to step into a gem that's acting up...
Related
I have a few questions about using Ruby on an OS X 10.11 El Capitan:
Do you think it is ok to modify Apple's built-in Ruby installation (as in installing or upgrading Gems), or should I install a separate ruby environment? (I had been modifying the built in one previously, but once I upgraded to El Capitan Apple undid all of my changes. I never had any problems with it before the upgrade, even when I updated the Gems that Apple included in to more recent versions. Yet I am still worried.)
I'm considering leaving Apple's built in Ruby alone and installing a separate one, leading me to my second question:
Everywhere I read on the internet, people recommend using a Ruby version manager (rbenv, RVM, and the like) to install a separate Ruby environment. I feel like it would be easier, cleaner, and more straightforward to simply use homebrew, since I use it already, to install a ruby to /usr/local. What would be some problems with using homebrew instead of a dedicated Ruby version manager? What are the advantages of using a version manager over homebrew?
Don't mess w/your system Ruby, your system needs to be stable and it's not necessary.
Homebrew isn't made to manage multiple versions of software. RVM (and others) and made to do exactly that. I currently have 6 rubies installed. I'd hate to have to manage that manually. RVM (or friends) is the way to go if you are installing Ruby on your host. People often go to the next level and use Vagrant instances to further isolate their development environment.
IMHO the most important reason to use a version manager is to be able to run multiple different versions of Ruby on the same machine e.g. to test gems with different versions or to run several (legacy and new) applications on the same development computer. Rbenv or RVM makes this easy, Homebrew doesn't support this...
I have a few Mac Minis and old Mac Pros we use as Jenkins slaves for automated testing.
Occasionally gems simply disappear and I have to re-install them. This is using the built-in Ruby from Mac OS Yosemite.
Why does this happen?
I use RVM on my personal Macbook Pro, and occasionally it autonomously decides to switch to a new Ruby version, so it makes sense that it won't have all my gems. When I switch back, the gems are gone again.
As for the slaves, they don't have RVM installed, and the outcome is the same.
Could this be caused by Mac OS updates?
The gems are not installed in a Jenkins workspace, I installed them before we installed the Jenkins agent.
The Macs are shared with the test-automation team who also ssh/sudo on them, but don't do anything in Ruby because their code is Java.
Could this be caused by mac OS updates ?
It could be caused by OS updates, and this is one of the big reasons you should not use the system Ruby for your development unless you're content with leaving it plain vanilla. Rightly so, Apple considers that Ruby theirs, and they can and will stomp on it with an update if it suits their purposes and you upgrade the OS.
Instead, at a minimum, install a separate Ruby from source or via Homebrew and consider that yours. Or, investigate using rbenv or RVM on the Jenkins boxes to manage your Rubies, which is what we do. That allows builds to use different Rubies and/or sets of gems and lets you fine-tune the Ruby environment on the Jenkins box to whatever the final-destination Ruby will be.
You say your personal RVM changes on its own? Unh-uh, can't happen on its own; SOMETHING told it to change. Don't attribute that stuff to voodoo or juju, something is making those things happen such as your environment variables changed or the .rvmrc file got stomped on. If your RVM configuration is correct it should be very stable; My rbenv and RVM setups have always been very solid unless I screwed them up.
Without dumps of your gem env or rvm info there's not a whole lot we can do to help you straighten it out. In general though, it sounds like you need to treat your Jenkins hosts like they are production boxes, change them very little, and separate your assets from the vendor's.
Of course I know howto install RVM and maintain multiple versions that way, and since I'm a developer I have all the requirements on my own macs (things like xcode etc). Everything is working fine on my own machines.
But how should I distribute my nifty scripts to other mac-users that only have the default 1.8.7 version installed?
I want them to upgrade to 1.9 but I can't expect them to run shell-scripts, rvm (with all its external requirements) etc to be able to run my short 30-line scripts?
Is there a shortcut/tool available so I can get them to upgrade to Ruby 1.9?
Instead of forcing your users to upgrade Ruby, you could package your script into a standalone executable - see SO question on packaging Ruby scripts into Mac OS X applications
There are a few options for automatically setting up development environments.
Thoughtbot's laptop: Laptop is a shell script that turns your Mac OS X laptop into an awesome development machine.
Github's boxen: Automate the pain out of your development environment. Boxen installs your dependencies so you can focus on getting things done.
Pivotal Lab's Workstation: A cookbook of recipes for an OSX workstation.
Thoughtbot's laptop focuses on getting a well-chosen standard set of tools to work on your Mac (you can see which ones in the script).
Boxen seems to be more for teams trying to build their own replicable custom development environment.
I am having problems with installing Ruby 1.8.7 using RVM on my Intel architecture MacOSX 10.5.8.
It configures & compiles properly but gives me errors during making.
I tried searching this out but am unable to get through to a solution.
My RVM is installed as single user
Links to my make.log files & my action trails can be found on this springpad note: http://sprng.me/c1s9k
I am assuming that it has got to do with my Developer tools & Xcode(version 3.1.2). I am clueless at the same time though and will appreciate any kickstart you can give me in solving this. I am keen on starting to develop my RoR apps! :D
RVM currently requires Xcode version 3.2.1 at the least. Don't go over version 4.1 though. 4.2 has some serious issues with building rubies and gems, and some of the homebrew and macports packages. They're using an llvm-gcc which is breaking a lot of things.
As for your issue here. Are you running on a 64bit machine? The error in the make logs appear to be based on the architecture type being incorrect. RVM defaults to a x86_64 architecture because the vast majority of the people using it are using 64bit machines, so RVM sets the default to that.We set this in scripts/functions/build and scripts/selector.
We also look for a variable called rvm_arch_flags where you can set the architecture flag needed for your model. This might not be an issue for you if you are using a Core 2 Duo or something similar. Are you running a PPC or something? We usually have issues awith people running Leopard because they are running the early Intels which appear to have been 32bit. You need at least the core 2 duo or xeon based machines.
Now, looking deeper into this, I would try setting rvm_arch_flag='-arch i686' in your global .rvmrc and try rebuilding. if you still run into problems come find me in the #RVM channel on freenode irc. We'll see what we can do. Please also create me a gist of rvm --trace as well.
In addition, it appears to be having problems with the version of the Tcl/Tk frameworks that comes with your Xcode. This could also be due to it being 3.1 rather than 3.2.
I've gone and messed up Ruby on my Snow Leopard Machine. I've managed to introduce all sorts of issues and I'm having a hard time cleaning things up.
What are the steps to get me back to square one with Ruby? I'm fairly new to programming so I need it spelled out for me!
It sounds like what you probably want to do is clear out all your globally installed gems in the system Ruby. This can be done by running the following:
sudo rm -rf /Library/Ruby/Gems/*
This will leave all the gems that come with OS X (which is a good thing, since some apps may assume they're installed).
As macarthy said, I also highly recommend using a Ruby version manager (e.g. rbenv or RVM) to more easily install, remove, and manage Ruby versions.
My suggestion would be to forget about what you have and use RVM
https://rvm.io
you can basically ignore what you have installed then.