De ce Mac OS X vine cu ruby/rails? (Programare, Ruby Pe Șine, Ruby, Macos, Rubygems)

Adam Harte a intrebat.

De ce Mac OS X vine cu ruby și ruby on rails preinstalate? Oare sistemul de operare îl folosește de fapt? Pot să-mi actualizez versiunile Ruby, Rails sau Gem în siguranță fără ca ceva să scuipe manechinul?

Comentarii

  • De asemenea, vine cu python instalat. –  > Por Toad.
  • Puteți actualiza aceste lucruri, dar, deoarece nu există teste de regresie sau de integrare, nu aveți cum să știți dacă ați stricat ceva pe care se bazează sistemul. Încercați comanda mea listată în comentariul de sub răspunsul selectat și veți vedea că Apple se bazează pe limbaje; acestea nu sunt acolo doar pentru plăcerea noastră. @Ned Deily recomandă să fiți atenți și sugerează modalități alternative de abordare. De asemenea, vă recomand să utilizați RVM pentru această sarcină. –  > Por Omul de Tinichea.
3 răspunsuri
Ned Deily

După cum au observat și alții, OS X vine cu diverse pachete open source preinstalate. Deși acest lucru poate fi o comoditate plăcută, pachetele sunt adesea actualizate la versiuni noi doar ca parte a unei versiuni majore a OS X (cum ar fi 10.5 la 10.6). De asemenea, unele pachete sunt utilizate în altă parte de alte părți ale OS X și nu există o modalitate ușoară de a ști care sunt acestea. În general, Apple presupune (și ar trebui să faceți și dumneavoastră la fel) că tot ceea ce se află sub /System/Library și /usr/, cu excepția /usr/local/, face parte din OS X și este administrat de Apple. Nu ar trebui să încercați să eliminați sau să modificați fișierele din aceste ierarhii. Acest lucru include aproape toate pachetele open source, inclusiv Ruby.

În schimb, pentru actualizați un pachet existent, abordarea corectă este să instalați o nouă versiune într-o locație separată (de exemplu, /usr/local/) și să se apeleze noua versiune printr-o referință de cale absolută (/usr/local/bin/ruby) sau manipulând shell-ul PATH variabila de mediu shell, dacă este necesar. /usr/local/ este adesea utilizat în cazul în care se instalează direct din sursă. Multe persoane preferă să utilizeze unul dintre distribuitorii de pachete open source de la terțe părți, cum ar fi MacPorts, Finksau Homebrew, fiecare dintre acestea având propriul manager de pachete și propriile locații de instalare.

PanosJee

Nu, sistemul de operare nu folosește, doar că Apple vrea să facă produsele ei un pic mai atractive pentru dezvoltatori. (există, de asemenea, Python preinstalat împreună cu alte câteva pachete).

Puteți să vă actualizați în siguranță Ruby, Rails, Gems, dar versiunea implicită Ruby este un pic depășită. Verificați RVM, astfel încât să puteți instala diferite Rubies în sistemul dvs.

Comentarii

  • De unde știți că Apple nu folosește Ruby, Python, Perl sau TCL? Conform verificărilor mele, există o utilizare în sistem a tuturor celor patru limbaje: Încercați locate *.py | grep ^/usr | grep -v /System cu extensiile lor standard. –  > Por Omul de tinichea.
Daniel Lopez

Luați în considerare Rubystack dacă doriți să vă jucați cu medii mai actualizate fără a interfera cu versiunile existente. Disclaimer, sunt unul dintre dezvoltatorii RubyStack. Acesta este disponibil gratuit sub licența open source Apache 2.0.

Comentarii

  • Ar trebui să vă dezvăluiți afilierea cu compania de fiecare dată când menționați produsul. În caz contrar, este considerat spam aici. –  > Por Dr. belisarius.
  • Am făcut acest lucru în majoritatea celorlalte întrebări și este clar specificat și în profilul meu. BitNami nu este o companie și nu câștigăm niciun ban cu stivele (deși este sponsorizat de una și oferim suport și servicii pentru alte câteva companii open source, cum ar fi Sugar, Alfresco etc.). În orice caz, am actualizat acum răspunsul meu. De asemenea, cred că nu era nevoie să votez în minus răspunsul, deoarece este direct legat de subiect. –  > Por Daniel Lopez.
  • Nu am dat downvote. Stegulețul de spam funcționează așa. Va dispărea după un timp, acum că v-ați actualizat răspunsul. Rețineți totuși că trebuie neapărat să specificați afilierea dvs. în fiecare dintre răspunsurile dvs., nu este suficient să o aveți pe profilul dvs., așa că ar trebui să verificați dacă toate răspunsurile dvs. în care recomandați produsele dvs. includ un disclaimer –  > Por Dr. belisarius.