Forja del Conocimiento Libre REDIRIS-CICA: La nueva comunidad de desarrollo. Autores: Francisco Javier Carretero García Juan Carlos Rubio Pineda
de su obra). No comercial. No puede utilizar esta obra para fines comerciales. ●
Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. ●Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. ●Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor ●Nada en esta licencia menoscaba o restringe los derechos morales del autor. ●
●
Este resumen no es una licencia. Es simplemente una referencia práctica para entender el Texto Legal (la licencia completa) — ●
CICA
• Presentación de CICA − ¿Qué es CICA? − ¿Qué servicios proporciona? − ¿Qué ámbito tiene?
CICA
• ¿Qué es CICA?: Son las siglas de Centro Informático Científico de Andalucía
• ¿Cuáles son los órganos de gobierno de CICA? »
Consejería de Innovación, Ciencia y Empresa
»
Consejo Superior de Investigaciones Científicas (CSIC)
»
Universidad de Almería
»
Universidad de Cádiz
»
Universidad de Córdoba
»
Universidad de Granada
»
Universidad de Huelva
»
Universidad Internacional de Andalucía
»
Universidad de Jaén
»
Universidad de Málaga
»
Universidad Pablo de Olavide
»
Universidad de Sevilla
»
Director del CICA
»
Gerente del CICA
Representantes de estos organismos
• ¿Qué servicios presta CICA? − Red RICA / Gestión incidentes seguridad − Forja de Software libre
CICA
− ISI Web of Knowledge − Congresos (DISEVEN 2) − Correo electrónico SMTP / IMAP − PKI (Private Key Infraestructure) − FTP Anónimo + Mirror de Maven + Mirror Ubuntu + Mirror
Guadalinex + .... − Hosting web y housing de servidores − Portal de E-Ciencia (eciencia.cica.es) + Cluster + Grid + CLG − Sistema SICA (Sistema de Información Científico de And.) − etc........
RICA: Red de Informática Científica de Andalucía
RICA: Red de Informática Científica de Andalucía
• Tráfico de RICA
Forja La forja de RedIRIS-CICA. Usuarios y proyectos. Ediciones del CUSL y la forja de RedIRIS. Futuro del proyecto.
La forja de RedIRIS-CICA
Herramienta de desarrollo colaborativo de software. Colaboración y comunicación entre desarrolladores. Plataforma de difusión de información. Soporte a usuario. ¿Quién no conoce...
?
La forja de RedIRIS-CICA
¿Quién promovió su creación?
RedIRIS (http://www.rediris.es) es la red académica y de investigación nacional, patrocinada por el Plan Nacional de I+D+I y gestionada por la Entidad Pública Empresarial Red.es
La forja de RedIRIS-CICA
¿Quién promovió su creación?
RedIRIS delegó en el grupo de trabajo IRIS-Libre su desarrollo e implantación. IRIS-Libre (http://www.rediris.es/gt/iris-libre) se centra en el estudio y desarrollo del software libre en nuestro país.
La forja de RedIRIS-CICA
¿Quién promovió su creación?
Desde su puesta en marcha en 2006, la forja está alojada en el CPD del CICA. El CICA (http://www.cica.es) tiene un alto compromiso de continuidad con el proyecto, en cuanto a personal y a recursos técnicos.
La forja de RedIRIS-CICA
Todo esto funciona así:
La forja de RedIRIS-CICA
La forja de RedIRIS-CICA Plataforma Hardware HP Proliant BL25p Microprocesador AMD Opteron 256 con doble núcleo a 1'8 GHz 2 Gbytes Memoria RAM 2 Discos de 300 Gbytes en RAID 0+1 Conexión 1 Gbps
La forja de RedIRIS-CICA Plataforma Software Debian 4.0 Etch para arquitectura de 64bits. Gforge v.4.5.16 (Feb. 2007) Parche Seguridad: Grsecurity 2. Protección del sistema de ficheros. Sólo se ven los procesos que lanza el usuario.
La forja de RedIRIS-CICA Servicios que ofrece:
(versiones actualizadas a JULIO 2008)
Servidor web -> Apache2 Agente de correo -> Postfix Listas de correo -> Mailman Repositorio de versiones -> SVN Servidor de DNS -> Bind Servidor de BBDD -> PostgreSQL Antivirus -> Clamav
Usuarios y proyectos El perfil de los usuarios son los siguientes: Personal de la comunidad RedIRIS. Personal tutelado por miembros de la comunidad RedIRIS. Cualquier tipo de persona que desee colaborar aún no perteneciendo al ámbito académico.
Usuarios y proyectos Usuarios registrados:
Usuarios y proyectos Proyectos registrados:
CUSL y la forja
Por tercer año consecutivo la forja de RedIRIS-CICA colabora activamente con el Concurso Universitario de Software Libre. 250 participantes y 114 proyectos en las dos pasadas ediciones.
Futuro del proyecto Lugar de encuentro para IRIS-Libre: No es imprescindible registrarse para participar Complemento a la lista de distribución
[email protected] Información que encontraremos: Documentación relacionada. Wiki público, donde podemos encontrar: Listado Oficinas de Software Libre, y otra información de interés. Espacio para proponer ideas, sugerencias, etc.
Futuro del proyecto El software de Gforge Basado en las 2 capas clásicas. Hay multitud de sitios basados en él:
http://gforgesites.infoether.com Actualmente investigando Redmine Basado en el modelo MVC. Basado en Ruby on Rails. No es tan completo, más enfocado a los proyectos.
Futuro del proyecto
Es un proyecto que está EN ACTIVO donde: Se admiten sugerencias y opiniones. Vamos a seguir mejorando la funcionalidad y el aspecto. Lo que acontezca...
SUBVERSION
Subversion Índice: ¿Que es SVN (Subversion)? Características y mejoras respecto a CVS Trabajando con servidores Trabajando con SVN Conflictos y resolución
subversion
• ¿Qué es subversion? − Subversion es un sistema de control de versiones libre y de código fuente abierto − Maneja ficheros y directorios a través del tiempo.
Hay un árbol de ficheros en un repositorio central. • El repositorio recuerda todos los cambios hechos a sus ficheros y directorios. Ésto le permite recuperar versiones antiguas de sus datos, o examinar el historial de cambios de los mismos (funcionamiento análogo a una “máquina del tiempo”) •
− Subversion es un sistema general que puede ser usado para administrar cualquier conjunto de ficheros.
Para nosotros esos ficheros pueden ser código fuente. • Para otros, cualquier cosa •
Subversion
¿Que es SVN (Subversion)? (RESUMEN) Es un sistema de control de versiones. Diseñado para reemplazar a CVS. CVS no permitía considerar carpetas CVS no controlaba los cambios de manera incremental. Es software libre con licencia tipo BSD. Mantiene un repositorio centralizado. Es independiente del contenido. Admite ficheros binarios sin problemas.
Subversion
Características y mejoras respecto a CVS Las revisiones se hacen sobre todo el árbol de directorios. La creación de ramas y etiquetas es una operación mas eficiente que en CVS. Las modificaciones de archivos son operaciones atómicas. Se envían solo las diferencias entre direcciones, en CVS se enviaban los archivos completos. Esto era fatal para proyectos de grandes dimensiones. Utiliza sistema de copia-modifica-fusiona.
Subversion
Trabajando con servidores Los servidores se identifican por URL. El funcionamiento local o por red es idéntico Protocolos que soporta: file:// Acceso local. http:// Acceso via protocolo WebDAV. https:// Igual que http, pero con cifrado SSL svn:// Protocolo personalizado de servidores svnserve svn+ssh:// igual que svn pero a través de túnel ssh
Subversion
Trabajando con SVN Estructura típica de clienteservidor. Cada cliente trabaja con una “copia de trabajo”. Muchos clientes pueden conectarse al repositorio. SVN recuerda todos los cambios realizados en los ficheros.
Subversion
Trabajando con SVN Podemos trabajar con SVN en linea de comandos o a través de Clientes gráficos, que a su vez requieren la utilidad de consola, a la que hacen llamadas. Operaciones básicas: Check-out / Update, descarga información del repositorio. Import / Commit, envía información al repositorio. Revert / Update to, devuelve el proyecto a una versión anterior.
subversion
• Ciclo básico de trabajo: − Crear el repositorio •
svnadmin create /path_repositorio
− Subir proyecto al repos.: •
svn import /proyecto file:///path_repos -m "import inicial"
•
svn Import /proyecto https://servidor/svn/proyecto
− Actualizar su copia local •
svn update
− Hacer cambios svn add • svn delete • svn copy • svn move •
− Examinar sus cambios svn status • svn diff • svn revert •
− Fusionar los cambios de
otros en su copia de trabajo svn merge • svn resolved •
− Enviar sus cambios •
svn commit
Subversion
Trabajando con SVN Existen principalmente los Clientes de subversion: TortoiseSVN, cliente para Windows. RapidSVN, cliente para Linux. Subclipse, cliente integrado en Eclipse. SvnNetbeans integrado en Netbeans como módulo base.
Subversion
Trabajando con SVN (check-out / update) Svnadmin create sólo lo podemos hacer en servidores locales subversion. Normalmente, usaremos aplicaciones que funcionan como capas sobre svn. Svn import sube un proyecto a un repositorio creado. **NO** enlaza la carpeta con el repositorio. check-out solo se hace al incorporarnos al proyecto con svn al principio, y enlaza la carpeta con el repositorio. Svn Update descarga del repositorio la ultima versión existente. Con cada Update actualiza los archivos de la copia local
Subversion
Trabajando con SVN (commit) Commit envía los archivos de la copia de trabajo del usuario al repositorio. Con cada Commit se actualiza la versión Solo se envían los archivos que hayan cambiado desde el ultimo Commit. Consejo: antes de hacer un Commit hacer un Update (para detectar conflictos).
subversion
• Algo de práctica file:///PortableApps/ScreenshotCaptor/Screenshots/Screenshot%20-%2006_11_2008%20,%2018_34_26.png
subversion
• Algo de práctica file:///PortableApps/ScreenshotCaptor/Screenshots/Screenshot%20-%2006_11_2008%20,%2018_34_58.png
subversion
• Algo de práctica file:///PortableApps/ScreenshotCaptor/Screenshots/Screenshot%20-%2006_11_2008%20,%2018_40_19.png
subversion
• Problemas a evitar
− Dos usuarios descargan
una copia de trabajo. − Uno de los dos machaca el trabajo del otro
subversion
− Solución subversion:
copiar-modificar-mezclar (copy-modify-merge) − ¿Qué ocurre si los cambios de Harry se solapan con los de Sally? Esta situación se conoce como conflicto • En la práctica, funciona muy bien que en estos casos, los programadores se comuniquen y se suba el fichero con los cambios acordados. • Luego, se resuelve el conflicto. •
subversion
Conflictos y resolución Puede que dos personas editen el mismo archivo al mismo tiempo (CONFLICTO). Subversion detecta conflictos en los archivos al hacer commit. La copia de trabajo detecta cambios en los archivos al hacer update. La aparición y resolución de conflictos depende de la comunicación entre personas.
subversion
• Conflictos; detección:
− U: Cambios locales, actualizados del repositorio − G Merged: hubo cambios, pero no solapes. − C Conflict: Hubo cambios en las mismas zonas por uno o más usuarios en los mismos puntos que yo modifiqué.
• Modificamos, solucionamos el conflicto: − Svn resolved fichero.jsp − Svn commit -m “Tras hablar con Sally, se modifica XXX”
subversion
Conflictos y resolución: RESUMEN Pasos para resolver un conflicto: Hacer Update (si no lo hemos hecho ya). Editar el conflicto en la copia de trabajo. Marcar el conflicto como resuelto Hacer Commit. Todos los conflictos deben resolverse en la copia de trabajo y después hacer commit.
subversion
Conflictos y resolución (TortoiseSVN)
Lineas en conflicto Opciones para resolver el conflicto
subversion
• Subversion: metodologías de trabajo − El esquema ideal de trabajo es este conjunto de directorios: /project/trunk: “tronco”, grueso de nuestra aplicación que será llevada a producción cuando se finalicen los cambios oportunos • /project/branches: ramas, subproyectos “derivados” del tronco principal. Con posterioridad, pueden realizarse fusionados desde esta zona al tronco, si es que se considera necesario. •
−
•
Se crean con svn copy
/project/tags: Las etiquetas no son más que instantáneas del proyecto en un instante dado, que se identifican con un nombre clarificador. −
−
$ svn copy https://forja.rediris.es/svn/miproyecto/trunk \ https://forja.rediris.es/svn/miproyecto/tags/release-1.0 \ -m "Etiquetando la versión 1.0 de miproyecto." Committed revision 351.
PREPARANDO EL ENTORNO • Partimos de: − Instalación de Netbeans 6.1 − Instalación de servidor de aplicaciones o contenedor de servlets − Necesitaremos cliente de subversión
Preparación del entorno
• Descargamos cliente de subversion
Preparación del entorno
• Iniciamos netbeans • Pulsamos Versioning -> Subversion -> Checkout • Especificamos el path del cliente de subversion, según lo hayamos instalado. • Una vez hecho, aceptamos y debemos reiniciar netbeans para que acepte los cambios.
Preparación del entorno
• Ahora elegimos de nuevo un checkout:
subversion
• Ahora especificamos la rama de proyecto para traernos.
subversion
• Finalmente, elegimos un path para la descarga
subversion
• Terminado el proceso, netbeans nos avisa de que podemos abrir el proyecto resultante.