web-dev-qa-db-ja.com

sudoなしでgemをインストールする方法

すべてのgemインストールでSudoを実行する必要がありますか?そう

Sudo gem install Rails

動作しますが、

gem install Rails

動作しないでしょう。どうすれば修正できますか?

Rvmがインストールされています-

murtaza@murtaza-dev:~$ which rvm
/home/murtaza/.rvm/bin/rvm

murtaza@murtaza-dev:~$ which gem
/home/murtaza/.rvm/rubies/Ruby-1.9.3-p194/bin/gem

ただし、gemで操作を行うときにもこの警告が表示されます-

murtaza@murtaza-dev:~$ gem
/home/murtaza/.rvm/rubies/Ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777

[〜#〜] edit [〜#〜]

curl -L get.rvm.io | bash -s stable --auto(Sudoなし)を使用してrvmを再インストールしました。

ただし、gemをインストールしようとすると、次のエラーが表示されます-

murtaza@murtaza-dev:~$ gem install Rails
/home/murtaza/.rvm/rubies/Ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied - /home/murtaza/.gem/specs

[〜#〜] edit [〜#〜]

私はすべてを理解しましたが、それでもエラーが発生しました-

murtaza@murtaza-dev:~$ Sudo chown murtaza.murtaza -R ~/.rvm/*


 murtaza@murtaza-dev:~$ gem install Rails
    /home/murtaza/.rvm/rubies/Ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777
    ERROR:  While executing gem ... (Errno::EACCES)
        Permission denied - /home/murtaza/.gem/specs
26
murtaza52

.rvmおよび.gemディレクトリ全体でchownを使用して、ユーザーに戻します。おそらく以前にSudoを使用していた可能性があり、アクセス許可を台無しにしました。

Sudo chown -R username:group ~/.rvm
Sudo chown -R username:group ~/.gem

もちろん、ユーザー名をユーザー名に変更し、グループをグループに変更します

29

Sudoを使用せずにインストールすると、Rubyはどこにインストールされるかわかりません。デフォルトでどこにインストールされるのか覚えていないでしょう。 、GEM_HOME環境変数を設定することで、Rubyがインストールされている場所を知ることができます。

$ # assuming your gems are stored in ~/.gems
$ GEM_HOME="$HOME/.gems" Ruby my_program.rb

それが機能する場合は、〜/ .bashrcに入れます(システムによっては、このファイルが入り込む可能性のあるファイルがいくつかあります)

17
Joshua Cheek

Macユーザーの場合、これは私のために働く...

  1. GEM_HOMEを.bash_profileに追加します

たとえば、nano ~/.bash_profileを追加し、エクスポートがGEM_HOME=/Users/Michael/.gemを追加します。ここで、パスは独自のホームフォルダーになります

  1. Gem実行可能ファイルをシステムパスに追加します

.bash_profileにも、export PATH="$GEM_HOME/bin:$PATH"を追加します

ソース: http://michaelehead.com/2016/02/06/installing-gems-without-Sudo.html

9
eMarine

Ruby Version Manager をインストールする必要があります。インストールされたルビーとgemをホームディレクトリに保存するため、Sudoを使用してgemをインストールする必要はありません。これ以外にも多くの機能があります。 :)

6

マックOS

brew install Ruby 

編集~/.zshrc for zsh(Bashの場合は~/.bash_aliases

# By default, binaries installed by gem will be placed into:
# /usr/local/lib/Ruby/gems/2.6.0/bin
export GEM_HOME="/usr/local/lib/Ruby/gems/"
export PATH="$GEM_HOME/bin:$PATH"
1
leo.tan

次の方法で問題を解決しました:(ubuntu 17.10があります)

ターミナルを開いて入力します:

echo "gem: --user-install" >> ~/.gemrc

次に、.bashrcファイルにRubyのbinパスを追加します

export PATH="$PATH:$HOME/.gem/Ruby/x.x.x/bin"
1
djangodude

gem install package --install-dir $HOME/.gemを試してください。

export PATH="$PATH:$HOME/.gem/bin"の前に述べたようにパスを設定することを忘れないでください。

考慮しなければならないことは、export PATH="$HOME/.gem/bin:$PATH"のようなPATHの順序を変更することです。たとえば、OS XシステムのローカルディレクトリにRailsをインストールしようとしているが、実行可能ファイルが既に組み込まれている場合に発生する可能性があります。この場合、パスを変更しない場合注文すると、次の出力も表示されます。

Railsは現在このシステムにインストールされていません。最新バージョンを入手するには、次のように入力します。

$ Sudo gem install Rails

その後、「Rails」コマンドを再実行できます。

変数GEM_HOMEexport GEM_HOME="$HOME/.gems"のように設定します