Rbenv: Calços para concha de peixe

Criado em 16 fev. 2012  ·  20Comentários  ·  Fonte: rbenv/rbenv

Seria muito útil se calços fornecidos pela rbenv que também fossem compatíveis com a concha de peixe. Não seria uma grande mudança, mas significaria que rbenv poderia ser usado em um shell não bash / zsh. A sintaxe para fish é na verdade muito mais sã do que bash.

Comentários muito úteis

Parece que os calços estão bem, é o guia de instalação que precisa de ajustes. Adicione ao config.fish para suporte a rbenv:

set PATH $HOME/.rbenv/bin $PATH
set PATH $HOME/.rbenv/shims $PATH
rbenv rehash >/dev/null ^&1

Todos 20 comentários

Eu gostaria de apoiar isso.

Parece que os calços estão bem, é o guia de instalação que precisa de ajustes. Adicione ao config.fish para suporte a rbenv:

set PATH $HOME/.rbenv/bin $PATH
set PATH $HOME/.rbenv/shims $PATH
rbenv rehash >/dev/null ^&1

Obrigado, Ed! :)

Funciona como um encanto.
Você é um cavalheiro e um erudito.

Como @emcmanus apontou, os shims de rbenv funcionam bem com Fish ou qualquer outro shell. Você só precisa do Bash _instalado_ para usá-los - ele não precisa ser o seu shell. Os shims são scripts Bash e você pode executá-los no Fish da mesma forma que pode executar um script Ruby ou Python no Fish.

Adicionar rbenv ao seu PATH é tudo o que é necessário para que funcione. Eu aceitaria um patch que adiciona compatibilidade Fish para rbenv init então você não precisa construir manualmente os caminhos.

Parece que isso não é suficiente, já que rbenv shell não funcionará.

rbenv shell é apenas um atalho para definir a variável de ambiente RBENV_VERSION . Você não perde nenhuma funcionalidade sem ele.

Usei isso para fazer o shell rbenv funcionar em peixes: https://coderwall.com/p/6hja1w

Ao invocar rbenv a partir da concha de peixe, nenhuma variável de ambiente definida em sua concha é passada. Além do mais, nem ~/.bashrc nem ~/.bash_profile são lidos. Se você deseja personalizar o rbenv, consulte # 375.

@espen mencionou meu protocolo do Coderwall, mas há uma versão atualizada que permite o nome parcial do Ruby (o padrão será escolhido o mais novo, ainda sem conclusão). A essência pode ser encontrada lá https://gist.github.com/5631243 (dê um pouco de amor, se puder).

Entendo que esse problema já foi resolvido, mas ainda me pergunto se conseguiríamos implementar esse recurso da maneira certa. Estou certo de pensar que só precisaríamos ter certeza de que, quando rbenv init - for chamado, ele deverá ecoar a sintaxe amigável de conchas de peixe para que os peixes possam avaliá-la? Nesse caso, eu prefiro implementá-lo como parte do repositório rbenv original do que ter _alterações_ externas que podem ficar fora de sincronia com os internos originais do rbenv ...

Eu também entendo que @sstephenson pode não querer apoiar ativamente a concha de peixe, mas talvez pudéssemos tentar implementar uma compatibilidade experimental no início e tenho certeza que conseguiríamos suporte da própria comunidade de conchas de peixe (eles parecem ser bastante amigáveis ​​e bastante responsivo também).

Presumivelmente, o arquivo que precisaríamos alterar é https://github.com/sstephenson/rbenv/blob/master/libexec/rbenv-init
Estou certo? Não sou um mágico de script de shell, mas prefiro tentar fazer isso da maneira certa em colaboração com alguém, se alguém quiser fazer isso da maneira certa.

Saúde

Qualquer usuário de peixe é bem-vindo para melhorar a saída de rbenv init modo que suporte a concha de peixe e nos envie uma solicitação de pull.

O problema é que o peixe não é uma casca POSIX e será difícil implementar rbenv init da maneira certa para fornecer suporte aos peixes (eu suponho que haverá então alguns vão querer suporte para csh ou tcsh ). Eu acho que deve ser notado que se alguém usar shell não POSIX, ele pode usar uma das funções da comunidade (e fornecer links) ou ele deve escrever por conta própria.

@hauleth , acho que você _pode estar_ enganado. Com base nos comentários de @emcmanus e @sstephenson, tudo o que precisamos fazer é obter rbenv init para produzir uma sintaxe compatível com peixes para que possa ser eval d por peixe. Um shell compatível com POSIX (como o bash para essa maneira) apenas precisa ser instalado e não necessariamente tem que ser o shell de sua escolha. Veja os comentários de @sstephenson acima.

Vou mandar um e-mail para a lista de discussão da comunidade de peixes e iniciar a conversa, vou tentar obter ajuda dos caras de lá.

O comando rbenv shell chama rbenv sh-shell , que retorna uma string que também é eval d. Poderíamos contornar isso e analisar o código de retorno dessa chamada em vez de avaliar a string retornada. Tudo bem? Se sim, eu poderia criar algo que fizesse isso.

@bitboxer Fish shell deve ser totalmente suportado por rbenv master. Se você achar que não é o caso, abra um novo problema. Obrigado!

Obrigado "emcmanus"
Eu uso peixes e estava procurando uma resposta.

Como "emcmanus" mencionou, se você estiver usando a concha de peixe, o seguinte funcionou para mim.

TESTADO EM

  • Debain
  • Ubuntu
  • Kubuntu
  • Fedora
  • CentOS
  • RedHat Enterprise
 vi ~ / .config / fish / config.fish
 definir PATH $ HOME / .rbenv / bin $ PATH
 definir PATH $ HOME / .rbenv / shims $ PATH
 rbenv rehash> / dev / null ^ & 1

Em seguida, saia do peixe e recarregue o peixe ou apenas faça logoff e ligue-o novamente. Se não conseguir encontrar o arquivo, isso significa que você acabou de instalar o fish e não o executou nenhuma vez. Basta executar o fish e essa pasta será criada (o arquivo não pode).

Este é um peixe, não um peixe.
http://fishshell.com/

Obrigado @emcmanus e @sstephenson.

Aparentemente, a sintaxe ^ será descontinuada no futuro e está quebrada em algumas versões ( veja este problema aqui ).

Portanto, pode ser melhor usar a seguinte sintaxe: rbenv rehash >/dev/null >2&1 .

Portanto, pode ser melhor usar a seguinte sintaxe: rbenv rehash> / dev / null> 2 & 1.

Há um erro de digitação em 2 e > deve ser trocado:

rbenv rehash >/dev/null 2>&1
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

dazza-codes picture dazza-codes  ·  4Comentários

ChrisBrettCA picture ChrisBrettCA  ·  4Comentários

ghost picture ghost  ·  4Comentários

wakproductions picture wakproductions  ·  4Comentários

sgnd picture sgnd  ·  3Comentários