rvvでRVMを置き換えた理由と方法


要点


ベーグルエッグとチーズをベーグルのすべてに食べながら、コンピューターに座っていたので、私の朝は大部分の人々のように始まりました.そして、誰もが朝のように、それはすぐに別の方向にハード右折した.
楽しいオープンソースプロジェクトのためのルックアウトでは、私は自分自身を発見した.そのドキュメントを見てみると、彼らは何かを使っていることがわかります."rbenv "ええ?

私たちが港を飛び出して、宝石で覆われた海の方へ航海する前に、私はあなたに私の忠実な乗組員に、この記事がRVMが何であるかについて説明するつもりであるということを知っていたいです、そして、次に、RBENV、なぜどちらの問題、そして、私が正常に移行しなければならなかったかは、プロセスです.
私はずっと見ていた.The Terror . 最初の季節は良かった!番目のシーズンではなく、あまりにも.

なぜ


では、Ruby用のパッケージマネージャのどちらが適切ですか?
まず最初に、ここではパッケージマネージャの速い断片です.

"A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer's operating system in a consistent manner."


オプションRVM ( Rubyバージョンマネージャ)
RVMは主にウェーンEeguinによって作成され、あなたはまだ他のプロジェクトと一緒にRVMを維持する上で彼を見つけることができます.最初にRVMでの作業はFebruary, 2012 .
RVMには迅速なインストールプロセスがあり、ファイルにspelunkingする必要はなかった.それはそれらの起動、シンプルなプロジェクトとすべてのための素晴らしいです.
これは他のものよりも優れているというわけではありません.それはあなたが達成しようとしているものとそれらを調整し、あなたが使用したいものを選択し、賛否両論についての任意の技術のように.競合する技術は、しばしば共存し、より多くのユーザを獲得するために、互いを改善するために互いを駆動することができます.RVMはそれが何であるかについて大きいです、しかし、一旦あなたがより大きな会社であなた自身を見つけるならば、あなたは質問を始めて、あなた自身の仕事プロセスのために最も効率的であるものを調べ始めるかもしれません.
RVMとのグリップの多くは、それのインストールプロセスの重量と関係があります.
こちらですan extensive explanation , RVMの「CD」関数について何が言われているのかに関するいくつかのギャップにおける情報の誤りと充填
問題の簡単な要約は、RVMは、簡単にRubyのバージョンを切り替えるの機能を簡単に提供するために、CDコマンドにハッキングする新しい機能を作成することです.
誰がハッカーニュースが大好きですか?さて、RBenvの最初のリリースの後、素晴らしい糸がここにあります、そこで、ルビーコミュニティの全体は最終的にそれが1つのカタストロック糸で長年の軽率な不満を出す安全なスペースを持っていると感じました.
以下はHackerNewsのポストです."Rbenv, an unobtrusive rvm replacement"

ここからいくつかのスレッドからのハイライトです

"With all due respect, ruby is a language, and rvm is a collection of really fragile and dangerous shell script hacks."



"RVM is hardly development ready, imho. Every week I run into problems/confusion with the environment it creates and expects.
I would never put it anywhere near production."


そして最後の

"The complete lack of a changelog doesn't help either. I never know whether something's going to break in a new release and almost every new release has some little semantic change that borks my system."


さて、良い姿勢のために、私はRVMを支持していたコメントのいくらかを含めます、また、私がほとんどのコーディングブートキャンプが彼らのカリキュラムにそれを加えたと思っている理由をハイライトします.
宇野

I'll take your word for it. For me, it mostly saves me a bunch of time. Edit: Just in case I'm coming off as snarky here, I don't mean to. My projects tend to be on the simpler end, and rvm saves me a lot of time. I'm sure it's a little cowboyish for bigger projects - I was just wondering if there was something about rvm that made it universally inappropriate for production use. Double Edit: "a bunch" is probably an overstatement. rvm was a great help transitioning to 1.9.2. I'm not sure if it will provide much utility going forward.


...ドス

This is kind of a classic "fast, correct - choose one" debate. If saving time is more important, perhaps you should use RVM in production, if correctness is more important, you probably shouldn't. It comes down to how expensive your mistakes are.


...タイヤ

If you only have one server and can script most of the install process it's not a problem. When you have more than one server, rvm is not going to save you time.



あなたが'スピン市'見ていない場合は、それを入手!
オプション△2 ->RBENV ( Rubyの環境)
rbenvはサムスティーブンソンによって書かれました.彼は現在働いているBasecamp . 最初にRBENVでの作業が始まったAugust, 2012 .
rbenvのそれの主要なプルは、それが軽いです.そして、それによって、我々はあなたのコンピュータシステムに多くのフックを投げなければならないことを意味します.

開発チームが2つのテクノロジーと彼らが比較する方法を比較することに入る彼ら自身のGithubレポからのハイライトのいくらかは、ここにあります.

rbenvは…を行う。

  • アプリケーション固有のRubyバージョンを指定するためのサポートを提供します.
  • グローバルRubyバージョンをユーザー毎に変更します.
  • 環境変数でRubyバージョンをオーバーライドできます.
  • RVMとは対照的に、rbenvはありません。

  • あなたのシェルにロードする必要があります.代わりに、RBenvのシムのアプローチは、あなたのパスにディレクトリを追加することによって動作します.
  • CDのようなシェルコマンドをオーバーライドするか、プロンプトのハックが必要です.それは危険で誤りがちです.
  • 設定ファイルがあります.使用するRubyのバージョンを除いては何も設定できません.
  • Rubyをインストールします.Rubyをビルドしてインストールしたり、Rubyビルドを使用してプロセスを自動化できます.
  • 管理セット.バンドルは、アプリケーションの依存関係を管理するためのより良い方法です.あなたがまだBunlerを使用していないプロジェクトを持っているならば、あなたはRBenv GemSetプラグインをインストールすることができます.
  • 互換性のためにRubyライブラリへの変更を必要とします.RBenvのシンプルさは、あなたのパスにある限り、他の何もそれについて知っておく必要があります.
  • thanks rbenv!
    個人的には、この時点で私の研究をしていたところ、RVMのシステムからRVMをきれいにしてRBENVのインストールプロセスを走らせるために、一日一時間を過ごす時間であることはかなり確信していました.
    しかし、教育のために、私はRBENVがどのように働くかについての技術的な点に関する情報をいくつか提供します.
    1 )コマンドを実行し、RubyまたはRakeとする
    2 )コンピュータを実行し、特定の実行可能ファイルを探します.
    /usr/local/bin:/usr/bin:/bin
    
    3 )経路という環境がある
    4 )これは上記のコードのようなディレクトリの一覧を含んでいます
    5 )すべてのディレクトリは色で区切られています、':'
    6 )このプロセスは左から右に起こり、左にあるオブジェクトは右に残っているものを優先します
    シムズを歩く

    いいえ、いいえ、いいえシム.シムズ
    1 ) rbenvはあなたのパスの前に"シム"を挿入する
    ~/.rbenv/shims:/usr/local/bin:/usr/bin:/bin
    
    2 ) rbenv使用rehashing ディレクトリ内のコマンドを維持するには
    3 )システム全体でRubyコマンドにマッチする
    4 )これらのコマンドはIRB , GEM , RAKE , Rails ,もちろんルビーからの範囲である

    どこ


    あなたがもう一つの技術を交換する前に心配する最初のことは、あなたがこれまでにそのマネージャーの中にインストールしたパッケージでなければなりません.
    あなたが私と同じように、すでにあなたのブートキャンプがあなたを連れて行った方向とRVMインストールされた原因を持っていたならば、あなたは前の2ヵ月の先の2ヵ月でポットをかき混ぜたくありませんでした.
    端末に入力します(うまくいけばbash ).
    gem list --local
    

    Then you'd get a list of gems that were installed on your local system:

    *** LOCAL GEMS ***
    
    actioncable (5.2.1, 5.0.7)
    actionmailer (5.2.1, 5.0.7)
    actionpack (5.2.1, 5.0.7)
    actionview (5.2.1, 5.0.7)
    active_model_serializers (0.10.7)
    activejob (5.2.1, 5.0.7)
    activemodel (5.2.1, 5.2.0, 5.0.7)
    ...
    ETC!
    

    Then, you'd want to copy this and paste it somewhere for you to reference later on. I don't know if there's a simpler way to export and import your gems into a new package manage like Rbenv, but I don't know it and it's already 11am! No time!

    The next step would be choosing between two of the following RVM commands to remove the manager

    1) rvm implode

    2) gem uninstall rvm

    Additionally, if you created special script calls check these places

    • ~/.bashrc
    • ~/.bash_profile
    • ~/.profile
    • ~/.zshrc
    • ~/.zlogin
    Personally, I just open my VScode environment, from my main directory. ['. code' in the terminal]

    方法

    Alright! So I went ahead and used 'rvm implode' in my terminal, honestly due to just wanting it all gone in one go and reading this was the first command I should try.

    I soon as I ran it though, I saw this:

    my-local-machine-location.../.rvm/rubies/ruby-2.5.1/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets: Permission denied
    

    And so, these lines keep printing out, each ending with 'permission denied'.

    After contol C-ing it I then got...

    Failed to completely remove /Users/kurt/.rvm -- You will have to do so manually.
    

    Fine. The hard way then.

    Seems like when I first ran through the installation process I did it incorrectly, or at some point I moved the files.

    And yes, you can also try running "rvm implode --force" flag. And before anyone start having a panic attack about forcing anything, it didn't work either.

    Back to StackOverflow...

    Eureka!
    How Can I Remove RVM ruby version manager from my system?

    And so I implemented the command that was most voted, and actually originally from RVM's own troubleshooting page.

    How do I completely clean out all traces of RVM from my system, including for system wide installs?

    Okay, below is the line I entered

    /usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
    
    AND
    
    /usr/bin/sudo /usr/sbin/groupdel rvm
    
    AND
    
    /bin/echo
    
    AND
    
    rm -rf /usr/local/rvm
    

    When I ran my next calls, I got that no such file or directory exists.

    sudo rm /etc/profile.d/rvm.h
    sudo rm /etc/rvmrc
    sudo rm ~/.rvmrc
    

    I ran through some other removal commands to make sure that nothing remained, getting a response that RVM did not exist after each.

    I then went into my local files, found refrences to RVM and commented them out for now.

    • ~/.bashrc
    • ~/.bash_profile
    • ~/.profile
    • ~/.zshrc
    • ~/.zlogin

    Once I start using RBENV and make sure nothing is badly broken, I'll go back and actually delete the lines. But what I've learned from experience is never get rid of something unless you've tested and made suer you don't need it anymore. Thus why I have around 50 tabs opne...

    run the following command to check all of your hidden files

    ls -a ~
    

    私は知っている知っている、私も疲れている

    rbenvをインストールするとき(


    これは、予想通りに実際には取りませんでした.
    覚えているgotchas:
  • Homebrew インストール!この投稿は既に長いので、リンクをクリックして実行できます.
  • bashファイルにコマンドをペーストした後、常にターミナルを再起動します.あなたがそれを必要としないと思う場合でも、それはきれいなスタートを与えるために良い.
  • セットアップウォークスルーも行う参考リンク
  • This gist from traumverloren
  • Thoughtbot also uses rbenv
  • DigitalOcean and their rbenv setup process
  • 1 )更新homebrew
    brew update
    
    2 )その後rbenvをhomebrewでインストールする
    brew install rbenv
    
    3)この部分は少し奇妙な原因だった.お先にどうぞ.プロフィール.ファイルとアドイン
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)" 
    
    あなたがzshを使っているならば、ちょっとペーストしてくださいeval "$(rbenv init -)" あなたの.zshrcファイル
    4)さて、ここで私は自分をからかったのです.」rbenv init 'はシェルコマンドを統合する方法についての指示を出力するだけです.これはステップ3でしたことです.それで、あなたがそれを読むとき、それを走らせてください、そして、ちょうど同じ指示を得てください、そして、異常に外へ出さないでください.
    5 )これを実行し、適切にインストールされているすべてをチェックします
    curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
    
    閉じるこの動画はお気に入りから削除されています
    Checking for `rbenv' in PATH: /usr/local/bin/rbenv
    Checking for rbenv shims in PATH: OK
    Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20190828)
    Counting installed Ruby versions: 1 versions
    Checking RubyGems settings: OK
    Auditing installed plugins: OK
    
    ああ!
    さて、Rubyリストを見ましょう
    rbenv install -l
    
    最新版をインストールしましょう.ルビーの最新バージョンを確認してくださいsite .
    その後、単にグローバルに利用できるようにしたいのですが、デフォルトの1つを追加します.
    rbenv install 2.6.4 
    
    2019年8月現在のRuby版の上で
    また、おそらくバンドルをインストールしてインストールしたいでしょう
    gem install bundler
    
    私たちはそれをやった!

    ああ、私は喜びを感じることができます

    TLR


    私はRVMとRBVenvが何であったかを調べて、彼らの長所と短所を見ました.それはすべての作業の品質に対する品質の取得の速度に煮詰めて.その後、2番目のこのポストの私自身の削除/インストール手順に取り組んでいた.うまくいけば、これはそこにいくつかの人々を助ける、私はそれが私がこれを行うに設定したときに便利に来ていることを知っている.それがないならば、常にインターネットとスタックオーバーフローがあります!
    クレジット
    unsplash: Charles 🇵🇭