• acquisto viagra farmacia vendo viagra antofagasta cialis pris apoteket viagra in deutschland kaufen prix du vrai viagra viagra bestellen erfahrung cialis comprare cialis comprar online acheter cialis forum cialis receptfritt viagra alternativo viagra ou equivalent dapoxetin kaufen priligy rezept viagra angleterre cialis online rezeptfrei
  • achat viagra inde viagra korvattavuus acheter kamagra kamagra rezept viagra rezeptfrei preisvergleich comprar viagra masticable propecia moins cher paris cialis o viagra cual es mejor viagra ventajas y desventajas apotek på nett acheter levitra viagra tilskud levitra inde acheter levitra pas chere kjøp cialis

    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
    URL: http://rafb.net/p/mlsekL34.html
    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 
    http://manual.macromates.com/en/shell_commands#search_path 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 :)