kitsune documentation

10
Preparando nuestro sistema : Kitsune’s Documentation! Decidí registrarme para colaborar con la gente de Mozilla, para saber en que grupo quería colaborar me fijé en el siguiente link: Link : https://wiki.mozilla.org/Webdev/GetInvolved#support.mozilla.org_.28SUMO.2 9 De las opciones que ahí figuran me interesó el grupo de: support.mozilla.org (SUMO): Firefox Help is the support site for Firefox users. It helpts millions of users every week through a knowledge base and support forum. It also provides collaboration and localization tools for the contributors. It uses technology like Python, Django, MySQL, Redis, Memcached, Elastic Search and more. Fork us on Github: https://github.com/mozilla/kitsune Who: Ricky Rosario (r1cky) & Will Kahn-Greene (willkg) IRC: irc.mozilla.org/ & Channel: #sumodev Support on Bugzilla: https://bugzilla.mozilla.org/buglist.cgi? quicksearch=OPEN%20product%3Asupport.mozilla.org Opté por ese grupo por el hecho de que usan Python y Django, y MySQL. Me incentivó a formar parte de Mozilla como Contributor el hecho de que quiero empezar a poner en marcha lo que se de Python, Django, MySQL y Git y la mejor manera de hacerlo es contribuyendo y tratando de aportar a esta comunidad que tanto me ayudó y me sigue ayudando. Paso a contar mi experiencia preparando mi sistema para empezar a ponerme en acción. La distro que decidí para usar es: Linux Mint 13 Maya KDE de 32 bits: http://www.linuxmint.com/edition.php?id=115 Estas son las otras opciones dentro de Linux Mint 13 Maya: http://www.linuxmint.com/download.php

Upload: veronica-diaz

Post on 13-Jun-2015

259 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Kitsune documentation

Preparando nuestro sistema:

Kitsune’s Documentation!

Decidí registrarme para colaborar con la gente de Mozilla, para saber en que grupo quería colaborar me fijé en el siguiente link:

Link:https://wiki.mozilla.org/Webdev/GetInvolved#support.mozilla.org_.28SUMO.29

De las opciones que ahí figuran me interesó el grupo de:

support.mozilla.org (SUMO):

Firefox Help is the support site for Firefox users. It helpts millions of users every week through a knowledge base and support forum. It also provides collaboration and localization tools for the contributors. It uses technology like Python, Django, MySQL, Redis, Memcached, Elastic Search and more.

• Fork us on Github: https://github.com/mozilla/kitsune• Who: Ricky Rosario (r1cky) & Will Kahn-Greene (willkg)• IRC: irc.mozilla.org/ & Channel: #sumodev• Support on Bugzilla: https://bugzilla.mozilla.org/buglist.cgi?

quicksearch=OPEN%20product%3Asupport.mozilla.org

Opté por ese grupo por el hecho de que usan Python y Django, y MySQL.

Me incentivó a formar parte de Mozilla como Contributor el hecho de que quiero empezar a poner en marcha lo que se de Python, Django, MySQL y Git y la mejor manera de hacerlo es contribuyendo y tratando de aportar a esta comunidad que tanto me ayudó y me sigue ayudando.

Paso a contar mi experiencia preparando mi sistema para empezar a ponerme en acción.

La distro que decidí para usar es:

Linux Mint 13 Maya KDE de 32 bits:http://www.linuxmint.com/edition.php?id=115

Estas son las otras opciones dentro de Linux Mint 13 Maya: http://www.linuxmint.com/download.php

Page 2: Kitsune documentation

Elegí esta distro porque en los últimos años me fui inclinando por Mint y me vienen hablando también bastante bien de KDE, asi que le quise dar una oportunidad y la verdad todo marcha sobre ruedas con esta distro.

La guía para preparar el sistema es la siguiente: http://kitsune.readthedocs.org/en/latest/index.html, si bien está en inglés es entendible y sus pasos fácil de seguir. Aunque debo admitir que en ciertos momentos me bloqueé pero los hice estando en el chat, y con la ayuda y guía de los chicos, en especial de r1cky pude completar la guía de forma satisfactoria.

Mi recomendación es la de seguir la guía estando en el chat, para poder consultar ante cualquier duda que tengamos.

Algo que hice antes de empezar con la guía, lo que hice fue actualizar mi Firefox de 12 que es el que trae esta distro a la 15 y cree un Bookmark: Mozilla_SUMO y ahí guardé los siguientes links:

Webdev/GetInvolved:https://wiki.mozilla.org/Webdev/GetInvolved#support.mozilla.org_.28SUMO.29

Kitsune’s Documentation:http://kitsune.readthedocs.org/en/latest/index.html

Hecho eso procedí con la guía.

Arranqué con PART 2: DEVELOPER’S GUIDE – INSTALLATION

Los Requerimientos del sistema son los siguientes:• Python 2.6 or 2.7• setuptools or pip• MySQL Server and client headers• Memcached Server• RabbitMQ• libxml and headers• libxslt and headers• libjpeg and headers• zlib and headers• LESS• Redis• Several Python packages. See Installing the Packages.• Elastic Search. Search covers installation, configuration, and running.

Page 3: Kitsune documentation

Python: La mayoría de las distros ya viene con Python, generalmente la versión 2.7, la mía es la versión 2.7.3.

setuptools or pip: pip es una herramienta para instalar y gestionar paquetes Python, es el reemplazo deeasy_install.

Fuente: http://www.pip-installer.org/en/latest/index.html

Para instalar pip seguí los siguientes pasos.

Primero verifiqué la existencia de los siguientes paquetes en el repositorio de Mint:

sudo apt-cache search python-pip

Resultado de la búsqueda:

python-pip – alternative Python package installer

sudo apt-get install python-pip

Luego busqué:

sudo apt-cache search python-dev

Resultado de la búsqueda:

python-dev – header files and a static library for Python (default)

sudo apt-get install python-dev

python-dev: son los headers files de pythonsirven para que otras librerias puedan llamar y utilizar codigo de python al momento de compilar cosas python-dev es el nombre que le suelen dar quienes empaquetan cosas en distribuciones como ubuntu o debian o fedora. GRACIAS EMI, SOS UNGROSO (http://ar.linkedin.com/pub/emiliano-dalla-verde-marcozzi/13/166/349)

Busco ahora:

sudo apt-cache search build-essential

Resultado de la búsqueda:

build-essential – Lista informativa de los paquetes build-essential

Page 4: Kitsune documentation

build-essential: tiene las instrucciones para instalar los paquetes esenciales para programar en C/C++ (y hacer otras cosas relacionadas con la creación de paquetes “.deb”.)

Fuente: http://carlosruizortega.wordpress.com/2008/05/12/build-essential/

Una vez que los tres paquetes se encuentran instalados: python-pip, python-dev y build-essential hacemos lo siguiente:

sudo pip install –upgrade pip

Fuente: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/

MySQL: es un sistema de gestión de base de datos relacional, multihilo y multiusuario.

Necesitamos primero asegurarnos como en el paso anterior que se encuentran en nuestro repositorio, para eso realizamos las siguientes búsquedas:

sudo apt-cache search mysql-server

mysql-server – MySQL database server (metapackage depending on the latest version)mysql-server-5.5 – MySQL database server binaries and system database setupmysql-server-core-5.5 – MySQL database server binaries

sudo apt-get install mysql-server mysql-server-5.5 mysql-client-5.5 mysql-server-core-5.5

mysql-server: es un administrador que permite agregar, acceder y procesar los datos almacenados en una computadora.

mysql-client: sirve para lo que todos los clientes sql, para escribir consultas sql y ver/recibir los resultados. GRACIAS TOTAL A MURRAY.

Durante la instalación de MySQL nos va a pedir que ingresemos el password que va a usar nuestro usuario root.

Memcached Server: es un sistema distribuido de propósito general para caché basado en memoria, diseñado por Danga Interactive y que es muy usado en la actualidad por múltiples sitios web.

Fuente: http://es.wikipedia.org/wiki/Memcached

Page 5: Kitsune documentation

Para instalarlo seguí los siguientes pasos:

• Hice una actualización: sudo apt-get update• Como en el paso anterior ya instalamos mysql-server, debemos instalar

ahora: php5-mysql y php5 php5-memcache

Es una costumbre que tengo, la de revisar si se encuentran en los repositorios.

sudo apt-cache search php5-mysql

php5-mysql – MySQL module for php5

sudo apt-cache search php5-memcache

php5-memcache – memcache extension module for PHP5

Los instalamos:

sudo apt-get install php5-mysql php5 php5-memcache

Después se procede a la instalación de Memcache:

sudo apt-get install memcached

Luego se instala php-pear, que es el repositorio que almacena memcache.

sudo apt-get install php-pear

Nota: La guía pide que se instale build-essential, pero este paso como es obvio lo omitimos. Por qué? Por que ya lo instalamos cuando hicimos la instalación de pip.

Por lo que pasamos al siguiente paso:

sudo pecl install memcache

pecl (PHP Extension Community Library): conceptualmente es similar a PEAR. PECL contiene extensiones C para compilar en PHP.

Fuente: http://en.wikipedia.org/wiki/PHP_Extension_Community_Library#PECL

Durante la instalación se realiza una pregunta, hay que contestar que sí: “yes”.

Page 6: Kitsune documentation

Una vez que se completó esta instalación hay que hacer lo siguiente:

sudo echo “extension=memcache.so” > sudo /etc/php5/conf.d/memcache.ini

Lo que estamos haciendo es añadir memcache a memcache.ini

Fuente: https://www.digitalocean.com/community/articles/how-to-install-and-use-memcache-on-ubuntu-12-04

RabbitMQ: es un software de negociación de mensajes de código abierto, y entra dentro de la categoría de middleware de mensajería. Implementa el estándar Advanced Message Queuing Protocol (AMQP). El servidor RabbitMQ está escrito en Erlang y utiliza elframework Open Telecom Platform (OTP) para construir sus capacidades de ejecución distribuida y conmutación ante errores.

Fuente: http://es.wikipedia.org/wiki/RabbitMQ

Esta parte depende de ustedes, digo esto porqué, porque en el repositorio figura rabbitmq, pero no es la última versión, en mi caso opté por bajar la última disponible en el sitio oficial:

http://www.rabbitmq.com/download.html

Ahí vemos las distintas opciones de acuerdo a los distintos sistemas operativos y en caso de linux, de acuerdo a las distintas distros.

En mi caso descargué: rabbitmq-server_2.8.6-1_all.deb

Lo instalé de la siguiente manera: sudo dpkg -i rabbitmq-server_2.8.6-1_all.deb

Aclaración: En caso de que hagan como yo y usen la última versión disponible, recuerden que hay que cumplir con todas las dependencias, es decir instalar los paquetes erlang. Lo remarco de esta manera porque que cuando quise instalar directamente el .deb me dio problemas y lo solucioné instalando las dependencias, que lo hice mediante previo chequeo:

sudo apt-cache search erlang

El resultado fue bastante extenso, pero figura y procedí a su instalación:

sudo apt-get install erlang

Cuando terminó la instalación, volví a ejecutar el comando para instalar el

Page 7: Kitsune documentation

.deb y lo hizo sin problema alguno.

libxml: es una biblioteca de código para analizar documentos XML. Es también la base de la biblioteca libxslt, que procesa hojas de estilo XSLT-1.0.

Fuente: http://es.wikipedia.org/wiki/Libxml

Esta instalación es muy sencilla, se encuentra en el repositorio, si la buscan:

sudo apt-cache search libxml

El resultado va a ser no muy largo pero si tal vez algo extenso, lo que hay que instalar es lo siguiente:

sudo apt-get install libxml2 libxml2-dev

libxslt

La instalación es igual a la anterior, buscamos en los repos:

sudo apt-cache search libxslt

Para instalarlo hay que hacer lo siguiente:

sudo apt-get install libxslt1.1 libxslt1.dev

zlib: es una biblioteca de compresión de datos, de software libre/fuente abierta, multiplataforma desarrollada por Jean-loup Gailly y Mark Adler. Esta biblioteca provee una implementación del algoritmo DEFLATE usado en el programa de compresión gzip.

Fuente: http://es.wikipedia.org/wiki/Zlib

Si lo buscamos:

sudo apt-cache search zlib

El resultado va a ser bastante largo, pero lo único que debemos instalar es:

sudo apt-get install zlib-bin

LESS

La guía lo indica bien, antes de instalarlo debemos instalar Node.js y NPM.

Page 8: Kitsune documentation

Buscamos npm:

sudo apt-cache search npm

npm – package manager for Node.js

sudo apt-get install npm

Luego:

sudo npm install less

Redis: es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (llave, valor) pero que opcionalmente puede ser usada como una base de datos durable o persistente.

Fuente: http://es.wikipedia.org/wiki/Redis

La instalación la seguí al pie de la letra del sitio oficial. Los pasos son los siguientes:

wget http://download.redis.io/redis-stable.tar.gztar xvzf redis-stable.tar.gzcd redis-stablemake

Luego del make el sitio dice que si se quiere testear si trabaja de forma correcta o no, para hacerlo el comando es el siguiente:

make test

Aclaración: Me pasó que cuando quise hacer el test, tuve un mensaje de error y era porque no estaba cumpliendo una dependencia y la solucioné de la siguiente manera:

sudo apt-get install tcl8.5

Ejecuté de nuevo el test y funcionó perfectamente.

Sugerencia: Yo personalmente lo hice, total no cuesta nada y nos aseguramos de que todo va en orden.

Luego debemos hacer las siguientes copias, para ubicarlas en el lugar correcto. Para hacerlo lo que hay que hacer es ubicarnos en la siguiente ruta:

Page 9: Kitsune documentation

redis-stable/src/

Cuando descargamos redis y lo descomprimimos se creó un archivo con ese nombre: redis-stable y dentro de ésta se encuentra una carpeta con el nombre src, nos ubicamos ahí y realizamos las 2 siguientes copias:

• sudo cp redis-server /usr/local/bin/• sudo cp redis-cli /usr/local/bin/

Luego de haber hecho esto incializamos Redis para probar que funciona, para hacerlo permanecemos en la ruta /redis-stable/src/ y ejecutamos el redis-server

Fuente: http://redis.io/topics/quickstart

Elastic Search: es un servidor de búsqueda basado en Apache Lucene.

Fuente: http://en.wikipedia.org/wiki/ElasticSearch

Para instalarlo seguí los siguientes pasos:

sudo apt-get install openjdk-7-jre -y

wget https://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.19.0.tar.gz -O elasticsearch.tar.gz

tar -xf elasticsearch.tar.gz

rm elasticsearch.tar.gz

sudo mv elasticsearch-* elasticsearch

sudo mv elasticsearch /usr/local/share

Nota: Se va a hacer uso de curl, en mi caso cuando lo quise ejecutar al comando que voy a colocar ahora, me dio un error, por problema de dependencia, que lo solucioné de la siguiente forma:

sudo apt-get install curl

Una vez satisfecha esta dependencia hay que seguir con esto:

curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz

Page 10: Kitsune documentation

mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/

rm -Rf *servicewrapper*

sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install

sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch

sudo service elasticsearch start

Fuente: https://gist.github.com/2026107

Por último queda instalar git:

http://git-scm.com/book/es/Empezando-Instalando-Git

Bueno eso es todo por ahora, saludos.