2010-08-13 10 views
30

Perché Mac OS X è dotato di rubini e rubini su guide preinstallate? Il sistema operativo lo usa davvero? Posso aggiornare tranquillamente le mie versioni Ruby, Rails o Gem senza sputare il manichino?Perché Mac OS X è dotato di ruby ​​/ rails?

+3

Inoltre viene installato con python. – Toad

+3

... e tcl. E perl. –

+0

È possibile aggiornare queste cose, ma, poiché non ci sono test di regressione o integrazione, non si ha modo di sapere se si è rovinato qualcosa su cui si basa il sistema. Prova il mio comando elencato nel commento sotto la tua risposta selezionata e vedrai che Apple si affida alle lingue; Non sono lì solo per il nostro piacere. @Ned Deily raccomanda di stare attento e suggerisce metodi alternativi per affrontarlo. Raccomanderò anche l'uso di [RVM] (http://rvm.beginrescueend.com/) per il lavoro di routine. –

risposta

52

Come altri hanno notato, OS X viene fornito con vari pacchetti open source preinstallati. Anche se questo può essere un vantaggio, i pacchetti vengono spesso aggiornati solo alle nuove versioni come parte di una versione principale di OS X (come da 10.5 a 10.6). Inoltre, alcuni pacchetti sono utilizzati altrove da altre parti di OS X e non esiste un modo semplice per sapere quale. In generale, Apple assume (e anche tu dovresti) che tutto sotto /System/Library e /usr/, ad eccezione di /usr/local/, fa parte di OS X ed è gestito da Apple. Non si dovrebbe tentare di rimuovere o modificare i file in quelle gerarchie. Ciò include quasi tutti i pacchetti open source, incluso Ruby.

Invece, per aggiornamento un pacchetto esistente, il giusto approccio è quello di installare una nuova versione in una posizione separata (per esempio, /usr/local/) e richiamare la nuova versione da un riferimento percorso assoluto (/usr/local/bin/ruby) o manipolare il guscio PATH variabile di ambiente, se necessario. /usr/local/ viene spesso utilizzato se si installa direttamente dalla sorgente. Molte persone preferiscono utilizzare uno dei distributori di pacchetti open source di terze parti, come MacPorts, Fink o Homebrew, ognuno dei quali ha il proprio gestore di pacchetti e posizioni di installazione.

+2

+1, e questa è la risposta corretta. –

7

No, il sistema operativo non utilizza, è solo che Apple vuole rendere i suoi prodotti un po 'più interessanti per gli sviluppatori. (esiste anche Python preinstallato insieme ad altri pacchetti).

È possibile aggiornare in modo sicuro Ruby, Rails, Gems ma la versione predefinita di Ruby è un po 'obsoleta. Controlla RVM in modo da poter installare diversi Rubini nel tuo sistema

+9

Come fai a sapere che Apple non usa Ruby, Python, Perl o TCL? Secondo i miei controlli c'è l'uso di sistema di tutte e quattro le lingue: prova 'locate * .py | grep ^/usr | grep -v/System' con le loro estensioni standard. –

1

Considerare Rubystack se si desidera giocare con ambienti più aggiornati senza interferire con le versioni esistenti. Disclaimer, sono uno degli sviluppatori di RubyStack. È liberamente disponibile con la licenza Apache 2.0 open source.

+1

È necessario comunicare la propria affiliazione con la società ogni volta che si menziona il prodotto. Altrimenti, è considerato spam qui. –

+0

Ho fatto così nella maggior parte delle altre domande ed è chiaramente specificato anche nel mio profilo. BitNami non è una società e non guadagna nulla con gli stack (sebbene sia sponsorizzato da uno e forniamo supporto e servizi ad altre società open source come Sugar, Alfresco, ecc.). In ogni caso, ho aggiornato la mia risposta. Inoltre, credo che non ci fosse bisogno di downvotare la risposta in quanto è direttamente correlata all'argomento. –

+1

Non ho fatto downvot. La bandiera dello spam funziona così. Andrà via dopo un po 'ora che hai aggiornato la tua risposta. Nota comunque che dovresti davvero specificare la tua affiliazione in ciascuna delle tue risposte, non è sufficiente averla sul tuo profilo, quindi dovresti controllare che tutte le tue risposte che raccomandano i tuoi prodotti includano un disclaimer –