Para despedir la semana no hay mejor manera que dando buenas noticias, y hoy les traigo una que a todos los desarrolladores de la universidad les va a venir muy bien.
Se trata de nuevos servicios de dependencias de paquetes para las distintas tecnologías que utilizamos para el desarrollo por acá.
Lo que existe hoy:
Hoy existen un grupo de servicios, algunos no son tan eficientes como se quisiera, pero se están probando variantes para resolver esos problemas.
- Dependencias para Java.
- Dependencias para PHP teniendo que actualizar manualmente los paquetes que se necesitan, los cuáles se envían a la comunidad PHP o a la cuenta de producción.
- Dependencias para Python.
- Dependencias de NodeJS, dando problemas con paquetes que no encuentra y están en el registry.
Nuevos servicios:
Dentro de los nuevos servicios se encuentra una versión mejorada del servicio para dependencias NodeJS utilizando otra tecnología.
- Dependencias para NodeJS, arreglado y mejorado.
- Dependencias para Rubygems.
- Dependencias para .NET.
Configurar NPM para utilizar servicio desde la producción
Hay dos métodos para configurar el NPM, lo podemos hacer desde una consola ejecutando el comando:
npm config set registry http://npm.prod.uci.cu/nexus/content/groups/npm/
O a través del fichero .npmrc que se encuentra en el directorio personal.
vi ~/.npmrc
y añadimos la línea:
registry= http://npm.prod.uci.cu/nexus/content/groups/npm/
o simplemente con el comando:
echo registry= http://npm.prod.uci.cu/nexus/content/groups/npm/ > ~/.npmrc
Luego de esto instalamos bower
npm install -g bower
y lo configuramos para que utilice un repositorio local, que es otra dirección hasta que el equipo de bower migre completamente para npm. El bower se puede configurar de varias formas y niveles, jerarquicamente el reconoce la configuración, voy a explicarlo en ese orden:
El primero que reconoce es a través de la opción –config en el CLI:
bower --config http://npm.prod.uci.cu:8083/
La otra es a través de variables de entornos del sistema, no se especifica mucho en la documentación acerca del nombre que deben tener las variables.
La tercera vía es a través de un archivo .bowerrc en el directorio donde actualmente estamos, ahí debemos especificar la url usando:
{"registry":"http://npm.prod.uci.cu:8083"}
La cuarta vía y la quinta son mediante el anterior fichero, pero su ubicación puede ser en el directorio personal o el directorio raíz del sistema.
Configurar Ruby para utilizar servicio desde la producción
Cuando utilizamos Ruby para manipular las gemas instaladas y por instalar usamos el comando gem, pero también podemos utilizar bundle. Configuramos el source que usa el comando gem:
gem sources --add http://rubygems.prod.uci.cu/nexus/content/groups/Ruby/
Eliminamos el origen principal que trae por defecto que es https://rubygems.org:
gem sources --remove https://rubygems.org/
Actualizamos la cache:
gem sources -c
Ahora instalamos bundle:
gem install bundle
Luego lo configuramos:
bundle config mirror https://rubygems.org/ http://rubygems.prod.uci.cu/nexus/content/groups/Ruby/
Y estamos listo para usar las dependencias de Ruby que ofrece la producción.
Configurar Nuget para utilizar servicio desde la producción
Aquí les debo una buena explicación, pero no cuento con nada donde pueda probarlo, así que simplemente me limitaré a decirle que deben agregar la URL http://nuget.prod.uci.cu/nexus/service/local/nuget/nuget. Si cualquiera quiere hacerme llegar capturas de como se configura las publicaré.
En el VS van hasta Tools > Options > Nuget Package Manager->Package Source y ahí adicionan una y ponen la dirección que está arriba.
Espero que todos estos servicios sirvan para volver nuestro entorno de desarrollo un poco más eficiente.
Comentarios ( 42 )
Nice!
QUE BIEN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Que buena noticia @Osiel. ¿Hay alguna opción disponible para que el propio repo gestione las dependencias hacia binarios que se encuentran en otro lugar?
Ejemplo, al tratar de instalar uncss (npm install -g uncss) el paquete depende de phantomjs que se encuentra en bitbucket:
https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2
+ꝏ
El NuGet no pincha 🙁
https://docs.nuget.org/create/hosting-your-own-nuget-feeds
@Luis
Cambié la URL, la anterior no estaba correcta. Esta funciona correctamente, fue probada.
Genial Osiel, gracias por todo lo que hacen para ayudarnos a los desarrolladores con nuestros meguitas, por cierto, como recomendación revisar que el repo de maven tiene dependencias de internet haber si se las puedes poner local o deshabilitarselas.
Saludos
Hola, no hay forma de copiar estas dependencias para los externos de la UCI?, digamos el npm, el composer y el nuget?, llevar un disco duro y copiarlo?, porque eso esta genial, pero los externos a la uci tambien queremos tener esto, saludos a todos y happy coding.
hubiera sido mejor que los sitios en internet no consumieran cuenta. Ahora empiezan las segunda y tercera parte: los paquetes perdidos y los servicios caidos.
@Jorge Soria
tienes toda la razón del mundo
@Unkn0wn_S0ldi3r
Lamentablemente solo se guarda la caché, no hay ningún repositorio completo, excepto el de PHP que todo lo que se solicita está descargado, los demás funcionan usando una caché.
@Jorge Soria
@ned
Trataré de que esto no pase, para los que han usado maven, pypi y composer saben que es poco el tiempo que se pasa apagado, casi siempre relacionado con problemas de mantenimiento a los servicios.
Creo que liberar los sitios congestionaría más el tráfico de salida que hoy tenemos y no nos permitiría navegar en otros sitios, pero bueno este es mi criterio personal.
Creo que la noticia llega 1 año y medio tarde.
@Jorge Soria
@ned
Me sumo a lo que plantea @OSIEL, la idea de estos servicios internos es optimizar el uso del ancho de banda de la universidad, porque aunque recientemente nos lo aumentaron tampoco es que sea tan grande.
Excelente, pero… cualquiera q sepa cómo configurar Nuget, uff, me contacta si, jcarballo@estudiantes.uci.cu.
en los servicios de npm no encontre el gulp-conect, alguien sabe donde puedo enconctrarlo?????. gracias
Muchachos alguien sabe como puedo configurar mi eclipse para usar estos repos. Gracias!!.
Para los mortales del medio (fuera de la UCI y dentro de Cuba) hay alguna luz?
El año pasado cuando estaba haciendo la tesis maven estaba en uci.cu y le pedias un paquete que no estaba en el repo lo descargaba desde internet, ahora que esta en .prod no los descarga, de alguna manera podremos contar nuevamente con esa posibilidad?
@Froilan
Si los descarga cuando están en un repositorio que está agregado, es el mismo servidor y el mismo programa, solo se le cambió en nombre en el dns. Si hay un paquete que no está en ninguno de los repositorios publicados, envía al correo de producción la URL y lo publicaremos.
Excelente noticia, ya he estado probando los repos de Nuget y funcionan al 100%, gracias a la DGP y a todos los implicados en hacer este sueño realidad 🙂
@OSIEL
Gracias por la aclaración.
El bower se está quejando de que no encuetra github, supongo que el problema es cuando el repo usa protocolo git no puede pasar por el proxy, hay que modificar el código y forzarlo a que use https.
Creo que se soluciona modificando el valor de la variable repo que está en (o cerca de) la línea 40 del archivo repo-caches/git-repo-cache.js
sustituyendo git: por https:
Hola @OSIEL, en el caso del repo maven, ¿existe algún procedimiento para subir a estos repos artefactos creados acá en la universidad? Digamos que tengo un proyecto maven que puede ser reutilizado por otros proyectos, ¿cómo haría para ponerlo a disposición de todos?
Saludos cordiales.
@leiserfg
Para cambiar el protocolo git por https no hay que entrar al codigo fuente, solo configurar git para que use https por defecto: https://rice.uci.cu/?p=3552
Alguien sabe como puedo hacer para descargar todos los paquetes que estan en http://nuget.prod.uci.cu/nexus/content/groups/Nuget/ y tener un repo offline portable.
Muchas gracias a todos.
La configuración del mirror para el bundle de ruby tiene un problema debe ser así:
bundle config mirror.https://rubygems.org/ http://rubygems.prod.uci.cu/nexus/content/groups/Ruby/
@Lynx
Puse en el VS la configuracion de Nuget y o me funciona, que has hecho tu ?. Estoy usando VS 2015
ya lo resolví, es la misma dirección , era una antigua configuración que tenia que no me dejaba setear la tuya thanks
@Puchi
Al buscar en VS2015 ve los paquetes pero a la hora de instalar alguno da ‘Unable to find version Y of package X’. Alguien sabe cómo solucionarlo?
@Lynx
Alguien te ha respondido por correo??? me puedes contactar y decirme cómo?
Todo el que esté en la UCI y le interese cómo usar nuget en VS2015, pues acá les dejo: https://dprog.facultad6.uci.cu/?p=4968
Alguien sabe si http://npm.prod.uci.cu:8083/ ya no es la dirección para bower????
Hola saludos como podria hacer para obtenr los paquetes de nuget, y tenerlos local en la PC de la casa para posterio uso? Alguien que sepa como obtenerlos? Saludos
@Wilson
Si ya resolviste el problema por favor me lo comunicas.
No puedo agregar http://rubygems.prod.uci.cu/nexus/content/repositories/Ruby/ a las sources de gem. Me da el siguiente error:
Error fetching http://rubygems.prod.uci.cu/nexus/content/groups/Ruby/:
server did not return a valid file (http://rubygems.prod.uci.cu/nexus/content/groups/Ruby/specs.4.8.gz)
Alguien ha logrado hacerlo. Estoy utilizando Windows 10, gem 2.4.5.1.
No puedo entrar a http://rubygems.prod.uci.cu/nexus/content/groups/Ruby/
Alguien sabe algo al respecto..
el dns .prod no esta funcionando…
11 días después, el dns todavía no funciona?
@VSRazor me pasa lo mismo que a ti.
Al buscar en VS2015 ve los paquetes pero a la hora de instalar alguno da ‘Unable to find version Y of package X’. Alguien sabe cómo solucionarlo? Gracias
Buenas noches, http://npm.prod.uci.cu/nexus/content/groups/npm/ esta direccion esta funcionando?? es que no puedo instalar el bower
saludos..