16

私は迷惑なセットアップを構築しており、その一部はrbenvをインストールしています。librarian-chef を使用してすべてのシェフのクックブックを管理しています。これにより、rbenv と ruby​​-build がインストールされます。

ただし、Vagrant VM に ssh して入力しようとするとruby -v、標準の system-installed が取得されruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]ました。rbenv がインストールされていないのではないかと思い、実行してrbenv versionsみましたが、実際には rbenv がインストールされていました。

vagrant@precise64:~$ rbenv versions
* system (set by /opt/rbenv/version)

それで私は試しましたrbenv install [version]

vagrant@precise64:~$ rbenv install 1.9.3-p327
[...]

BUILD FAILED
[...]

test -z "/opt/rbenv/versions/1.9.3-p327/include" || /bin/mkdir -p "/opt/rbenv/versions/1.9.3-p327/include"
/bin/mkdir: cannot create directory `/opt/rbenv/versions/1.9.3-p327': Permission denied

で失敗しましPermission deniedた。私は次のように再インストールしようとしましたsudo

sudo rbenv install 1.9.3-p327

そして、それはうまくいきました。次に、rbenv versionsもう一度実行してみました:

vagrant@precise64:~$ rbenv versions
* system (set by /opt/rbenv/version)

しかし、それはまだsystemルビーだけがインストールされていると言います。ただし、次のように実行するとsudo:

vagrant@precise64:~$ sudo rbenv versions
* system (set by /home/vagrant/.rbenv/version)
  1.9.3-p327

rbenv versions今ショー1.9.3がインストールされました。

そのため、rbenv と私の Ruby バージョンがユーザー レベルではなくシステム レベルにインストールされているという点で、切断があるようです。

rbenv-cookbookを使用しています。インストール後に手動で設定する手間が省けるので、rbenvをchefで設定したいと思います。

私が抱えているもう1つの問題は、 など、ルビーで制御されているすべてのものgemも同じ切断に苦しんでいるように見えることです。

vagrant@precise64:~$ gem install bundler
Fetching: bundler-1.3.5.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /opt/vagrant_ruby/lib/ruby/gems/1.8 directory.
4

3 に答える 3

14

約 2 年前、共有インストールに関する議論が github で行われ、質問に答えているようです。

概要: sstephenson (rbenv の作成者) は、パーミッションや書き込みアクセスなどの複雑さのために、システム全体のインストールを奨励することを特に好まない.

編集

それ以来、私はfnicholのchef-rbenvクックブックに出くわしました。これは、実際にシステム全体のrbenvをインストールしたい場合、正しく適切な方法を提供し、Chefで自動化できます(knife soloをお勧めします)。

これを にインストールして/etc/profile.d/、すべてのユーザーに対して実行されるようにし、適切な ruby​​ をPATH.

于 2013-09-01T04:40:00.443 に答える
14

rbenv はユーザー レベルでインストールする必要があります。

残念ながら、これは を実行gem installしているときに、次のような問題が発生する可能性があることを意味します。

You don't have write permissions into the {...} directory

~/.rbenvこれは、ディレクトリに適切な権限を設定することで解決できます。

sudo chown -R yourusername ~/.rbenv

ディレクトリを ing した後は、なしchownで実行できるようになります。gem installsudo

于 2014-02-18T23:56:49.123 に答える
1

rbenv の Readme のすべては、ローカル (ユーザーごと) のインストール~/.rbenv/を想定しているため、公式の推奨事項はユーザーごとにインストールすることだと思います。

それでも、グローバルにインストールすることは可能です。ただしsudo、書き込み権限が必要なすべてのコマンドが必要です。新しい ruby​​ のインストール、gem* のインストール、グローバル ruby​​ バージョンの変更がここで頭に浮かぶものですが、他にもあるかもしれません。

(*) 新しい gem をインストールするために sudo が必要なのは、debian の apt のようなデフォルトのシステム ルーチンを介して ruby​​ をインストールする場合のデフォルトです。sudo を必要としないのは、実際には、ユーザーごとに動作する ruby​​ バージョン マネージャーを使用することのプラスの副作用です。基本

于 2013-08-03T10:48:53.657 に答える