Rbenv: Shim untuk kulit ikan

Dibuat pada 16 Feb 2012  ·  20Komentar  ·  Sumber: rbenv/rbenv

Akan sangat membantu jika rbenv menyediakan shim yang juga kompatibel dengan cangkang ikan. Itu tidak akan menjadi perubahan besar, tetapi itu berarti bahwa rbenv dapat digunakan di shell non-bash/zsh. Sintaks untuk ikan sebenarnya jauh lebih waras daripada bash.

Komentar yang paling membantu

Tampaknya shim baik-baik saja, ini adalah panduan pemasangan yang perlu diubah. Tambahkan ini ke config.fish untuk dukungan rbenv:

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

Semua 20 komentar

Saya ingin memberikan dukungan saya untuk ini.

Tampaknya shim baik-baik saja, ini adalah panduan pemasangan yang perlu diubah. Tambahkan ini ke config.fish untuk dukungan rbenv:

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

Terima kasih, Ed! :)

Bekerja seperti pesona.
Anda adalah seorang pria dan seorang sarjana.

Seperti yang ditunjukkan @emcmanus , shim rbenv berfungsi dengan baik dengan Fish atau shell lainnya. Anda hanya perlu Bash _installed_ untuk menggunakannya—tidak perlu shell Anda. Shims adalah skrip Bash, dan Anda dapat menjalankannya dari Fish dengan cara yang sama seperti Anda menjalankan skrip Ruby atau Python dari Fish.

Menambahkan rbenv ke PATH adalah semua yang diperlukan agar dapat berfungsi. Saya akan menerima tambalan yang menambahkan kompatibilitas Ikan untuk rbenv init sehingga Anda tidak perlu membuat jalur secara manual.

Sepertinya ini tidak cukup, karena rbenv shell tidak akan berfungsi.

rbenv shell hanyalah jalan pintas untuk mengatur variabel lingkungan RBENV_VERSION . Anda tidak akan kehilangan fungsionalitas apa pun tanpanya.

Saya menggunakan ini untuk membuat rbenv Shell berfungsi di ikan: https://coderwall.com/p/6hja1w

Saat menjalankan rbenv dari cangkang ikan, tidak ada variabel lingkungan yang ditetapkan di cangkang Anda yang diteruskan. Terlebih lagi, ~/.bashrc maupun ~/.bash_profile tidak dibaca. Jika Anda ingin menyesuaikan rbenv, lihat #375.

@espen telah menyebutkan protip Coderwall milik saya, tetapi ada versi terbaru yang memungkinkan nama Ruby parsial (default akan dipilih yang terbaru, masih belum selesai). Intisarinya dapat ditemukan di sana https://Gist.github.com/5631243 (berikan cinta jika Anda bisa).

Saya mengerti bahwa masalah ini sekarang telah ditutup, tetapi saya masih bertanya-tanya apakah kami dapat menerapkan fitur ini dengan cara yang benar. Apakah saya benar berpikir bahwa kita hanya perlu memastikan bahwa ketika rbenv init - dipanggil maka itu harus menggemakan sintaksis ramah kulit ikan sehingga ikan dapat mengevaluasinya? Dalam hal ini saya lebih suka menerapkannya sebagai bagian dari repo rbenv asli daripada memiliki _workarounds_ eksternal yang mungkin tidak sinkron dengan internal asli rbenv...

Saya juga mengerti bahwa @sstephenson mungkin tidak ingin secara aktif mendukung cangkang ikan tetapi mungkin kita dapat mencoba menerapkan kompatibilitas eksperimental di awal dan saya yakin bisa mendapatkan dukungan dari komunitas cangkang ikan itu sendiri (mereka tampaknya cukup ramah dan cukup responsif juga).

Agaknya file yang perlu kita ubah adalah https://github.com/sstephenson/rbenv/blob/master/libexec/rbenv-init
Apakah saya benar? Saya bukan pesulap skrip shell tetapi saya lebih suka mencoba melakukannya dengan benar bekerja sama dengan seseorang jika seseorang ingin melakukan ini dengan cara yang benar.

Bersulang

Setiap pengguna ikan dipersilakan untuk meningkatkan output rbenv init sehingga mendukung cangkang ikan dan mengirimkan permintaan tarik kepada kami.

Masalahnya adalah ikan bukan cangkang POSIX dan akan sulit untuk menerapkan rbenv init dengan cara yang benar untuk memberikan dukungan kepada ikan (saya berasumsi bahwa akan ada beberapa yang menginginkan dukungan untuk csh atau tcsh ). Saya pikir perlu dicatat bahwa jika seseorang menggunakan shell non-POSIX maka dia dapat menggunakan salah satu fungsi komunitas (dan memberikan tautan) atau dia harus menulisnya sendiri.

@hauleth Saya pikir Anda _mungkin_ salah. Berdasarkan komentar dari @emcmanus dan @sstephenson yang perlu kita lakukan adalah mendapatkan rbenv init untuk menghasilkan sintaks yang kompatibel dengan ikan sehingga dapat eval d oleh ikan. Shell yang kompatibel dengan POSIX (seperti bash untuk cara itu) hanya perlu diinstal dan tidak harus menjadi Shell pilihan Anda. Lihat komentar oleh @sstephenson di atas.

Saya akan mengirimkan email ke milis komunitas ikan dan memulai percakapan, akan mencoba mendapatkan bantuan dari orang-orang di sana.

Perintah rbenv shell memanggil rbenv sh-shell , yang mengembalikan string yang juga eval d. Kita bisa mengatasinya dan mengurai kode kembali dari panggilan itu alih-alih mengevaluasi string yang dikembalikan. Apakah itu baik-baik saja? Jika ya, saya bisa membuat sesuatu yang akan melakukan ini.

@bitboxer Cangkang ikan harus didukung penuh oleh rbenv master. Jika Anda menemukan bukan itu masalahnya, silakan buka edisi baru. Terima kasih!

Terima kasih "emcmanus"
Saya menggunakan ikan dan sedang mencari jawaban.

Seperti yang disebutkan "emcmanus", jika Anda menggunakan cangkang ikan maka yang berikut ini berhasil untuk saya.

DIUJI DI

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

Kemudian keluar dari ikan dan muat ulang ikan atau cukup log off dan kembali lagi. Jika tidak dapat menemukan file maka itu berarti Anda baru saja menginstal ikan dan tidak menjalankannya sekali pun. Jalankan saja ikan dan folder itu akan dibuat (file mungkin tidak).

Ini ikan ikan bukan ikan.
http://fishshell.com/

Terima kasih @emcmanus dan @sstephenson.

Rupanya sintaks ^ akan ditinggalkan di masa mendatang dan rusak di beberapa versi ( lihat masalah ini di sini ).

Oleh karena itu mungkin lebih baik menggunakan sintaks berikut sebagai gantinya: rbenv rehash >/dev/null >2&1 .

Oleh karena itu mungkin lebih baik untuk menggunakan sintaks berikut sebagai gantinya: rbenv rehash >/dev/null >2&1.

Ada kesalahan ketik di sana 2 dan > harus ditukar:

rbenv rehash >/dev/null 2>&1
Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

sandys picture sandys  ·  4Komentar

slayer picture slayer  ·  4Komentar

vennsoh picture vennsoh  ·  4Komentar

kaikuchn picture kaikuchn  ·  5Komentar

maayannaveh picture maayannaveh  ·  4Komentar