Mostrando entradas con la etiqueta repositorio. Mostrar todas las entradas
Mostrando entradas con la etiqueta repositorio. Mostrar todas las entradas

Configuración de un entorno de trabajo con GIT

Cuando emprendemos el desarrollo de un sistema o de un sitio web, en el que participan dos o más personas, tenemos que organizarnos muy bien para evitar destruir con nuestros cambios el trabajo previo de los compañeros de proyecto. A pesar del nivel de sincronía y organización que se pueda alcanzar, frecuentemente surgen conflictos o dudas al trabajar en aspectos del proyecto muy cercanos entre si, por ejemplo cuando un desarrollador requiere modificar un archivo de código sobre el que viene trabajando un colega. La situación se complica cuando los involucrados no comparten un mismo entorno físico, por lo que el chat, correo o teléfono no mejoran el asunto. Es por ello que en estas circunstancias hay que recurrir a lo que se denomina un control de versiones, de los que existen varios, pero uno destaca especialmente por su origen: el GIT.

¿Qué es el GIT?

Git (pronunciado "guit") es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux. (Wikipedia, 2017)

Manos a la obra

A continuación describiremos los pasos básicos para la configuración de un entorno de desarrollo conformado por al menos dos desarrolladores regido por el sistema de control de versiones GIT. Sin embargo esta metodología también sera aplicable para un programador solitario, ya que un control de versiones entre sus bondades ofrece un historial de versiones, por lo que se puede regresar a estados previos del desarrollo, en el caso de que los cambios efectuados no nos satisfagan.

En el servidor

Instalamos git. En el caso de Debian o Ubuntu

TERMINAL
  1. apt-get install git

En el caso de Fedora

TERMINAL
  1. yum install git-core

Crearemos el usuario git para que el repositorio principal se ubique en su directorio de trabajo, sin embargo se puede utilizar un usuario existente o crear uno distinto.

TERMINAL
  1. useradd git
  2. passwd git

Ahora creamos y configuramos el directorio donde se alojara el repositorio

TERMINAL
  1. cd ~
  2. mkdir repositorio.git
  3. cd repositorio.git
  4. git init --bare --shared
  5. mv hooks/post-update.sample hooks/post-update

Podemos usar el comportamiento por defecto del servicio git al momento de procesar la información proveniente de los clientes, o cambiarla por un esquema básico que se detalla a continuación:

Editamos el archivo hooks/post-update

TERMINAL
  1. nano hooks/post-update

Y realizamos el siguiente cambio:

ARCHIVO hooks/post-update
  1. # El parámetro $1 del script es el nombre del branch actualizado
  2. # Comparamos con master para actualizar el entorno de producción
  3. # y con test para actualizar el entorno de pruebas
  4. case " $1 " in
  5. *'refs/heads/master'*)
  6. echo "Pulling producción"
  7. unset GIT_DIR
  8. cd /var/www/repositorio || exit
  9. git pull origin master
  10. ;;
  11. esac
  12. case " $1 " in
  13. *'refs/heads/test'*)
  14. echo "Pulling pre-producción"
  15. unset GIT_DIR
  16. cd /var/www/repositorio-test || exit
  17. git pull origin test
  18. ;;
  19. esac
  20. exec git-update-server-info

En el cliente del desarrollador líder

Procedemos a configurar el repositorio del desarrollador líder, aquel que tiene la última palabra cuando surge un conflicto con los cambios que el equipo de desarrollo actualiza sobre el repositorio principal

TERMINAL
  1. apt-get install git
  2. cd ~
  3. mkdir repositorio.git
  4. cd repositorio.git
  5. git init
  6. git remote add origin usuario@servidor-ip:/home/usuario/repositorio.git

Ahora creamos o copiamos un archivo cualquiera en esta carpeta, por ejemplo:

TERMINAL
  1. touch prueba

Procedemos a hacer la sincronización inicial

TERMINAL
  1. git add *
  2. git commit -m “Subida inicial”
  3. git push origin master

En el cliente de los otros desarrolladores

Esta sera la configuración tipo a seguir por el resto del equipo de desarrollo

TERMINAL
  1. apt-get install git
  2. cd ~
  3. mkdir repositorio.git
  4. cd repositorio.git
  5. git init
  6. git remote add origin usuario@servidor-ip:/home/usuario/repositorio.git
  7. git pull origin master

En el servidor Web

Hasta ahora hemos configurado lo relativo a los repositorios, los pasos que se listan a continuación están enfocados hacia la construcción de un entorno adecuado para el desarrollo de un proyecto Web. El objetivo es que al momento de actualizar cambios hacia el repositorio central, estos también se reflejen en el servidor Web del ambiente de desarrollo de nuestro proyecto.

TERMINAL
  1. sudo usermod -G git www-data
  2. cd /var/www
  3. sudo mkdir repositorio
  4. sudo chown -R git:git repositorio
  5. sudo chmod 775 repositorio
  6. cd repositorio
  7. git init

En caso de tener un repositorio de pruebas, dentro del ambiente de desarrollo, se siguen estos pasos adicionales:

TERMINAL
  1. sudo usermod -G git www-data
  2. cd /var/www
  3. sudo mkdir repositorio-test
  4. sudo chown -R git:git repositorio-test
  5. sudo chmod 775 repositorio-test
  6. cd repositorio-test
  7. git init


REFERENCIA

Wikipedia. (18 de abril de 2017). Git. Recuperado de: https://es.wikipedia.org/wiki/Git



Repositorio: Medibuntu


Medibuntu (Multimedia, Entertainment & Distractions in Ubuntu, es decir, Multimedia, entretenimiento y distracciones en Ubuntu) fue un repositorio de paquetes de software que no pueden ser incluidos en la distribución Ubuntu por motivos como problemas legales de copyright, licenciamiento o restricciones de patentes. (Wikipedia, 2010)

Para configurar los repositorios de medibuntu, debemos ejecutar en el terminal:

TERMINAL
  1. sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update

Aplicaciones recomendadas: libdvdcss2, w32codecs, non-free-codecs, ffmpeg



REFERENCIA

Wikipedia. (3 de julio de 2010). Medibuntu. Recuperado de: https://es.wikipedia.org/wiki/Medibuntu



Repositorio: VirtualBox en Ubuntu


Oracle VM VirtualBox es un software de virtualización para arquitecturas x86/amd64, creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual. (Wikipedia, 2010)

Para configurar el repositorio de virtualbox en Ubuntu, debemos seguir las siguientes instrucciones, considerando sustituir la linea que corresponda a la distribución de Ubuntu en uso

Editamos el archivo /etc/apt/sources.list

TERMINAL
  1. nano /etc/apt/sources.list

Realizamos la siguiente modificación:

ARCHIVO /etc/apt/sources.list
  1. deb http://download.virtualbox.org/virtualbox/debian maverick contrib
  2. deb http://download.virtualbox.org/virtualbox/debian lucid contrib
  3. deb http://download.virtualbox.org/virtualbox/debian karmic contrib

Actualizamos los repositorios y configuramos la llave

TERMINAL
  1. aptitude update
  2. wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -


REFERENCIA

Wikipedia. (3 de julio de 2010). VirtualBox. Recuperado de: https://es.wikipedia.org/wiki/VirtualBox



Repositorio: Mediainfo en Ubuntu


MediaInfo provee información técnica y de la etiqueta sobre un archivo video o audio. Éste es un software libre (gratuito y de libre acceso al código fuente: BSD o licencia) (Mediaarea.net, 2010)

Para configurar el repositorio de mediainfo en Ubuntu, debes ejecutar los siguientes comandos en el terminal:

TERMINAL
  1. sudo add-apt-repository ppa:shiki/mediainfo
  2. aptitude update


REFERENCIA

Mediaarea.net. (3 de julio de 2010). ¿Qué es MediaInfo? Recuperado de: https://mediaarea.net/es/MediaInfo



Repositorio: HandBrake en Ubuntu


HandBrake es un programa libre y de código abierto para la transcodificación multihilo de archivos de audio y video, para OS X, GNU/Linux y Windows.1 Fue desarrollada originalmente por Eric Petit en el 2003 para ripear una película de un DVD a un dispositivo de almacenamiento de datos de forma más sencilla. Desde entonces, el programa ha experimentado muchos cambios y revisiones. (Wikipedia, 2010)

Para configurar el repositorio de Handbrake en Ubuntu, se deben ejecutar los siguientes comandos en el terminal:

Editamos el archivo /etc/apt/sources.list

TERMINAL
  1. nano /etc/apt/sources.list

Realizamos la siguiente modificación:

ARCHIVO /etc/apt/sources.list
  1. deb http://ppa.launchpad.net/stebbins/handbrake-snapshots/ubuntu lucid main

Actualizamos los repositorios y configuramos la llave

TERMINAL
  1. aptitude update
  2. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 816950D8


REFERENCIA

Wikipedia. (3 de julio de 2010). HandBrake. Recuperado de: https://es.wikipedia.org/wiki/HandBrake



Debian: Configuración de repositorios


Para configurar los repositorios en Debian debemos editar el archivo /etc/apt/sources.list que contiene el listado de repositorios que buscara el sistema:

TERMINAL
  1. nano /etc/apt/sources.list

Realizamos los siguientes cambios:

ARCHIVO /etc/apt/sources.list
  1. #deb file:/home/repositorio  -->  ejemplo de uso de file
  2. deb http://ftp.us.debian.org/debian/ lenny main contrib non-free
  3. deb-src http://ftp.us.debian.org/debian/ lenny main
  4. deb http://security.debian.org/ lenny/updates main contrib non-free
  5. deb-src http://security.debian.org/ lenny/updates main

Cada linea de este archivo representa un repositorio y su sintaxis es:

deb uri distribucion [componentes]

deb: indica que el repositorio contiene paquetes binarios, si colocamos en su lugar db-src indica que contiene las fuentes o códigos.

uri: indica la dirección del repositorio, este puede ser del tipo file (en el PC), cdrom, http, ftp, copy (igual que file pero los archivos son guardados en el cache de apt), rsh o ssh.

distribucion: indica el nombre código de la distribución o su nombre genérico: stable, testing, unstable.

componentes: indica las secciones del repositorio que se incluiran: main, contrib, non-free

 

Comandos Básicos


TERMINAL
  1. aptitude update

Actualiza la lista de paquetes disponibles desde los repositorios

TERMINAL
  1. aptitude safe-upgrade

Actualiza los paquetes instalados bajo un criterio conservador

TERMINAL
  1. aptitude full-upgrade

Actualiza los paquetes instalados

TERMINAL
  1. aptitude search patron_busqueda

Busca el patrón de búsqueda en los repositorios

TERMINAL
  1. aptitude install paquete

Instala el paquete

TERMINAL
  1. aptitude download paquete

Descarga el paquete .deb al directorio actual

TERMINAL
  1. aptitude remove paquete

Elimina el paquete

TERMINAL
  1. aptitude purge paquete

Elimina el paquete y sus archivos de datos y configuración

TERMINAL
  1. aptitude show paquete

Proporciona información detallada del paquete

 

Notas

  • Si en lugar de lenny colocamos stable, el repositorio apuntara automáticamente a la distribución estable del momento.
  • El listado de los repositorios oficiales de Debian se encuentra en http://www.debian.org/mirror/list