Gastón Ramos

Blog personal

← Volver al blog

Gems mirror local

Recuperado del archivo original de WordPress.

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 !

También puede interesarte

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

Los comentarios históricos se conservan como archivo. Para conversar hoy, podés escribirme.