A execução de ' sudo gem list --local
' e ' gem list --local
' fornece resultados diferentes. Meu caminho de gema está definido para minha pasta pessoal e contém apenas as gemas de ' gem list --local
'.
Provavelmente não é bom ter gemas instaladas em diretórios diferentes no meu computador, por isso devo definir o caminho da gema de maneira diferente e sempre devo usar sudo
ao instalar alguma coisa?
my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
~ / .bash_profile está vazio.
ruby-on-rails
ruby
macos
rubygems
raphael_turtle
fonte
fonte
sudo gem install rails
vez degem install rails
.sudo
é uma arma carregada apontada para o seu pé. Usá-lo sem entender o que faz e como pode afetar seu sistema é como apertar o gatilho com os olhos fechados. Você pode abrir um buraco no pé, mas não quer correr o risco, a menos que saiba como desfazer o dano. O uso desudo
gravações no Ruby, de propriedade do sistema, que, no Mac OS, foi instalado pela Apple para uso próprio. Podemos pegar carona, mas mudar a coisa errada pode quebrar o código deles. É por isso que instalamos a partir da fonte ou usamos outra coisa para instalar onde podemos ajustá-lo com segurança.Respostas:
Ao contrário de todos os outros posts, sugiro NÃO usar
sudo
ao instalar gemas.Em vez disso, recomendo que você instale o RVM e comece uma vida feliz com casas de jóias portáteis e uma versão diferente do Ruby, todas vivendo sob o mesmo teto.
Para os não iniciados, a partir da documentação :
A razão pela qual a instalação de gemas
sudo
é pior do que apenasgem install
é porque instala as gemas para TODOS OS USUÁRIOS comoroot
. Isso pode ser bom se você for a única pessoa a usar a máquina, mas se não for, poderá causar estranheza.Se você decidir eliminar todas as suas jóias e começar de novo, é muito mais fácil e seguro fazê-lo como um usuário não root.
Se você decidir usar
RVM
, o usosudo
causará todo tipo de estranheza, porque cada versão do Ruby que você instalaRVM
possui seu próprio GEM_HOME.Além disso, é bom se você puder tornar seu ambiente de desenvolvimento o mais próximo possível do ambiente de produção e, na produção, você provavelmente instalará gems como um usuário não raiz.
fonte
Você também pode instalar gemas em seu ambiente local (sem
sudo
) comEu recomendo que você não mexa com sua configuração no nível do sistema, mesmo que seja um computador de usuário único.
Você pode verificar para onde estão as jóias, olhando para os caminhos de pedras preciosas
gem environment
. No meu caso, é "~ / .gem / ruby / 1.8".Se você precisar adicionar alguns binários de instalações locais ao seu caminho, poderá adicionar algo ao seu bashrc, como:
(em http://guides.rubygems.org/faqs/#user-install )
fonte
rake install
e para consertar o sudo isse, tive que corrigir manualmente a/Library/Ruby/Gems/2.0.0/gems/bundler-1.7.3/lib/bundler/gem_helper.rb
adição--user-install
lá. Não foi possível encontrar uma solução melhor, porque parecerake install
que não aceita parâmetros adicionais.Melhor ainda, coloque
--user-install
seu arquivo ~ / .gemrc para que você não precise digitá-lo toda vezfonte
No caso de você
adicione o seguinte ao seu
.bash_profile
:Abra uma nova guia no Terminal OU
source ~/.bash_profile
e pronto!fonte
Relacionado (para usuários do bundler), se você deseja uma alternativa mais leve ao RVM, que colocará tudo em um diretório conhecido específico do usuário, recomendo usar:
se você deseja instalar gemas no mesmo local que
irá instalá-los,
.gem/ruby/RUBYVERSION
em sua casa. (Veja o outro comentário sobre esta questão sobre--user-install
.)Isso tornará as gemas visíveis
gem list
, desinstaláveis viagem uninstall
etc., sem a necessidade desudo
acesso. Os scripts executáveis instalados por gem ou bundler podem ser colocados no seu caminho adicionandopara o seu
$PATH
.gem
ele mesmo informa sobre isso se não estiver definido quando você o fizergem install --user-install
.fonte
instalará sua joia globalmente , ou seja, estará disponível para todos os contextos do usuário.
fonte
Você pode instalar gemas em uma pasta específica (exemplo de fornecedor /) no seu aplicativo Rails usando:
fonte