google analitycs

viernes, 18 de marzo de 2011

Tutorial Mercurial en Ubuntu

Bueno, aquí otra ves haciendo un tutorial, los agradecimiento a mis compañeros fabber's Cristian Cisneros, Manuel Casiano, que sin ellos no huebiera podido comprender que es lo que estaba haciendo en un inicio, pero bueno empecemos:


Notas:
1-Ya anteriormente habiamos tratado el tema del mercurial desde un servidor remoto como el Bitbucket.
2-Esta instalación esta realizada en ubuntu 10.04 (Lucyd), de manera nativa, es decir que ocupa una partición.
3- Se deb actualizar lo indispensable para iniciar con ubuntu, se suele entrar a la consola que está en "Aplicaciones-accesorios-terminal", se digita "sudo bash" luego pedira el password que es el que ustedes asignaron durante la instalación, para darse cuenta que están como administradores, en su linea de comandos debe iniciar con el termino "root", ya en ese modo hacer "apt-get update" con el cual se listarán todos los cambios que han ocurrido  y luego "apt-get upgrade" para actualizar su Ubuntu. Con todo ello ya estamos listos para la instalación.
4- las comillas son solo para resaltar lo que se debe poner.

Paso1
Instalar mercurial, para ello debemos estar como "root" (leer nota 3), y hacemos "apt-get install mercurial"

Paso2
Terminada la instalación del mercurial, escribímos "nautilus", para poder navegar de manera gráfica en nuestros archivos, hacemos click en la flecha y nos aparecerá la carpeta root y al costado un icono de disco duro hacemos click en el, y luego buscamos la carpeta home, entramos en ella y entramos en nuestra carpeta de Usuario (el usuario es el nombre de nuestra computadora, en mi caso es "kordero", este nombre lo pusimos al inicio de la instalación de ubuntu, y también aparece al inicio de la sesión, también pueden observarlo en la esquina superior derecha a lado del icono de apagado).

Paso 3
Ya dentro de nuestra carpeta de usuario (kordero), hacemos la combinación de teclas "CTRL+H", este comando hace que las carpetas ocultas se puedan visualizar, ahora buscamos la carpeta ".ssh", si la carpeta no existe la creamos, hacemos click derecho y "crear carpeta" asignando el nombre .ssh, dentro de la carpeta .ssh creamos la carpeta "keys" y dentro de ella colocamos las llaves que se nos entregaron "academy y academy.pub".

Paso4
En la carpeta .ssh creamos el archivo "config" que contenga los siguientes datos:
host: fab.cba.mit.edu
port 846
Y lo guardamos con terminación Unix, para ello hacemos en "guardar como",

  • Nombre: "config"
  • Salvar en folder: ".ssh"
  • Final de línea "unix/linux"
Paso5
Bueno ahora, volvemos a la consola, sin cerrar el navegador nautilus, en nuestra consola desplegamos el menú "archivo" y escogemos la opción "abrir pestaña", colocan otra ves "sudo bash" - su clave.
Ahora procederemos a realizar los permisos de los archivos. Para ello se emplea el comando Chmod, el link es muy explicativo:
Este es el esquema general para entenderlo:

-Existen 3 tipos de permisos:
r= read (sólo lectura)
w= write (escritura, se podrá escribir en el)
e= execute (ejecución, el archivo puede ser ejecutado como un programa o algo)

-Existen 3 grupos de usuarios:
User-group-other

Entonces cuando un archivos tiene los siguientes permisos
-rwx-rw-r significa que el User puede leer, escribir y ejecutar, el grupo solo leer y escribir, y los otros tan solo leer.

Los permisos se pueden colocar por  números

  • 0= ningún permiso
  • 4=lectura
  • 2=escritura
  • 1=ejecución
  • 6 (4+2)= lectura y escritura
  • 5 (4+1)= lectura y ejecución
  • 3 (2+1)= escritura y ejecución
  • 7 (4+2+1)= lectura, escritura y ejecución

Del ejemplo anterior entonces: -rwx-rw-r = 764, siendo este su código.

Entonces como damos permisos, para ello debemos situarnos dentro de la carpeta que contiene el archivo o carpeta y se escribe "chmod 764 "nombre del archivo o carpeta".

Hecho este paréntesis hay que darle los permisos a las archivos "academy", "academy.pub" y "config".
academy : rw-----
academy.pub y config: rw-r--r--
dando permisos al archivo "academy", dentro de la pestaña de la consola que ya tenemos abierta hacemos "cd .ssh", (el comando "cd" abre carpetas), luego  "cd keys" y hacemos:
chmod 600 academy
chmod 644 academy.pub
luego volvemos a la carpeta key, para ello hacemos "cd .."
y asignamos los permisos chmod (pon tu los números XD) config

Con eso  ya hemos dado los permisos necesarios.

Paso 6
Ahora hacemos la clonación


hg clone -e "ssh -p 846 -i ~/.ssh/keys/academy" ssh://hg@fab.cba.mit.edu/academy fabAcademyClassArchive

Observaciones:
ssh -p= esta invocando al puerto que hemos puesto en el config
/ssh/keys/academy = es la ruta de acceso hacia el academy
fabAcademyClassArchive = es el nombre de la carpeta donde deseamos que se clonen (por ejemplo yo lo llame academy)

Este paso puede durar horas, ya que hemos clonado con la información que ya esta siendo subida por otros laboratorios, en mi caso duro 5 horas en promedio.
Si sale error del puerto 22, puede ser que no hayan configurado bien el archivo config, revisar el paso 4
Si cortan la clonación todos los archivos se borrarán, asi que debe ser de una sola ves.

Paso 7
Cuando se ha clonado dentro de su carpeta de usuario se formara la carpeta FabacademyClassArchive el cual es el nombre que se asigno en el ejemplo (en el mio es academy). con nuestro nautilus (el cual se supone que no hemos cerrado o sino lo abrimos de nuevo en una pestaña) entramos a la carpeta Fabacademyclassarchive/.hg y buscamos el archivo "hgrc".
lo abrimos y agregamos lo siguiente:


[ui] 
username = cristian cisneros < ccisnerosm@uni.pe>
ssh = ssh_path -i ~/.ssh/keys/academy -C
[hooks]
changegroup = hg update >&2


Observación, el SSH_path es la dirección de donde esta el ssh, si el ssh esta en nuestra carpeta de usuario, lo cual si han seguido los pasos como lo he mencionado, sólo debemos colocar "SSH" 


Guardamos

Paso 8
Hacemos "hg pull" y hg update

Paso 9 (Agregar archivos y sincronizarlos)
El mercurial nos permite sincronizar y saber quienes han realizado que cambios y en que momento lo ha hecho.

Para ello todo cambio que se haga siempre debe ir con un comentario, se vamos a modificar nuestras paginas webs, debemos encontrar la ruta que se indica en la imagen (en ves de "academy" deberia decir "fabacademyclass")
Y los comando a usar para agregar  son los siguientes:
hg add . "se listaran todos los archivos que se han agregado"
hg commit -m "comment" "se agrega un comentario dentro de comment, como por ejemplo --- hg commit -m "por fin logre sincronizar"----

hg push "Sube todos los servicios, actualizaciones, etc"


Y eso sería todo....

No hay comentarios: