3 ms·
> It turns out that the update has actually overwritten the Ruby binary she’s compiled with a different version, and her software no longer works. > > This cou
by there 18y ago
> It turns out that the update has actually overwritten the Ruby binary she’s compiled with a different version, and her software no longer works.
>
> This could have been avoided if she’d installed the Ruby binary in a safer place, and set her shell and her software to use that binary.
and then every time you try to work with other ruby-related software, it either picks up the new version in /usr/local or the old version in /usr or some random version in /opt/local that macports installed, and you may not be sure which. this problem gets much worse when you are dealing with shared libraries like graphics libraries. the autoconf junk may help by allowing you to specify something like "./configure --with-jpeg=/usr/local ..." but sometimes you have to override LDFLAGS and you're suddenly wasting so much time just trying to get all this stuff to work.
3rd party port/package systems for mac os just made the problem worse by forcing you to install duplicate copies of everything that comes with mac os because of package dependencies. i think a better solution would be to only have one version of the software on the system at a time. if macports wants to upgrade your ruby, make it delete everything in /usr/lib/ruby or setup symlinks to the new version in /usr/local/lib/ruby.
- ankhmoop 18y agoOn one hand, you decry mismatched dependencies between independent versions of the software. On the other, you decry 3rd party port/package systems because they use their own entirely independent dependency hierarchy for the purpose of wholly avoiding incompatibility issues. Then you recommend that 3rd party port/package systems actually delete operating system managed components and replace them with their own. This position is, at best, inconsistent.
- there 18y ago> This position is, at best, inconsistent. and that is why i gave up trying to use mac os as my desktop. there was no proper way to install 3rd party software that dealt with conflicting versions. if macports or some other package solution could get it right, then articles like this one would be irrelevant and users could just do something simple like "<some utility> install ruby", get a new ruby installed and have the old built-in version disabled. until something like that happens, you are going to run into issues where some software picks up one version and something else picks up another. relying on a properly set $PATH is not a solution.
- ankhmoop 18y agoRelying on a properly set $PATH is exactly the solution. Any other approach will directly interfere with other operating system components and lead to exactly the bizarre failure cases you are reporting.
- randallsquared 18y ago> and you're suddenly wasting so much time just trying to get all this stuff to work. Yes,I've lost hundreds of hours to this kind of thing.