web-dev-qa-db-ja.com

エラー:gemの実行中...(Gem :: FilePermissionError)

私は他のすべての同様の答えをチェックしましたが、どれも私のものとまったく同じではありませんでした。

gem environmentおよびSudo gem environment同じ結果が得られます。

RubyGems Environment:
  - RUBYGEMS VERSION: 1.5.3
  - Ruby VERSION: 1.8.7 (2011-12-28 patchlevel 357) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/lib/Ruby/gems/1.8
  - Ruby EXECUTABLE: /usr/local/bin/Ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - Ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/local/lib/Ruby/gems/1.8
     - /home/ava/.gem/Ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

rvm -vrvm 1.22.3

Ruby -vRuby 1.8.7

OSX 10.8.4

echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/ava/.rvm/bin:/home/ava/bin

gem install <gem-name>与える

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/local/lib/Ruby/gems/1.8 directory.

一方、私はSudo経由で同じものをインストールすることができます。私は何を間違えていますか?

更新:

コメントとこれ post に従って、私は次を実行しました:

rvm implodeその後、安定バージョンを再インストールします。 rvm install 1.9.3またはその他のRubyインストールは次のように失敗します

Error running '__rvm_make -j24',
please read /home/ava/.rvm/log/log/1378418790_Ruby-1.9.3-p194/make.log
There has been an error while running make. Halting the installation.

make.log

    [2013-09-05 22:06:48] make
current path: /home/ava/.rvm/src/Ruby-1.9.3-p194
command(2): make -j24
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Werror-implicit-function-declaration  -fPIC
        XCFLAGS = -include Ruby/config.h -include Ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
        CPPFLAGS =   -I. -I.ext/include/x86_64-linux -I./include -I.
        DLDFLAGS = -Wl,-soname,libruby.so.1.9
        SOLIBS = -lpthread -lrt -ldl -lcrypt -lm
compiling main.c
compiling dmydln.c
compiling dmyencoding.c
compiling version.c
compiling miniprelude.c
compiling array.c
compiling bignum.c
compiling class.c
compiling compar.c
compiling complex.c
compiling dir.c
compiling dln_find.c
compiling enum.c
compiling enumerator.c
compiling error.c
compiling eval.c
compiling load.c
compiling proc.c
compiling file.c
:
:
:
In file included from ossl.h:213,
                 from ossl_pkcs5.c:5:
openssl_missing.h:71: error: conflicting types for ‘HMAC_CTX_copy’
/usr/local/include/openssl/hmac.h:102: error: previous declaration of ‘HMAC_CTX_copy’ was here
openssl_missing.h:95: error: conflicting types for ‘EVP_CIPHER_CTX_copy’
/usr/local/include/openssl/evp.h:459: error: previous declaration of ‘EVP_CIPHER_CTX_copy’ was here
make[2]: *** [ossl_pkcs5.o] Error 1
In file included from ossl.h:213,
                 from ossl_x509req.c:11:
:
:
:
28
Ava

エラーを解決するには:

エラー:gemの実行中...(Gem :: FilePermissionError)/usr/local/lib/Ruby/gems/1.8ディレクトリへの書き込み権限がありません。

次の解決策は私のために働いた:

Sudo gem install -n /usr/local/bin cocoapods
42
Amandeep Singh

Rootユーザーとしてrvmをインストールした場合、Sudoをインストールする必要があります。

rvmをユーザーモードで通常のユーザーとしてインストールできます。この場合、すべてがホームディレクトリに保存され、Sudoは不要です。

この特定のインストールにコミットしていない場合は、Sudo rvm implodeそして最初からやり直します。

24
tadman

エラー:gemの実行中...(Gem :: FilePermissionError)/Library/Ruby/Gems/2.3.0ディレクトリに対する書き込み権限がありません。

最初にRVMをインストールし、次に.zshrcまたは.bashrcまたはその他のユーザーgemフォルダーを設定します。

export GEM_HOME="$HOME/.gem"

gem i LIBは宝石を安全な場所に置きます。

23
dimpiax

global(システム全体)構成ファイルには、おそらく --no-user-install フラグが設定されています。ローカル~/.gemrcファイルを作成/編集し、次の行を追加します。

:gemdir:
    - ~/.gem/Ruby
install: --user-install


gemdirオプションの実際のディレクトリは、システム/欲望によって異なります。必要な場合とそうでない場合がありますが、homeフォルダー(gemdir)内で目的のインストールディレクトリを指定する方が、それ自体で処理されると想定するよりもおそらく良いでしょう。

ArchLinux Wiki には、これに関連するいくつかの役立つ/よく整理された情報があります。


chい

または、すでに提案されているrvmソリューションと同様に、 chruby を使用して、Rubyのローカルバージョンを維持、構成、および使用できます。ただし、Rubyの追加バージョンをインストールするには、 Ruby-install を使用する必要があります。

$ brew install chruby Ruby-install
$ Ruby-install Ruby 2.4.0

$ echo "source /usr/local/opt/chruby/share/chruby/chruby.sh" >> ~/.bash_profile
$ echo "chruby Ruby" >> ~/.bash_profile

# Do this to select the default alternative Ruby installation, assuming
# there is no other version installed.
$ chruby Ruby

## Otherwise, list the available Ruby versions installed, and select
$ chruby
Ruby-2.3.0
Ruby-2.4.0

$ chruby Ruby-2.4.0

プロジェクトのREADMEから:

現在のRubyを変更します。特徴

Updates $PATH.
    Also adds RubyGems bin/ directories to $PATH.
Correctly sets $GEM_HOME and $GEM_PATH.
    Users: gems are installed into ~/.gem/$Ruby/$version.
    Root: gems are installed directly into /path/to/$Ruby/$gemdir.
Additionally sets $Ruby_ROOT, $Ruby_ENGINE, $Ruby_VERSION and $GEM_ROOT.
Optionally sets $RUBYOPT if second argument is given.
Calls hash -r to clear the command-lookup hash-table.
Fuzzy matching of Rubies by name.
Defaults to the system Ruby.
Optionally supports auto-switching and the .Ruby-version file.
Supports bash and zsh.
Small (~100 LOC).
Has tests.

アンチ機能

Does not hook cd.
Does not install executable shims.
Does not require Rubies be installed into your home directory.
Does not automatically switch Rubies by default.
Does not require write-access to the Ruby directory in order to install gems.

必要条件

bash >= 3 or zsh
22
ILMostro_7

rvmがインストールされていると仮定すると、次のようなことができます:

$ rvm install 2.1.1
$ rvm @global do gem install compass

須藤をする必要はありません。

4
Allan

あなたはおそらくそのパスに沿ったどこかに書き込み権限を持っていません(おそらく/ usr/local/lib)、Sudoを必要としないためにRVMストレージの場所を変更する必要があります

0
dannymc129

Rvmのマルチユーザーインストールを実行することを選択した場合、各ユーザーを経由してrvmグループに追加する必要があることに注意してください。

usermod -a -G rvm <USERNAME>

Rvmの関連情報 [〜#〜] faq [〜#〜]

0
the_ogre