Dado que tengo un enlace a internet que no es lo que uno quisiera tener, cada vez que quiero instalar una gema, me demora varios minutos, lo cual es bastante molesto cuando uno está trabajando, por esto decidí poner mi propio gems mirror local, pasemos a la acción:
primero tenemos que editar el archivo de configuración para nuestro gem mirror:
emacs -nw ~/.gemmirrorrc y ponemos el siguiente contenido:
--- - to: /home/gemsmirror/rubygems.mirro from: http://gems.rubyforge.org
noten que yo voy a poner mi mirror en la carpeta /home/gemsmirror/rubygems.mirror pero uds la pueden poner en cualquiera que quieran.
luego de esto ejecutamos el comando
gem mirror
y después un largo pero largo rato (a mí esto me llevó como un mes con interrupciones, son como 16GB de gemas) se baja todas las gemas del mirror remoto. Una vez hecho y terminado esto tenemos que configurar nuestro servidor web para que publique el mirror, yo lo hice con apache, así sería:
emacs -nw /etc/apache2/sites-available/gemsmirror
y ponemos lo siguiente
ServerName gems.localhost ServerAdmin root@gems.localhost DocumentRoot /home/gemsmirror/rubygems.mirror/
Options Indexes FollowSymLinks MultiViews AllowOverride None
Options Indexes FollowSymLinks MultiViews AllowOverride None #AuthName "Dev Access" # AuthType Basic # AuthBasicProvider file # AuthUserFile /opt/coolstack/apache2/conf/htpasswd.users # Require user gems # user: gems # pass: password Order allow,deny allow from all
ErrorLog /var/log/apache2/error-gemsmirror.log LogLevel warn #CustomLog /var/log/apache2/access-gemsmirror.log combined ServerSignature Off
Lo puse sin autenticación por que yo solamente le doy un uso local pero si quieren publicarlo en internet sería razonable ponerle clave.
Ahora habilitamos el site de mirror
a2ensite gemsmirror
y agregamos el host:
emacs -nw /etc/hosts
ponemos lo siguiente:
.... ###################################################################### # Gemsmirror local 127.0.0.1 gems.localhost.....
Ahora recargamos el apache:
/etc/init.d/apache2 reload
y vamos al navegador y chequeamos que se vean el directorio de nuestro mirror en:
http://gems.localhost/
si todo está bien agregamos nuestro mirror local al gemrc:
emacs -nw ~/.gemrc
--- :sources: - http://gems.localhost #- http://gems.rubyforge.org/ #- http://gems.github.com #- http://gemcutter.org/ #- http://gems.github.com :bulk_threshold: 1000 :benchmark: false :update_sources: true :backtrace: false :verbose: true
fijensé que yo comenté todos los demás mirrors, de esta manera sólo busca las gemas en el mirror local y al instalar o buscar cualquier cosa la velocidad es increíble :), ahora solo resta pner un cron para que actualice el mirror diariamente (por la noche) y listo.
Eso es todo, enjoy !
Comentarios del archivo (2)
Gastón Ramos · 10 de septiembre de 2010
acá está la prueba:
time gem search --remote resource
*** REMOTE GEMS ***
active_resource_pagination (0.0.6)
active_resource_test_helper (0.1.0)
active_resource_throttle (1.0.1)
activeresource (2.3.8)
asset-resource (0.2.1)
cascading-resources (0.2.4)
classy_resources (0.3.1)
extended_inherited_resources (0.2.1)
inherited_resources (1.1.2)
inherited_resources_views (0.3.0)
kelredd-resourceful (0.8.3)
matid-resource_controller (0.7.2)
medpass_resource_api (0.1.6)
oauth-active-resource (0.4.6)
openlogic-resourceful (1.2.0)
party_resource (0.0.3)
Pr0d1r2-resource_controller (0.6.6)
resource_awareness (0.2.1)
resource_controller (0.6.6)
resource_controller_extensions (0.2.1)
resource_controller_views (0.6.6)
resource_defaults (1.0.0)
resource_full (0.7.9)
resource_mapper (0.0.1)
resource_proxy (0.1.0)
resourceful (1.0.1)
resourceize (0.1.2)
resourcelogic (0.12.6)
resourcer (0.4.0)
ruote-activeresource (2.0.0)
sinatra-resources (0.1.2)
sinatra_resource (0.4.21)
springnote_resources (0.6.6)
static_resource (1.0.1)
twilio_resource (0.1.0)
viva-resource_controller (0.6.5.3)
real 0m2.319s
user 0m2.116s
sys 0m0.168s
Genial :)
Ignacio Jimdo · 13 de octubre de 2010
Buenos dias,
Soy Ignacio Pacheco, estaría interesado en
realizar un intercambio con ustedes.
ignacio.jimdo@googlemail.com