Comments (7)
@eregon chruby
works fine with Rubinius, as far as I know, and it's extremely light and interoperates well with other env changers, so that's an option.
What would Rubinius change to accommodate what you're asking for? (I'm not entirely clear). Rubinius very long ago made a number of decisions to avoid conflicting with MRI. If you want to propose a PR, it would probably help evaluate what you're trying to achieve in concrete terms.
from rubinius.
@eregon the approach I'm going to take for Ruby switchers is to include code in Rubinius that sets them up correctly, instead of relying on the switchers to do it. Not sure when I'll get around to writing that code, though.
Since I intend Rubinius to be installed parallel to MRI without interfering with it, I won't support installing into dirs that would clash with the installed Ruby.
from rubinius.
Basically this choice means Ruby switchers need code specifically for Rubinius, otherwise it would be as simple as adding ruby_prefix/bin
to PATH
and be done.
They already have this code (mentioned in postmodern/chruby#410 (comment)), but I find it unfortunate complexity.
Also, it's clearly less convenient (need rbx -S
all the time) if people want to use Rubinius without a version switcher. Other Rubies would just need adding prefix/bin to PATH
.
Since I intend Rubinius to be installed parallel to MRI without interfering with it
I personally think this is a bad idea and very likely to go wrong if e.g., a Rubinius process shells out to say, rake
or rspec
as it will then pick MRI instead of Rubinius. But it's your choice, I won't argue more here.
from rubinius.
@eregon I'm not trying to argue with you about it. It's a simple constraint problem. I understand that you want personal convenience, but
- You're unwilling to use a Ruby switcher;
- You're unwilling to add to your PATH;
- You haven't offered any other solution for not clashing with MRI.
The constraint that I have to solve for is not clashing with MRI. This is a distribution issue for Rubinius because MRI is the incumbent, and I intend for Rubinius to be used far beyond Ruby, too. So I need a solution that meets this constraint.
I've offered to write specific code inside Rubinius just to accommodate the various Ruby switchers to make it as easy as possible to both get Rubinius (considering the vast array of packaging systems out there) and to use Rubinius without conflicting with MRI.
Perhaps defining a shell alias would help your personal case.
from rubinius.
FWIW, I'm willing to add to PATH, but only rubinius-prefix/bin
, not anything else. That's what the issue above is about: Rubinius needs two executable directories in PATH when all other Rubies only need one.
Re 3., I think just adding rubinius-prefix/bin
to PATH should be enough, and one could still have rbx
as a symlink globally available (as that one is never conflicting).
BTW in Rubinius 4.5, the erb, gem, irb, rake, rdoc, ri, ruby and testrb
all clash with MRI executables.
from rubinius.
@eregon ok, thanks for pointing out those clash, I'll try to get that addressed soon.
Am I understanding correctly that as long as all Rubinius executables (including rbx
) install to a single non-system directory that wouldn't clash with MRI, that would work for your case?
from rubinius.
Am I understanding correctly that as long as all Rubinius executables (including
rbx
) install to a single non-system directory that wouldn't clash with MRI, that would work for your case?
I'd want the opposite, a single directory with rbx
, gem
and all gem executables, and it should be prefix/bin
for compatibility with other implementations.
There could be some other directory with just rbx
that can then be used to avoid clashes if desired.
from rubinius.
Related Issues (20)
- Workaround for Rubinius on Travis HOT 4
- Rubinius fails to compile with openssl 1.1.1 HOT 4
- SSL cert on rubinius.com is expired HOT 1
- Rubinius hangs when setting a key of a `Concurrent::Map` HOT 3
- Rubinius fails to build on Ubuntu 18.04 in GitHub Actions HOT 6
- Rubinius 4.12 failed to build on OS X Catalina HOT 4
- Rubinius fails to build on macOS in GitHub Actions HOT 15
- rubyc vs rubinius-x HOT 1
- Rubinius 5.0 fails to compile with clang 9.0.1 on Fedora
- How can i get a machine code using rubinius?
- llvm-config tbd file system argument mac
- about the sourcecode HOT 1
- Error on installing rbx-2 with rvm on wsl ubuntu 20.04 HOT 1
- error: implicit declaration of function 'rb_sys_fail_str' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
- Improvements to C code that can improvement robustness
- undefined method `to_sexp' on an instance of String. (NoMethodError)
- HTTPS certificate expired for https://rubinius.com HOT 5
- (non-issue) rubinius cache file rubinius-codedb-cache.bz2 is not a tape archive
- Error 'gettid' is missing exception specification 'throw()' when compiling
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rubinius.