私は他のすべての同様の答えをチェックしましたが、どれも私のものとまったく同じではありませんでした。
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 -v
:rvm 1.22.3
Ruby -v
:Ruby 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:
:
:
:
エラーを解決するには:
エラー:gemの実行中...(Gem :: FilePermissionError)/usr/local/lib/Ruby/gems/1.8ディレクトリへの書き込み権限がありません。
次の解決策は私のために働いた:
Sudo gem install -n /usr/local/bin cocoapods
Rootユーザーとしてrvm
をインストールした場合、Sudo
をインストールする必要があります。
rvm
をユーザーモードで通常のユーザーとしてインストールできます。この場合、すべてがホームディレクトリに保存され、Sudo
は不要です。
この特定のインストールにコミットしていない場合は、Sudo rvm implode
そして最初からやり直します。
エラー:gemの実行中...(Gem :: FilePermissionError)/Library/Ruby/Gems/2.3.0ディレクトリに対する書き込み権限がありません。
最初にRVMをインストールし、次に.zshrcまたは.bashrcまたはその他のユーザーgemフォルダーを設定します。
export GEM_HOME="$HOME/.gem"
今gem i LIB
は宝石を安全な場所に置きます。
global(システム全体)構成ファイルには、おそらく --no-user-install
フラグが設定されています。ローカル~/.gemrc
ファイルを作成/編集し、次の行を追加します。
:gemdir:
- ~/.gem/Ruby
install: --user-install
注gemdir
オプションの実際のディレクトリは、システム/欲望によって異なります。必要な場合とそうでない場合がありますが、home
フォルダー(gemdir
)内で目的のインストールディレクトリを指定する方が、それ自体で処理されると想定するよりもおそらく良いでしょう。
ArchLinux Wiki には、これに関連するいくつかの役立つ/よく整理された情報があります。
または、すでに提案されている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
rvmがインストールされていると仮定すると、次のようなことができます:
$ rvm install 2.1.1
$ rvm @global do gem install compass
須藤をする必要はありません。
あなたはおそらくそのパスに沿ったどこかに書き込み権限を持っていません(おそらく/ usr/local/lib)、Sudoを必要としないためにRVMストレージの場所を変更する必要があります
Rvmのマルチユーザーインストールを実行することを選択した場合、各ユーザーを経由してrvmグループに追加する必要があることに注意してください。
usermod -a -G rvm <USERNAME>
Rvmの関連情報 [〜#〜] faq [〜#〜]