Rbenv: Calzas para concha de pescado

Creado en 16 feb. 2012  ·  20Comentarios  ·  Fuente: rbenv/rbenv

Sería muy útil que rbenv proporcionara calzas que también fueran compatibles con las conchas de pescado. No sería un gran cambio, pero significaría que rbenv podría usarse en un shell que no sea bash / zsh. La sintaxis de fish es mucho más sensata que la de bash.

Comentario más útil

Parece que las calzas están bien, es la guía de instalación la que necesita ajustes. Agregue esto a config.fish para soporte rbenv:

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

Todos 20 comentarios

Me gustaría apoyar esto.

Parece que las calzas están bien, es la guía de instalación la que necesita ajustes. Agregue esto a config.fish para soporte rbenv:

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

¡Gracias, Ed! :)

Funciona de maravilla.
Eres un caballero y un erudito.

Como señaló @emcmanus , las calzas de rbenv funcionan bien con Fish o cualquier otro caparazón. Solo necesita Bash _instalado_ para usarlos, no necesita ser su shell. Los shims son scripts Bash y puede ejecutarlos desde Fish de la misma forma que puede ejecutar un script Ruby o Python desde Fish.

Agregar rbenv a su PATH es todo lo que se necesita para que funcione. Aceptaría un parche que agrega compatibilidad con Fish por rbenv init para que no necesite construir manualmente las rutas.

Sin embargo, parece que esto no es suficiente, ya que rbenv shell no funcionará.

rbenv shell es solo un atajo para configurar la variable de entorno RBENV_VERSION . No pierde ninguna funcionalidad sin él.

Usé esto para que rbenv shell funcione en peces: https://coderwall.com/p/6hja1w

Al invocar rbenv desde fish shell, no se pasa ninguna variable de entorno configurada en su shell. Además, no se leen ni ~/.bashrc ni ~/.bash_profile . Si desea personalizar rbenv, consulte el n. ° 375.

@espen ha mencionado el protip de Coderwall mío, pero hay una versión actualizada que permite un nombre parcial de Ruby (el predeterminado será el más nuevo, aún sin completar). The Gist se puede encontrar allí https://gist.github.com/5631243 (dale un poco de amor si puedes).

Entiendo que este problema ya se ha resuelto, pero todavía me pregunto si podríamos implementar esta función de la manera correcta. ¿Estoy en lo cierto pensando que solo tendríamos que asegurarnos de que cuando se llame a rbenv init - , se haga eco de la sintaxis amigable con las conchas de pescado para que los peces puedan evaluar eso? En cuyo caso, preferiría implementarlo como parte del repositorio rbenv original que tener _ soluciones alternativas_ externas que podrían desincronizarse con los componentes internos originales de rbenv ...

También entiendo que @sstephenson podría no querer apoyar activamente la concha de pescado, pero tal vez podríamos intentar implementar una compatibilidad experimental al principio y estoy seguro de que podría obtener el apoyo de la propia comunidad de conchas de pescado (parecen ser bastante amigables y bastante receptivo también).

Presumiblemente, el archivo que tendríamos que cambiar es https://github.com/sstephenson/rbenv/blob/master/libexec/rbenv-init
Estoy en lo cierto? No soy un mago de guiones de shell, pero prefiero intentar hacerlo bien en colaboración con alguien si está preparado para hacerlo de la manera correcta.

Salud

Cualquier usuario de pescado puede mejorar la salida de rbenv init para que sea compatible con la concha de pescado y enviarnos una solicitud de extracción.

El problema es que el pez no es un caparazón POSIX y será difícil implementar rbenv init de la manera correcta para brindar soporte a los peces (supongo que habrá algunos que querrán soporte para csh o tcsh ). Creo que debe tenerse en cuenta que si alguien usa un shell que no sea POSIX, entonces puede usar una de las funciones de la comunidad (y dar enlaces) o debe escribirlo él mismo.

@hauleth Creo que _puede_ estar_ equivocado. Según los comentarios de @emcmanus y @sstephenson, todo lo que tenemos que hacer es obtener rbenv init para producir una sintaxis compatible con peces de modo que pueda ser eval d por pez. Un shell compatible con POSIX (como bash de esa manera) solo necesita ser instalado y no necesariamente tiene que ser el shell de su elección. Vea los comentarios de @sstephenson arriba.

Enviaré un correo electrónico a la lista de correo de la comunidad de peces e iniciaré la conversación, trataré de obtener ayuda de los chicos de allí.

El comando rbenv shell llama a rbenv sh-shell , que devuelve una cadena que también es eval d. Podríamos solucionarlo y analizar el código de retorno de esa llamada en lugar de evaluar la cadena devuelta. ¿Eso estaría bien? Si es así, podría crear algo que hiciera esto.

@bitboxer Fish Shell debe ser totalmente compatible con rbenv master. Si descubre que ese no es el caso, abra una nueva edición. ¡Gracias!

Gracias "emcmanus"
Utilizo pescado y estaba buscando una respuesta.

Como mencionó "emcmanus", si está usando concha de pescado, lo siguiente funcionó para mí.

PROBADO EN

  • Debain
  • Ubuntu
  • Kubuntu
  • Fedora
  • CentOS
  • RedHat Enterprise
 vi ~ / .config / fish / config.fish
 establecer RUTA $ INICIO / .rbenv / bin $ RUTA
 establecer RUTA $ INICIO / .rbenv / calzas $ RUTA
 rbenv rehash> / dev / null ^ & 1

Luego salga de pescado y vuelva a cargar pescado o simplemente cierre la sesión y vuelva a iniciarla. Si no puede encontrar el archivo, significa que acaba de instalar Fish y no lo ejecutó una vez. Simplemente ejecute fish y se creará esa carpeta (es posible que el archivo no).

Esto es pez pez, no pez.
http://fishshell.com/

Gracias @emcmanus y @sstephenson.

Aparentemente, la sintaxis ^ quedará obsoleta en el futuro y está rota en algunas versiones ( vea este problema aquí ).

Por lo tanto, puede ser mejor usar la siguiente sintaxis en su lugar: rbenv rehash >/dev/null >2&1 .

Por lo tanto, puede ser mejor usar la siguiente sintaxis: rbenv rehash> / dev / null> 2 & 1.

Hay un error tipográfico allí 2 y > deben intercambiarse:

rbenv rehash >/dev/null 2>&1
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

wakproductions picture wakproductions  ·  4Comentarios

ChrisBrettCA picture ChrisBrettCA  ·  4Comentarios

sgnd picture sgnd  ·  3Comentarios

mhinz picture mhinz  ·  3Comentarios

ponamute picture ponamute  ·  4Comentarios