cialis te koop kamagra schweiz viagra en allemagne differenza cialis viagra levitra viagrasviagras comprar cialis generico viagra moins cher pharmacie comprar cialis generico paypal commander viagra france viagra geneve achat viagra generique indien viagra vendita on line del viagra e similari levitra 20mg filmtabletten levitra bayer 10 mg
viagra en libre vente en france 
acheter cialis en ligne 
viagras pas chere 
achat cialis en contre-remboursement 
viagra etat unis 
acheter viagra avis 
achat viagra moins cher en france 
viagra a vendre quebec 
achat cialis viagra france 
forum comment acheter cialis en ligne 
acheter levitra en ligne 
generic viagra express 
viagra efr 
viagra commande 
viagra pills for sale bupropion india pharmacy generic cialis buy viagra cialis shop viagra online lowest price buy cialis buy generic cialis online buy viagra on the internet buy levitra paypal buying kamagra buy cheap levitra no prescription cheapest cialis online viagra online order wellbutrin online no prescription

Textmate Path Modification — Ruby Version Issues

I had some issues with Ruby on my macbook after upgrading Ruby from 1.8.6 to 1.8.7.

This was a problem in Textmate as it still picked up the old version and ignored $PATH i set in my .profile.

Thanks to fast and excellent help from Allan Odgaard and others in the ##Textmate IRC channel.

The main point is that if you modify your $PATH you should probably also set a variable in Textmate reflecting that change. Otherwise you may end up with Textmate running an old version of a program like I did.

Note also that there is some help on the Textmate Wiki: “RubyVersionIssue” with a link to the suggestion Alan mentions above (setting path for Finder in environment.plist).

Pasted as Plain Text by peterhaza
Description: No description

March 6th 2009
11:25 jesperronn: Hi everybody (new to the IRC channel) I know this has been 
up millions of times: Ruby version issues!
11:26 jesperronn: My problem is basically the same as described: wrong (old) 
ruby version picked up by Textmate
11:26 jesperronn: I tried the suggestion that was linked (setting up 
~/.MacOSX/environment.plist and adding new ruby path)
11:27 jesperronn: Could somebody give me some troubleshooting help?
11:29 malesca: jesperronn: Did you reboot after changing environment.plist?
11:29 malesca: path?
11:29 inner_six: Your search path is incorrect. See and be sure to 
read the last paragraph about ~/.MacOSX/environment.plist (used for shebang 
11:29 jesperronn: Yes I did reboot
11:30 jesperronn: (although it says logout/login in the wiki page)
11:30 jesperronn: After the reboot the test suggested actually changed result
11:30 jesperronn: #!/bin/sh echo "$PATH"
11:31 jesperronn: result was: /usr/bin:/bin:/usr/sbin:/sbin
11:31 jesperronn: sorry for the smilies...:(
11:31 jesperronn: it changed to /Users/jesper/Library/Application 
in:/usr/X11/bin:/Users/jesper/Library/Application Support/TextMate/Pristine 
11:31 jesperronn: which is the correct from .profile
11:32 jesperronn: And "ruby --version" now gives me the new correct version 
11:33 jesperronn: So it works when running snippets in plain text via CTRL-R
11:33 jesperronn: Now the issue is still there for my .rb file
11:34 jesperronn: The .rb file starts with #!/usr/bin/env ruby
11:35 jesperronn: and running Command-R tells me the version is the old 1.8.6 
(located at /usr/bin/ruby)
11:35 jesperronn: So how do I change this behaviour on Ruby files??????
11:37 jesperronn: inner_six: there is no difference in the ruby version 
picked up if I remove the shebang
11:37 jesperronn: inner_six: i already added the environment.plist on my 
11:39 perdiy: jesperronn: Have you set TM_RUBY?
11:40 jesperronn: perdix: how do I check that? (i probably have not)
11:40 perdix: jesperronn: Check Preferences → Advanced → Shell Variables 
11:41 jesperronn: thanks perdix. No it's not set
11:41 jesperronn: perdix: what do you suggest I do?
11:42 perdix: jesperronn: Not sure…
11:44 perdix: Just so I understand you correctly: entering ‘ruby --version’ 
and hitting ⌃R says it’s ruby 1.8.7, but creating a Ruby file containing 
‘puts RUBY_VERSION’ and hitting ⌘R says it’s ruby 1.8.6?
11:46 jesperronn: perdix: Thats exactly what i did!
11:46 jesperronn: and the exact reults i got
11:48 perdix: Sorry, then I have no idea. You could set TM_RUBY to the full 
path to the ruby executable you want to run (in the mentioned prefpane), but 
that’s a workaround.
11:49 perdix: Or wait for someone more knowledgeable to come online…
11:52 jesperronn: perdix: hehe thanks for your suggestions.. I tried to set 
TM_RUBY to /usr/local/bin/ruby (no Textmate restart). That actually gave an 
extremely strange error. 
11:53 jesperronn: Blank white "run" window only with this text: 
/tmp/temp_textmate.azBvzx: line 6: : command not found
12:02 perdix: jesperronn: Huh. Does `$TM_RUBY --version`, ⌃R work?
12:12 allan: jesperronn: the test with #!/bin/sh gave another result because 
I think you forgot to select BOTH lines
12:12 allan: jesperronn: instead of editing environment.plist try set PATH in 
TM’s preferences
12:12 allan: TM_RUBY will not help you since it is your script (using ‘env’) 
that needs the correct ruby
12:13 allan: so only setting PATH properly can fix this
12:13 allan: your second error must be because you set TM_RUBY to something 
12:39 jesperronn: allan: where do I set PATH in preferences? 
12:40 jesperronn: allan: do you mean set a shell variable "PATH" in the 
advanced preferences>shell variables?
12:45 allan: jesperronn: yes
12:45 jesperronn: allan: I can see that setting a shell variable PATH in 
advanced preferences actually works! 
12:45 jesperronn: Why is this not different 'out of the box' 
12:45 allan: jesperronn: what do you mean?
12:45 allan: that TextMate should know how you want PATH setup?
12:45 allan: because that is impossible
12:45 allan: and it _does_ work out of the box
12:45 jesperronn: yes
12:46 allan: it just does not work with custom ruby installs
12:46 allan: emphasis here on custom ;)
12:46 jesperronn: OK
12:46 jesperronn: I actually tried to remove the ruby 1.8.6 after upgrading 
but i had to undo because it gave me problems running ruby inside textmate...
12:47 jesperronn: Maybe it\s just my limitted knowledge of Textmate internals
12:47 jesperronn: Thanks a lot for help, allan, perdix and inner_six!
12:48 allan: jesperronn: essentially it’s pretty simple: PATH tells what 
locations programs should shell for commands (and what order)
12:49 allan: so if you want to install something new yet still keep the 
system version (recommended) then just install it wherever you want and put 
that location first in the PATH variable
12:49 allan: that environment.plist failed for you is likely due to a typo on 
your part
12:49 allan: that is the system-supported way to set environment variables 
for all apps launched by Finder though
12:50 allan: where Terminal runs a shell so it additionally has the profile 
12:50 allan: and TextMate has the Preferences → Advanced…
12:50 jesperronn: allan: what I do not understand is why to use 
environment.plist and not .profile or similar
12:51 jesperronn: So the error on my side is probably that I added path 
settings to .profile
12:51 allan: jesperronn: .profile is for your shell
12:51 allan: i.e. only bash etc. will execute .profile
12:51 allan: so it works when what you launch from TM goes via bash
12:51 allan: but not when it is run w/o a shell
12:52 allan: this is analogical to asking in #bash why you have to setup 
stuff in .profile when you have Preferences → Advanced → Shell Variables in 
TextMate ;)
12:52 jesperronn: So for me to learn a lesson here: I should always use 
environment.plist and remove all custom $PATH adjustments in .profile
12:52 allan: jesperronn: it doesn’t really matter
12:53 allan: really, only shell and TextMate care about PATH
12:53 allan: so whether you set it locally for each of the two apps or 
globally makes little difference
12:53 allan: and in a shell context editing .profile is probably easier
12:53 allan: plus does not require re-login to have changes take effect
12:53 allan: also, in .profile you can have “code”
12:54 allan: e.g. you can add to your PATH, conditionally set something etc.
12:54 allan: where environment.plist is 100% declarative

PS. Thanks to Peter Haza (phˆ) for digging up the archived conversation.

PPS. Note to self: Clean transscript from irrelevant status changes with: cat tmp.txt |grep -v “has left”|grep -v “has joined” | grep -v “is now known as”

5 Responses to “Textmate Path Modification — Ruby Version Issues”

  1. Jesper Rønn-Jensen Says:

    BTW… IRC and the clients I briefly tried had a big barrier of getting started. So I ended up using the web-based client Mibbit, which I was able to use immediately

  2. Kichler Lighting Says:

    that is a weird issue. nice work figuring it out. i hope something crazy like that doesn’t happen to me.

  3. Ami Mahloof Says:

    Thank you so much!!!!!!!

    you save my project so much time…. i was on the verge of uninstalling all my ruby gems and ruby and rails and textmate, since textmate was acting up i thought that bacause i changed my ruby path to /opt/local/bin it messsed up every thing

    I am so greatful!!! thank you again


  4. Denny Says:

    Thanks for this post. Setting the PATH in TM’s preferences is easy enough, but I also don’t understand why it’s not reading my .bash_profile. The docs seem to indicate it should, and I actually had it working yesterday. But I came in this morning and TM wasn’t seeing it anymore.

  5. Jesper Rønn-Jensen Says:

    @Denny wrote:

    I also don’t understand why it’s not reading my .bash_profile. The docs seem to indicate it should, and I actually had it working yesterday.

    Allan gave his version of a reply to your question

    12:53 allan: really, only shell and TextMate care about PATH so whether you set it locally for each of the two apps or globally makes little difference and in a shell context editing .profile is probably easier plus does not require re-login to have changes take effect also, in .profile you can have “code”. e.g. you can add to your PATH, conditionally set something etc. where environment.plist is 100% declarative

    BTW, you should definitely write on the IRC channel where you found it in the docs, and perhaps propose a better wording. Adressing the incorrect parts will eventually make this a better world :)