Comments (9)
BSD's filesystem hierarchy does diverge from Linux's. (http://www5.us.freebsd.org/doc/handbook/dirstructure.html)
Follow Darwin/BSD style, Linux style, or some hybrid? Dunno.
from chruby.
The way chruby works does require encapsulated Rubies. We're leaning towards /usr/local/rubies
, /opt/rubies
, ~/.rubies/
. /opt/
is really a dumping ground for non-standard packages (ex: SecondLife client); also sort of like /usr/local/games/
.
from chruby.
After further thought, I agree with @havenwood, requiring BSD/OSX users to run sudo mkdir /opt
would be obtrusive; also I doubt BSD admins would appreciate an /opt
in their environment. Putting rubies into /usr/local/
avoids conflicts with the package manager, plus isolating them into /usr/local/rubies/
(much like the ancient /usr/local/games/
) prevents any conflicts with other user installed software. Having the Rubies somewhere within /usr/local/
keeps them coupled with their source in /usr/local/src/
.
from chruby.
I doesn't matter much to me b/c I am doing things differently anyway, but using /usr/local/rubies
is technically against FHS and even BSD's filesystem hierarchy standard. I have my issues with these (archaic) standards, but even so I try to stay in their graces. It can get pretty ugly when everyone starts to do otherwise. I've already seen two other applications doing this kind of thing too, foreman
and heroku
. Not to mention ry, rbfu and rbenv do their own take on all this.
I've run into this problem before myself and unfortunately there doesn't appear to be any clear place for this kind of layout. I wonder what FHS people would say if asked about it. Maybe I'll try to do that. What I ended up doing in the past was using opt
under local. e.g. /usr/local/opt/rubies
and ~/.local/opt/rubies
. It's not technically supported either but its in line with the spirit of the FHS and it's symmetrical. Of course, on the downside it means even longer paths.
from chruby.
Hrmm, /usr/local/opt/rubies makes a lot of sense, but is it okay to put a dir like rubies/ that contains specific ruby implementations folders there? Does a rubies/ directory fit better in /usr/local/opt/ instead of /usr/local/?
from chruby.
BSD's hier(7) doesn't define any /opt, yet MacPorts uses /opt/local/
and Homebrew uses /usr/local/opt/
. Also reading over the definition of /opt/ we should probably change the instructions to install into /opt/$ruby/
. We can also include a sudo mkdir -p /opt
command for the OSX specific pre-install instructions. We can also update feature #29 to check for /opt/{ruby,rubinius,jruby}*
.
Next we should decide on a standard location for user installed Rubies. ~/.rubies/
, ~/.local/rubies/
, ~/.local/opt/$ruby/
?
from chruby.
+1 ~/.rubies/
from chruby.
Win, according to FHS, /opt/<provider>/<package>
is allowed, where <provider>
is one of these. Perhaps in the future we could register a common Ruby namespace with LANANA.
from chruby.
Updated the Wiki pages. Opinionated/constrained users can always change the --prefix
option to install elsewhere.
from chruby.
Related Issues (20)
- Add optional support for fullstaq-ruby-server-edition
- auto.fish changes to system ruby when no .ruby-version is present HOT 11
- Stub the test ruby instead of downloading a live-ruby HOT 2
- Add separate integration tests HOT 1
- Use precmd_functions instead of preexec_functions HOT 5
- Add safe local bin directory to PATH HOT 4
- Filter out rubies that lack a bin/ruby file
- chruby reports exit status 0 under Bash, but still throws a Ruby exception when switching to mruby HOT 1
- `setup.sh` script is broken on WSL2 Ubuntu 20.04 HOT 1
- Integrate with vscode HOT 2
- Won't able to remove chruby from MacOS Shell HOT 5
- Cannot install latest ruby through chruby on Mac M2 Apple Chip HOT 1
- "chruby: unknown Ruby: ruby-3.1.2" was shown everytime launch terminal HOT 4
- Wrong $PATH in Nova Editor process
- Is there a deterministic way of checking whether bundle exec is necessary? HOT 5
- Release 0.4.0
- Chruby puts a missing directory on the PATH HOT 2
- Rename `share/chruby/dev.sh` to `share/chruby/testing.sh` (or other) HOT 7
- chruby not available system-wide HOT 1
- Unable to install on macOS 12.6.7 HOT 2
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 chruby.