webentwicklung-frage-antwort-db.com.de

Juwel installieren Berechtigungsproblem

[email protected]:~> gem install hpricot
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /opt/Ruby-enterprise-1.8.7/lib/Ruby/gems/1.8 directory.

Der aktuelle angemeldete Benutzer ist qichunren und der Benutzer qichunre hat eine Schreibberechtigung für .gem dir. Warum mein Gem-Common zuerst Dateien in /opt/Ruby-enterprise-1.8.7/lib/Ruby/gems/1.8 installieren möchte

82
qichunren

Melden Sie sich bei einer systemweiten Ruby Installation als root an. Beispiel:

$ Sudo gem install hpricot

Der moderne Ansatz besteht jedoch in vielen Fällen, auch in der Entwicklung, darin, ein Tool zu verwenden, mit dem Sie Ruby als normaler Benutzer problemlos installieren und verwenden können. Auf diese Weise müssen Sie sich nicht als Root anmelden Es gibt ein paar solcher Tools, und das, das ich verwende, ist RVM .

# install rvm into your ~
$ \curl -sSL https://get.rvm.io | bash -s stable

# install latest version of Ruby into your ~
$ rvm install Ruby

# installs a gem into your ~
$ gem install $SOME_GEM_NAME
49
yfeldblum

Versuchen Sie, GEM_HOME Und GEM_PATH Auf ~/.gem Zu setzen.

Geben Sie für die aktuelle Terminalsitzung Folgendes ein:

export GEM_HOME=~/.gem
export GEM_PATH=~/.gem

Wenn Sie möchten, dass diese beim Öffnen eines Terminals festgelegt werden, fügen Sie die obigen Befehle zu Ihrer Datei ~/.bashrc Hinzu.

Eine umfassendere Lösung zum Einrichten einer benutzerdefinierten Ruby) - Umgebung finden Sie unter dieses Tutorial von Site5KB , in dem die Verwendung einer .gemrc - Datei beschrieben wird.

158
meagar

Ich habe diesen Fehler auf meinem freigegebenen Server durch 1and1-Hosting erhalten. Meine Lösung war das Hinzufügen der --user-install Option, die es nur für Ihren angemeldeten Benutzer installiert (was alles ist, was Sie in einer gemeinsam genutzten Serverumgebung benötigen) Beispiel; Sass installieren

gem install sass --user-install
6
Max

Wenn Sie rbenv verwenden und dies geschieht, müssen Sie Ihrem .bash_profile Folgendes hinzufügen:

export RBENV_ROOT="$HOME/.rbenv"

if [ -d $RBENV_ROOT ]; then
  export PATH="$RBENV_ROOT/bin:$PATH"
  eval "$(rbenv init -)"
fi
3
Kevin Qi

neuinstallation Ruby mein Problem lösen.

brew install Ruby
0
jackyshan